diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000000..f22a6e9c2a --- /dev/null +++ b/.eslintignore @@ -0,0 +1,2 @@ +node_modules/ +build_webpack/ diff --git a/.travis.yml b/.travis.yml index 065875a0b3..7888d463fa 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,13 +1,45 @@ +if: (branch = development) OR (branch = master) OR (type = pull_request) OR (tag IS present) +sudo: required +services: + - docker language: node_js node_js: - - "8" + - "9" os: - linux +env: + - DOCKER_COMPOSE_VERSION=1.22.0 +before_install: + # Install custom docker-compose version + - sudo rm /usr/local/bin/docker-compose + - curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > docker-compose + - chmod +x docker-compose + - sudo mv docker-compose /usr/local/bin + # Shut down postgres because it blocks our db container's port map to :5432 + # it comes enabled by default in docker-compose + - sudo service postgresql stop + # Wait for it to stop + - while sudo lsof -Pi :5432 -sTCP:LISTEN -t; do sleep 1; done + # Needed to deploy pull request and releases + - sudo apt-get -y install python-pip python-dev + - pip install awscli --upgrade --user before_script: - - yarn global add surge + # Used in the tests of the project - export NODE_ENV=testing + - git clone https://github.com/gnosis/safe-transaction-history.git + - cd safe-transaction-history + - git checkout develop + - docker-compose build + - docker-compose up -d + # Give some time to docker to enable all services + - sleep 15 + - cd .. after_success: + - cd safe-transaction-history + - docker-compose stop + - cd .. - | + if [ ${TRAVIS_BRANCH} = "master" ]; then export NODE_ENV=production; else @@ -15,6 +47,42 @@ after_success: fi - yarn build-storybook - yarn build - - cd build_webpack/ && cp index.html 200.html && cd .. - - chmod ugo+x ./config/deploy/deploy.sh - - ./config/deploy/deploy.sh \ No newline at end of file + # Pull Request - Deploy it to a review environment + # Travis doesn't do deploy step with pull requests builds + - ./config/travis/deploy_pull_request.sh + # Releases (tagged commits) - Deploy it to a release environment + - ./config/travis/deploy_release.sh + +deploy: + # Development environment +- provider: s3 + bucket: $DEV_BUCKET_NAME + access_key_id: $AWS_ACCESS_KEY_ID + secret_access_key: $AWS_SECRET_ACCESS_KEY + skip_cleanup: true + local_dir: build_webpack + upload-dir: app + on: + branch: development + + # Development environment - Storybook +- provider: s3 + bucket: $DEV_BUCKET_NAME + access_key_id: $AWS_ACCESS_KEY_ID + secret_access_key: $AWS_SECRET_ACCESS_KEY + skip_cleanup: true + local_dir: build_storybook + upload-dir: storybook + on: + branch: development + + # Staging environment +- provider: s3 + bucket: $STAGING_BUCKET_NAME + access_key_id: $AWS_ACCESS_KEY_ID + secret_access_key: $AWS_SECRET_ACCESS_KEY + skip_cleanup: true + local_dir: build_webpack + upload-dir: current + on: + branch: master diff --git a/config/deploy/deploy.sh b/config/deploy/deploy.sh deleted file mode 100644 index 851809aaa6..0000000000 --- a/config/deploy/deploy.sh +++ /dev/null @@ -1,82 +0,0 @@ - -#!/bin/bash - -echo "Deployment script for gnosis-safe-team" - -RANGE=500 - -number=$RANDOM -let "number %= $RANGE" - -# Split on "/", ref: http://stackoverflow.com/a/5257398/689223 -REPO_SLUG_ARRAY=(${TRAVIS_REPO_SLUG//\// }) -REPO_OWNER=${REPO_SLUG_ARRAY[0]} -REPO_NAME=${REPO_SLUG_ARRAY[1]} - -DEPLOY_PATH=./build_webpack -DEPLOY_PATH_STORYBOOK=./build_storybook - -DEPLOY_SUBDOMAIN_UNFORMATTED_LIST=() - -if [ "$TRAVIS_PULL_REQUEST" != "false" ] -then - if [ "$NODE_ENV" == "production" ] - then - DEPLOY_SUBDOMAIN_UNFORMATTED_LIST+=(release-${TRAVIS_PULL_REQUEST}-pr-${number}) - else - DEPLOY_SUBDOMAIN_UNFORMATTED_LIST+=(staging-${TRAVIS_PULL_REQUEST}-pr-${number}) - fi -elif [ -n "${TRAVIS_TAG// }" ] #TAG is not empty -then - if [ "$NODE_ENV" == "production" ] - then - - #sorts the tags and picks the latest - #sort -V does not work on the travis machine - #sort -V ref: http://stackoverflow.com/a/14273595/689223 - #sort -t ... ref: http://stackoverflow.com/a/4495368/689223 - #reverse with sed ref: http://stackoverflow.com/a/744093/689223 - #git tags | ignore release candidates | sort versions | reverse | pick first line - LATEST_TAG=`git tag | grep -v rc | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n | sed '1!G;h;$!d' | sed -n 1p` - echo $LATEST_TAG - - if [ "$TRAVIS_TAG" == "$LATEST_TAG" ] - then - DEPLOY_SUBDOMAIN_UNFORMATTED_LIST+=(latest) - fi - - DEPLOY_SUBDOMAIN_UNFORMATTED_LIST+=(${TRAVIS_TAG}-tag) - fi -else - DEPLOY_SUBDOMAIN_UNFORMATTED_LIST+=(${TRAVIS_BRANCH}-branch) -fi - -for DEPLOY_SUBDOMAIN_UNFORMATTED in "${DEPLOY_SUBDOMAIN_UNFORMATTED_LIST[@]}" -do - echo $DEPLOY_SUBDOMAIN_UNFORMATTED - - # replaces non alphanumeric symbols with "-" - # sed -r is only supported in linux, ref http://stackoverflow.com/a/2871217/689223 - # Domain names follow the RFC1123 spec [a-Z] [0-9] [-] - # The length is limited to 253 characters - # https://en.wikipedia.org/wiki/Domain_Name_System#Domain_name_syntax - DEPLOY_SUBDOMAIN=`echo "$DEPLOY_SUBDOMAIN_UNFORMATTED" | sed -r 's/[^A-Za-z0-9]+/\-/g'` - echo $DEPLOY_SUBDOMAIN - - DEPLOY_DOMAIN=https://${DEPLOY_SUBDOMAIN}-${REPO_NAME}-${REPO_OWNER}.surge.sh - DEPLOY_STORYBOOK=https://storybook-${DEPLOY_SUBDOMAIN}-${REPO_NAME}-${REPO_OWNER}.surge.sh - - surge --project ${DEPLOY_PATH} --domain $DEPLOY_DOMAIN; - surge --project ${DEPLOY_PATH_STORYBOOK} --domain $DEPLOY_STORYBOOK - - if [ "$TRAVIS_PULL_REQUEST" != "false" ] - then - # Using the Issues api instead of the PR api - # Done so because every PR is an issue, and the issues api allows to post general comments, - # while the PR api requires that comments are made to specific files and specific commits - GITHUB_PR_COMMENTS=https://api.github.com/repos/${TRAVIS_REPO_SLUG}/issues/${TRAVIS_PULL_REQUEST}/comments - curl -H "Authorization: token ${GITHUB_API_TOKEN}" --request POST ${GITHUB_PR_COMMENTS} --data '{"body":"Travis automatic deployment:\r\n '${DEPLOY_DOMAIN}' \r\n \r\n Storybook book automatic deployment: \r\n '${DEPLOY_STORYBOOK}'"}' - fi -done - -echo "Deploy domain: ${DEPLOY_DOMAIN}" \ No newline at end of file diff --git a/config/travis/deploy_pull_request.sh b/config/travis/deploy_pull_request.sh new file mode 100755 index 0000000000..368c08c6c9 --- /dev/null +++ b/config/travis/deploy_pull_request.sh @@ -0,0 +1,44 @@ +#!/bin/bash + +function deploy_pull_request { + REVIEW_ENVIRONMENT_DOMAIN='review.gnosisdev.com' + + # Pull request name with "pr" prefix + PULL_REQUEST_NAME="pr$TRAVIS_PULL_REQUEST" + + # Feature name without all path. Example gnosis/pm-trading-ui -> pm-trading-ui + REPO_NAME=$(basename $TRAVIS_REPO_SLUG) + # Only alphanumeric characters. Example pm-trading-ui -> pmtradingui + REPO_NAME_ALPHANUMERIC=$(echo $REPO_NAME | sed 's/[^a-zA-Z0-9]//g') + + # TRAVIS_PULL_REQUEST contains pull request number + REVIEW_FEATURE_FOLDER="$REPO_NAME_ALPHANUMERIC/$PULL_REQUEST_NAME" + # Specific for this project only + REVIEW_FEATURE_STORYBOOK_FOLDER="${REPO_NAME_ALPHANUMERIC}storybook/$PULL_REQUEST_NAME" + + # Deploy safe-team project + aws s3 sync build_webpack s3://${REVIEW_BUCKET_NAME}/${REVIEW_FEATURE_FOLDER} --delete + # Deploy safe-team storybook project + aws s3 sync build_storybook s3://${REVIEW_BUCKET_NAME}/${REVIEW_FEATURE_STORYBOOK_FOLDER} --delete +} + +function publish_pull_request_urls_in_github { + REVIEW_FEATURE_URL="https://$PULL_REQUEST_NAME--$REPO_NAME_ALPHANUMERIC.$REVIEW_ENVIRONMENT_DOMAIN" + # Specific for this project only + REVIEW_FEATURE_STORYBOOK_URL="https://$PULL_REQUEST_NAME--${REPO_NAME_ALPHANUMERIC}storybook.$REVIEW_ENVIRONMENT_DOMAIN" + + # Using the Issues api instead of the PR api + # Done so because every PR is an issue, and the issues api allows to post general comments, + # while the PR api requires that comments are made to specific files and specific commits + GITHUB_PR_COMMENTS=https://api.github.com/repos/${TRAVIS_REPO_SLUG}/issues/${TRAVIS_PULL_REQUEST}/comments + curl -H "Authorization: token ${GITHUB_API_TOKEN}" --request POST ${GITHUB_PR_COMMENTS} --data '{"body":"Travis automatic deployment:\r\n '${REVIEW_FEATURE_URL}' \r\n \r\n Storybook book automatic deployment: \r\n '${REVIEW_FEATURE_STORYBOOK_URL}'"}' +} + +# Only: +# - Pull requests +# - Security env variables are available. PR from forks don't have them. +if [ "$TRAVIS_PULL_REQUEST" != "false" ] && [ -n "$AWS_ACCESS_KEY_ID" ] +then + deploy_pull_request + publish_pull_request_urls_in_github +fi diff --git a/config/travis/deploy_release.sh b/config/travis/deploy_release.sh new file mode 100755 index 0000000000..b6991e51fa --- /dev/null +++ b/config/travis/deploy_release.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +# Only: +# - Tagged commits +# - Security env variables are available. +if [ -n "$TRAVIS_TAG" ] && [ -n "$AWS_ACCESS_KEY_ID" ] +then + REVIEW_ENVIRONMENT_DOMAIN='review.gnosisdev.com' + + # Feature name without all path. Example gnosis/pm-trading-ui -> pm-trading-ui + REPO_NAME=$(basename $TRAVIS_REPO_SLUG) + # Only alphanumeric characters. Example pm-trading-ui -> pmtradingui + REPO_NAME_ALPHANUMERIC=$(echo $REPO_NAME | sed 's/[^a-zA-Z0-9]//g') + + # Only alphanumeric characters. Example v1.0.0 -> v100 + TRAVIS_TAG_ALPHANUMERIC=$(echo $TRAVIS_TAG | sed 's/[^a-zA-Z0-9]//g') + + REVIEW_RELEASE_FOLDER="$REPO_NAME_ALPHANUMERIC/$TRAVIS_TAG_ALPHANUMERIC" + + # Deploy safe-team release project + aws s3 sync build_webpack s3://${REVIEW_BUCKET_NAME}/${REVIEW_RELEASE_FOLDER} --delete +fi diff --git a/package.json b/package.json index 32080ba2ca..dd55ec5612 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "scripts": { "start": "node scripts/start.js", "build": "node scripts/build.js", - "test": "run-with-testrpc -l 40000000 --noVMErrorsOnRPCResponse true 'node scripts/test.js --env=jsdom'", + "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", @@ -128,7 +128,7 @@ "/src/**/?(*.)(spec|test).js?(x)" ], "testEnvironment": "node", - "testURL": "https://safe-react", + "testURL": "http://localhost:8000", "transform": { "^.+\\.(js|jsx)$": "/node_modules/babel-jest", "^.+\\.(css|scss)$": "/config/jest/cssTransform.js", diff --git a/safe-contracts/build/contracts/CreateAndAddModules.json b/safe-contracts/build/contracts/CreateAndAddModules.json index bf85af6e71..eb31b029e8 100644 --- a/safe-contracts/build/contracts/CreateAndAddModules.json +++ b/safe-contracts/build/contracts/CreateAndAddModules.json @@ -34,8 +34,8 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50610275806100206000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806360df7f5814610051578063610b5925146100da575b600080fd5b34801561005d57600080fd5b506100d8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061011d565b005b3480156100e657600080fd5b5061011b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610244565b005b600080600083519250600090505b8281101561023d5780840160200151818501604001604051600060208285858c5af4141561015857600080fd5b73ffffffffffffffffffffffffffffffffffffffff8151169450602080601f85010402602001840193505050503073ffffffffffffffffffffffffffffffffffffffff1663610b5925836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561022057600080fd5b505af1158015610234573d6000803e3d6000fd5b5050505061012b565b5050505050565b600080fd00a165627a7a7230582057d5a08ea9098bcaf70b44e6f52a22772fc87649049797162acff984c02e83a40029", - "deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806360df7f5814610051578063610b5925146100da575b600080fd5b34801561005d57600080fd5b506100d8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061011d565b005b3480156100e657600080fd5b5061011b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610244565b005b600080600083519250600090505b8281101561023d5780840160200151818501604001604051600060208285858c5af4141561015857600080fd5b73ffffffffffffffffffffffffffffffffffffffff8151169450602080601f85010402602001840193505050503073ffffffffffffffffffffffffffffffffffffffff1663610b5925836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561022057600080fd5b505af1158015610234573d6000803e3d6000fd5b5050505061012b565b5050505050565b600080fd00a165627a7a7230582057d5a08ea9098bcaf70b44e6f52a22772fc87649049797162acff984c02e83a40029", + "bytecode": "0x608060405234801561001057600080fd5b50610275806100206000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806360df7f5814610051578063610b5925146100da575b600080fd5b34801561005d57600080fd5b506100d8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061011d565b005b3480156100e657600080fd5b5061011b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610244565b005b600080600083519250600090505b8281101561023d5780840160200151818501604001604051600060208285858c5af4141561015857600080fd5b73ffffffffffffffffffffffffffffffffffffffff8151169450602080601f85010402602001840193505050503073ffffffffffffffffffffffffffffffffffffffff1663610b5925836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561022057600080fd5b505af1158015610234573d6000803e3d6000fd5b5050505061012b565b5050505050565b600080fd00a165627a7a723058207c5f557823bcf2be1858240c0c1037c633c0f0159752cd4b58f9f35c29ad604c0029", + "deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806360df7f5814610051578063610b5925146100da575b600080fd5b34801561005d57600080fd5b506100d8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061011d565b005b3480156100e657600080fd5b5061011b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610244565b005b600080600083519250600090505b8281101561023d5780840160200151818501604001604051600060208285858c5af4141561015857600080fd5b73ffffffffffffffffffffffffffffffffffffffff8151169450602080601f85010402602001840193505050503073ffffffffffffffffffffffffffffffffffffffff1663610b5925836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561022057600080fd5b505af1158015610234573d6000803e3d6000fd5b5050505061012b565b5050505050565b600080fd00a165627a7a723058207c5f557823bcf2be1858240c0c1037c633c0f0159752cd4b58f9f35c29ad604c0029", "sourceMap": "245:1457:18:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;245:1457:18;;;;;;;", "deployedSourceMap": "245:1457:18:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;815:885;;8:9:-1;5:2;;;30:1;27;20:12;5:2;815:885:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;405:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;405:81:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;815:885;907:14;945:13;968:9;924:4;:11;907:28;;980:1;968:13;;991:703;1002:6;998:1;:10;991:703;;;1170:1;1164:4;1160:12;1154:4;1150:23;1144:30;1230:1;1224:4;1220:12;1214:4;1210:23;1271:4;1265:11;1378:1;1371:4;1363:6;1344:17;1331:11;1317:12;1312:3;1299:77;1296:84;1293:2;;;1393:1;1390;1383:12;1293:2;1443:42;1434:6;1428:13;1424:62;1414:72;;1624:4;1617;1610;1591:17;1587:28;1583:39;1579:50;1573:4;1569:61;1566:1;1562:69;1557:74;;1101:544;;;1658:4;:17;;;1676:6;1658:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1658:25:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1658:25:18;;;;991:703;;;815:885;;;;;:::o;405:81::-;471:8;;", "source": "pragma solidity 0.4.24;\nimport \"../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", @@ -44,14 +44,14 @@ "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/libraries/CreateAndAddModules.sol", "exportedSymbols": { "CreateAndAddModules": [ - 3166 + 1866 ] }, - "id": 3167, + "id": 1867, "nodeType": "SourceUnit", "nodes": [ { - "id": 3123, + "id": 1823, "literals": [ "solidity", "0.4", @@ -63,10 +63,10 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", "file": "../Module.sol", - "id": 3124, + "id": 1824, "nodeType": "ImportDirective", - "scope": 3167, - "sourceUnit": 1862, + "scope": 1867, + "sourceUnit": 914, "src": "24:23:18", "symbolAliases": [], "unitAlias": "" @@ -77,16 +77,16 @@ "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": 3166, + "id": 1866, "linearizedBaseContracts": [ - 3166 + 1866 ], "name": "CreateAndAddModules", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 3132, + "id": 1832, "nodeType": "Block", "src": "461:25:18", "statements": [ @@ -96,21 +96,21 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 3129, + "id": 1829, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 4041, - 4042 + 3833, + 3834 ], - "referencedDeclaration": 4041, + "referencedDeclaration": 3833, "src": "471:6:18", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 3130, + "id": 1830, "isConstant": false, "isLValue": false, "isPure": false, @@ -124,14 +124,14 @@ "typeString": "tuple()" } }, - "id": 3131, + "id": 1831, "nodeType": "ExpressionStatement", "src": "471:8:18" } ] }, "documentation": "@dev Function required to compile contract. Gnosis Safe function is called instead.\n @param module Not used.", - "id": 3133, + "id": 1833, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -139,31 +139,31 @@ "name": "enableModule", "nodeType": "FunctionDefinition", "parameters": { - "id": 3127, + "id": 1827, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3126, + "id": 1826, "name": "module", "nodeType": "VariableDeclaration", - "scope": 3133, + "scope": 1833, "src": "427:13:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 3125, + "id": 1825, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1861, + "referencedDeclaration": 913, "src": "427:6:18", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" } }, @@ -175,12 +175,12 @@ }, "payable": false, "returnParameters": { - "id": 3128, + "id": 1828, "nodeType": "ParameterList", "parameters": [], "src": "461:0:18" }, - "scope": 3166, + "scope": 1866, "src": "405:81:18", "stateMutability": "nonpayable", "superFunction": null, @@ -188,21 +188,21 @@ }, { "body": { - "id": 3164, + "id": 1864, "nodeType": "Block", "src": "897:803:18", "statements": [ { "assignments": [ - 3141 + 1841 ], "declarations": [ { "constant": false, - "id": 3141, + "id": 1841, "name": "length", "nodeType": "VariableDeclaration", - "scope": 3165, + "scope": 1865, "src": "907:14:18", "stateVariable": false, "storageLocation": "default", @@ -211,7 +211,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3140, + "id": 1840, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "907:7:18", @@ -224,23 +224,23 @@ "visibility": "internal" } ], - "id": 3144, + "id": 1844, "initialValue": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3142, + "id": 1842, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3137, + "referencedDeclaration": 1837, "src": "924:4:18", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 3143, + "id": 1843, "isConstant": false, "isLValue": false, "isPure": false, @@ -262,26 +262,26 @@ "declarations": [ { "constant": false, - "id": 3146, + "id": 1846, "name": "module", "nodeType": "VariableDeclaration", - "scope": 3165, + "scope": 1865, "src": "945:13:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 3145, + "id": 1845, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1861, + "referencedDeclaration": 913, "src": "945:6:18", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" } }, @@ -289,22 +289,22 @@ "visibility": "internal" } ], - "id": 3147, + "id": 1847, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "945:13:18" }, { "assignments": [ - 3149 + 1849 ], "declarations": [ { "constant": false, - "id": 3149, + "id": 1849, "name": "i", "nodeType": "VariableDeclaration", - "scope": 3165, + "scope": 1865, "src": "968:9:18", "stateVariable": false, "storageLocation": "default", @@ -313,7 +313,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3148, + "id": 1848, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "968:7:18", @@ -326,11 +326,11 @@ "visibility": "internal" } ], - "id": 3151, + "id": 1851, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 3150, + "id": 1850, "isConstant": false, "isLValue": false, "isPure": true, @@ -350,7 +350,7 @@ }, { "body": { - "id": 3162, + "id": 1862, "nodeType": "Block", "src": "1010:684:18", "statements": [ @@ -358,7 +358,7 @@ "externalReferences": [ { "module": { - "declaration": 3146, + "declaration": 1846, "isOffset": false, "isSlot": false, "src": "1414:6:18", @@ -367,7 +367,7 @@ }, { "data": { - "declaration": 3137, + "declaration": 1837, "isOffset": false, "isSlot": false, "src": "1164:4:18", @@ -376,7 +376,7 @@ }, { "i": { - "declaration": 3149, + "declaration": 1849, "isOffset": false, "isSlot": false, "src": "1170:1:18", @@ -385,7 +385,7 @@ }, { "data": { - "declaration": 3137, + "declaration": 1837, "isOffset": false, "isSlot": false, "src": "1224:4:18", @@ -394,7 +394,7 @@ }, { "i": { - "declaration": 3149, + "declaration": 1849, "isOffset": false, "isSlot": false, "src": "1230:1:18", @@ -403,7 +403,7 @@ }, { "i": { - "declaration": 3149, + "declaration": 1849, "isOffset": false, "isSlot": false, "src": "1557:1:18", @@ -412,7 +412,7 @@ }, { "proxyFactory": { - "declaration": 3135, + "declaration": 1835, "isOffset": false, "isSlot": false, "src": "1317:12:18", @@ -421,7 +421,7 @@ }, { "i": { - "declaration": 3149, + "declaration": 1849, "isOffset": false, "isSlot": false, "src": "1566:1:18", @@ -429,7 +429,7 @@ } } ], - "id": 3155, + "id": 1855, "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": "1092:570:18" @@ -440,14 +440,14 @@ "arguments": [ { "argumentTypes": null, - "id": 3159, + "id": 1859, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3146, + "referencedDeclaration": 1846, "src": "1676:6:18", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" } } @@ -455,38 +455,38 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" } ], "expression": { "argumentTypes": null, - "id": 3156, + "id": 1856, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4085, + "referencedDeclaration": 3877, "src": "1658:4:18", "typeDescriptions": { - "typeIdentifier": "t_contract$_CreateAndAddModules_$3166", + "typeIdentifier": "t_contract$_CreateAndAddModules_$1866", "typeString": "contract CreateAndAddModules" } }, - "id": 3158, + "id": 1858, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "enableModule", "nodeType": "MemberAccess", - "referencedDeclaration": 3133, + "referencedDeclaration": 1833, "src": "1658:17:18", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_contract$_Module_$1861_$returns$__$", + "typeIdentifier": "t_function_external_nonpayable$_t_contract$_Module_$913_$returns$__$", "typeString": "function (contract Module) external" } }, - "id": 3160, + "id": 1860, "isConstant": false, "isLValue": false, "isPure": false, @@ -500,7 +500,7 @@ "typeString": "tuple()" } }, - "id": 3161, + "id": 1861, "nodeType": "ExpressionStatement", "src": "1658:25:18" } @@ -512,18 +512,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3154, + "id": 1854, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3152, + "id": 1852, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3149, + "referencedDeclaration": 1849, "src": "998:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -534,11 +534,11 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 3153, + "id": 1853, "name": "length", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3141, + "referencedDeclaration": 1841, "src": "1002:6:18", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -551,14 +551,14 @@ "typeString": "bool" } }, - "id": 3163, + "id": 1863, "nodeType": "WhileStatement", "src": "991:703:18" } ] }, "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": 3165, + "id": 1865, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -566,15 +566,15 @@ "name": "createAndAddModules", "nodeType": "FunctionDefinition", "parameters": { - "id": 3138, + "id": 1838, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3135, + "id": 1835, "name": "proxyFactory", "nodeType": "VariableDeclaration", - "scope": 3165, + "scope": 1865, "src": "844:20:18", "stateVariable": false, "storageLocation": "default", @@ -583,7 +583,7 @@ "typeString": "address" }, "typeName": { - "id": 3134, + "id": 1834, "name": "address", "nodeType": "ElementaryTypeName", "src": "844:7:18", @@ -597,10 +597,10 @@ }, { "constant": false, - "id": 3137, + "id": 1837, "name": "data", "nodeType": "VariableDeclaration", - "scope": 3165, + "scope": 1865, "src": "866:10:18", "stateVariable": false, "storageLocation": "default", @@ -609,7 +609,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3136, + "id": 1836, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "866:5:18", @@ -626,19 +626,19 @@ }, "payable": false, "returnParameters": { - "id": 3139, + "id": 1839, "nodeType": "ParameterList", "parameters": [], "src": "897:0:18" }, - "scope": 3166, + "scope": 1866, "src": "815:885:18", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 3167, + "scope": 1867, "src": "245:1457:18" } ], @@ -648,14 +648,14 @@ "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/libraries/CreateAndAddModules.sol", "exportedSymbols": { "CreateAndAddModules": [ - 3166 + 1866 ] }, - "id": 3167, + "id": 1867, "nodeType": "SourceUnit", "nodes": [ { - "id": 3123, + "id": 1823, "literals": [ "solidity", "0.4", @@ -667,10 +667,10 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", "file": "../Module.sol", - "id": 3124, + "id": 1824, "nodeType": "ImportDirective", - "scope": 3167, - "sourceUnit": 1862, + "scope": 1867, + "sourceUnit": 914, "src": "24:23:18", "symbolAliases": [], "unitAlias": "" @@ -681,16 +681,16 @@ "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": 3166, + "id": 1866, "linearizedBaseContracts": [ - 3166 + 1866 ], "name": "CreateAndAddModules", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 3132, + "id": 1832, "nodeType": "Block", "src": "461:25:18", "statements": [ @@ -700,21 +700,21 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 3129, + "id": 1829, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 4041, - 4042 + 3833, + 3834 ], - "referencedDeclaration": 4041, + "referencedDeclaration": 3833, "src": "471:6:18", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 3130, + "id": 1830, "isConstant": false, "isLValue": false, "isPure": false, @@ -728,14 +728,14 @@ "typeString": "tuple()" } }, - "id": 3131, + "id": 1831, "nodeType": "ExpressionStatement", "src": "471:8:18" } ] }, "documentation": "@dev Function required to compile contract. Gnosis Safe function is called instead.\n @param module Not used.", - "id": 3133, + "id": 1833, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -743,31 +743,31 @@ "name": "enableModule", "nodeType": "FunctionDefinition", "parameters": { - "id": 3127, + "id": 1827, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3126, + "id": 1826, "name": "module", "nodeType": "VariableDeclaration", - "scope": 3133, + "scope": 1833, "src": "427:13:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 3125, + "id": 1825, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1861, + "referencedDeclaration": 913, "src": "427:6:18", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" } }, @@ -779,12 +779,12 @@ }, "payable": false, "returnParameters": { - "id": 3128, + "id": 1828, "nodeType": "ParameterList", "parameters": [], "src": "461:0:18" }, - "scope": 3166, + "scope": 1866, "src": "405:81:18", "stateMutability": "nonpayable", "superFunction": null, @@ -792,21 +792,21 @@ }, { "body": { - "id": 3164, + "id": 1864, "nodeType": "Block", "src": "897:803:18", "statements": [ { "assignments": [ - 3141 + 1841 ], "declarations": [ { "constant": false, - "id": 3141, + "id": 1841, "name": "length", "nodeType": "VariableDeclaration", - "scope": 3165, + "scope": 1865, "src": "907:14:18", "stateVariable": false, "storageLocation": "default", @@ -815,7 +815,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3140, + "id": 1840, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "907:7:18", @@ -828,23 +828,23 @@ "visibility": "internal" } ], - "id": 3144, + "id": 1844, "initialValue": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3142, + "id": 1842, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3137, + "referencedDeclaration": 1837, "src": "924:4:18", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 3143, + "id": 1843, "isConstant": false, "isLValue": false, "isPure": false, @@ -866,26 +866,26 @@ "declarations": [ { "constant": false, - "id": 3146, + "id": 1846, "name": "module", "nodeType": "VariableDeclaration", - "scope": 3165, + "scope": 1865, "src": "945:13:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 3145, + "id": 1845, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1861, + "referencedDeclaration": 913, "src": "945:6:18", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" } }, @@ -893,22 +893,22 @@ "visibility": "internal" } ], - "id": 3147, + "id": 1847, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "945:13:18" }, { "assignments": [ - 3149 + 1849 ], "declarations": [ { "constant": false, - "id": 3149, + "id": 1849, "name": "i", "nodeType": "VariableDeclaration", - "scope": 3165, + "scope": 1865, "src": "968:9:18", "stateVariable": false, "storageLocation": "default", @@ -917,7 +917,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3148, + "id": 1848, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "968:7:18", @@ -930,11 +930,11 @@ "visibility": "internal" } ], - "id": 3151, + "id": 1851, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 3150, + "id": 1850, "isConstant": false, "isLValue": false, "isPure": true, @@ -954,7 +954,7 @@ }, { "body": { - "id": 3162, + "id": 1862, "nodeType": "Block", "src": "1010:684:18", "statements": [ @@ -962,7 +962,7 @@ "externalReferences": [ { "module": { - "declaration": 3146, + "declaration": 1846, "isOffset": false, "isSlot": false, "src": "1414:6:18", @@ -971,7 +971,7 @@ }, { "data": { - "declaration": 3137, + "declaration": 1837, "isOffset": false, "isSlot": false, "src": "1164:4:18", @@ -980,7 +980,7 @@ }, { "i": { - "declaration": 3149, + "declaration": 1849, "isOffset": false, "isSlot": false, "src": "1170:1:18", @@ -989,7 +989,7 @@ }, { "data": { - "declaration": 3137, + "declaration": 1837, "isOffset": false, "isSlot": false, "src": "1224:4:18", @@ -998,7 +998,7 @@ }, { "i": { - "declaration": 3149, + "declaration": 1849, "isOffset": false, "isSlot": false, "src": "1230:1:18", @@ -1007,7 +1007,7 @@ }, { "i": { - "declaration": 3149, + "declaration": 1849, "isOffset": false, "isSlot": false, "src": "1557:1:18", @@ -1016,7 +1016,7 @@ }, { "proxyFactory": { - "declaration": 3135, + "declaration": 1835, "isOffset": false, "isSlot": false, "src": "1317:12:18", @@ -1025,7 +1025,7 @@ }, { "i": { - "declaration": 3149, + "declaration": 1849, "isOffset": false, "isSlot": false, "src": "1566:1:18", @@ -1033,7 +1033,7 @@ } } ], - "id": 3155, + "id": 1855, "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": "1092:570:18" @@ -1044,14 +1044,14 @@ "arguments": [ { "argumentTypes": null, - "id": 3159, + "id": 1859, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3146, + "referencedDeclaration": 1846, "src": "1676:6:18", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" } } @@ -1059,38 +1059,38 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" } ], "expression": { "argumentTypes": null, - "id": 3156, + "id": 1856, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4085, + "referencedDeclaration": 3877, "src": "1658:4:18", "typeDescriptions": { - "typeIdentifier": "t_contract$_CreateAndAddModules_$3166", + "typeIdentifier": "t_contract$_CreateAndAddModules_$1866", "typeString": "contract CreateAndAddModules" } }, - "id": 3158, + "id": 1858, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "enableModule", "nodeType": "MemberAccess", - "referencedDeclaration": 3133, + "referencedDeclaration": 1833, "src": "1658:17:18", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_contract$_Module_$1861_$returns$__$", + "typeIdentifier": "t_function_external_nonpayable$_t_contract$_Module_$913_$returns$__$", "typeString": "function (contract Module) external" } }, - "id": 3160, + "id": 1860, "isConstant": false, "isLValue": false, "isPure": false, @@ -1104,7 +1104,7 @@ "typeString": "tuple()" } }, - "id": 3161, + "id": 1861, "nodeType": "ExpressionStatement", "src": "1658:25:18" } @@ -1116,18 +1116,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3154, + "id": 1854, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3152, + "id": 1852, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3149, + "referencedDeclaration": 1849, "src": "998:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1138,11 +1138,11 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 3153, + "id": 1853, "name": "length", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3141, + "referencedDeclaration": 1841, "src": "1002:6:18", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1155,14 +1155,14 @@ "typeString": "bool" } }, - "id": 3163, + "id": 1863, "nodeType": "WhileStatement", "src": "991:703:18" } ] }, "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": 3165, + "id": 1865, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1170,15 +1170,15 @@ "name": "createAndAddModules", "nodeType": "FunctionDefinition", "parameters": { - "id": 3138, + "id": 1838, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3135, + "id": 1835, "name": "proxyFactory", "nodeType": "VariableDeclaration", - "scope": 3165, + "scope": 1865, "src": "844:20:18", "stateVariable": false, "storageLocation": "default", @@ -1187,7 +1187,7 @@ "typeString": "address" }, "typeName": { - "id": 3134, + "id": 1834, "name": "address", "nodeType": "ElementaryTypeName", "src": "844:7:18", @@ -1201,10 +1201,10 @@ }, { "constant": false, - "id": 3137, + "id": 1837, "name": "data", "nodeType": "VariableDeclaration", - "scope": 3165, + "scope": 1865, "src": "866:10:18", "stateVariable": false, "storageLocation": "default", @@ -1213,7 +1213,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3136, + "id": 1836, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "866:5:18", @@ -1230,19 +1230,19 @@ }, "payable": false, "returnParameters": { - "id": 3139, + "id": 1839, "nodeType": "ParameterList", "parameters": [], "src": "897:0:18" }, - "scope": 3166, + "scope": 1866, "src": "815:885:18", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 3167, + "scope": 1867, "src": "245:1457:18" } ], @@ -1256,28 +1256,16 @@ "4": { "events": {}, "links": {}, - "address": "0xce0a620bc8cb319020a77869b7249eeeb90ed0b1", - "transactionHash": "0xb634ad398348e36ea86588e2e5b33c909df74c0d2d7882284ef0d442df52c78f" + "address": "0x8d4852f62df9390e178e4ccc5267f82a4f3aa059", + "transactionHash": "0xd844d56b38ac9f9f6b9e767dbc441bbc3b6b0f4d3109c5428bc63001cbe64c5c" }, - "1530013596495": { + "1534750848541": { "events": {}, "links": {}, - "address": "0x25475aa70f1dd8e565d0e9f3421dd2d5a6bdb226", - "transactionHash": "0x711b1024213238c3524d8f90f993c3e56ad078d00e326383ce4f4b8e7df1f489" - }, - "1530525742205": { - "events": {}, - "links": {}, - "address": "0x9a2b7ffa6832e646a0cd011980191ab9bd2cefb6", - "transactionHash": "0x7af1e557142bc9cc9bedcfbd550efa8d91bfabefb4cde8f29294155c9465c137" - }, - "1530611935189": { - "events": {}, - "links": {}, - "address": "0x749312e74fe2f459318be67f6377f3f519999ea0", - "transactionHash": "0x7af1e557142bc9cc9bedcfbd550efa8d91bfabefb4cde8f29294155c9465c137" + "address": "0x970e8f18ebfea0b08810f33a5a40438b9530fbcf", + "transactionHash": "0x81ed98a58ec6e7d31721cadae9205ef9d68cdb0ccf37e505fbcb154abc170b13" } }, "schemaVersion": "2.0.0", - "updatedAt": "2018-07-03T09:59:18.519Z" + "updatedAt": "2018-08-20T07:50:29.680Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/DailyLimitModule.json b/safe-contracts/build/contracts/DailyLimitModule.json index 314c71d0ca..8980d9b554 100644 --- a/safe-contracts/build/contracts/DailyLimitModule.json +++ b/safe-contracts/build/contracts/DailyLimitModule.json @@ -157,24 +157,24 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b5061129b806100206000396000f300608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806328814f031461009e578063481c6a751461014757806363bae7c31461019e5780637de7edef1461020b57806381c5e03b1461024e578063a3f4df7e1461029b578063b74e452b1461032b578063d7bffc9214610356578063ffa1ad74146103bb575b600080fd5b3480156100aa57600080fd5b50610145600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929050505061044b565b005b34801561015357600080fd5b5061015c6104ea565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101aa57600080fd5b50610209600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610510565b005b34801561021757600080fd5b5061024c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d00565b005b34801561025a57600080fd5b50610299600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ee3565b005b3480156102a757600080fd5b506102b0611019565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102f05780820151818401526020810190506102d5565b50505050905090810190601f16801561031d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561033757600080fd5b50610340611052565b6040518082815260200191505060405180910390f35b34801561036257600080fd5b50610397600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061106a565b60405180848152602001838152602001828152602001935050505060405180910390f35b3480156103c757600080fd5b506103d0611094565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104105780820151818401526020810190506103f5565b50505050905090810190601f16801561043d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60006104556110cd565b600090505b82518110156104e557818181518110151561047157fe5b9060200190602002015160026000858481518110151561048d57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550808060010191505061045a565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156105cf57600080fd5b505af11580156105e3573d6000803e3d6000fd5b505050506040513d60208110156105f957600080fd5b810190808051906020019092919050505015156106a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e2081526020017f6f776e657200000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff1614151515610733576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f496e76616c696420746f20616464726573732070726f7669646564000000000081525060200191505060405180910390fd5b6000821115156107ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f496e76616c696420616d6f756e742070726f766964656400000000000000000081525060200191505060405180910390fd5b6107b584836111c0565b1515610829576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4461696c79206c696d697420686173206265656e20726561636865640000000081525060200191505060405180910390fd5b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254019250508190555060008473ffffffffffffffffffffffffffffffffffffffff161415610a3c57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7848460006040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018060200183600281111561095157fe5b60ff168152602001828103825260008152602001602001945050505050602060405180830381600087803b15801561098857600080fd5b505af115801561099c573d6000803e3d6000fd5b505050506040513d60208110156109b257600080fd5b81019080805190602001909291905050501515610a37576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f756c64206e6f742065786563757465206574686572207472616e7366657281525060200191505060405180910390fd5b610cfa565b8282604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a78560008460006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610bbb57fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610bfb578082015181840152602081019050610be0565b50505050905090810190601f168015610c285780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610c4a57600080fd5b505af1158015610c5e573d6000803e3d6000fd5b505050506040513d6020811015610c7457600080fd5b81019080805190602001909291905050501515610cf9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f756c64206e6f74206578656375746520746f6b656e207472616e7366657281525060200191505060405180910390fd5b5b50505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610deb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610ea0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505050565b6040805190810160405280601281526020017f4461696c79204c696d6974204d6f64756c65000000000000000000000000000081525081565b6000620151804281151561106257fe5b064203905090565b60026020528060005260406000206000915090508060000154908060010154908060020154905083565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561117d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060020154611211611052565b11156112325761121f611052565b8160020181905550600081600101819055505b806000015483826001015401111580156112555750806001015483826001015401115b156112635760019150611268565b600091505b50929150505600a165627a7a72305820829e0119c133a410205606912728b71003dbd7359410bad5c3588c1681dc2d3d0029", - "deployedBytecode": "0x608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806328814f031461009e578063481c6a751461014757806363bae7c31461019e5780637de7edef1461020b57806381c5e03b1461024e578063a3f4df7e1461029b578063b74e452b1461032b578063d7bffc9214610356578063ffa1ad74146103bb575b600080fd5b3480156100aa57600080fd5b50610145600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929050505061044b565b005b34801561015357600080fd5b5061015c6104ea565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101aa57600080fd5b50610209600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610510565b005b34801561021757600080fd5b5061024c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d00565b005b34801561025a57600080fd5b50610299600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ee3565b005b3480156102a757600080fd5b506102b0611019565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102f05780820151818401526020810190506102d5565b50505050905090810190601f16801561031d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561033757600080fd5b50610340611052565b6040518082815260200191505060405180910390f35b34801561036257600080fd5b50610397600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061106a565b60405180848152602001838152602001828152602001935050505060405180910390f35b3480156103c757600080fd5b506103d0611094565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104105780820151818401526020810190506103f5565b50505050905090810190601f16801561043d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60006104556110cd565b600090505b82518110156104e557818181518110151561047157fe5b9060200190602002015160026000858481518110151561048d57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550808060010191505061045a565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156105cf57600080fd5b505af11580156105e3573d6000803e3d6000fd5b505050506040513d60208110156105f957600080fd5b810190808051906020019092919050505015156106a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e2081526020017f6f776e657200000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff1614151515610733576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f496e76616c696420746f20616464726573732070726f7669646564000000000081525060200191505060405180910390fd5b6000821115156107ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f496e76616c696420616d6f756e742070726f766964656400000000000000000081525060200191505060405180910390fd5b6107b584836111c0565b1515610829576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4461696c79206c696d697420686173206265656e20726561636865640000000081525060200191505060405180910390fd5b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254019250508190555060008473ffffffffffffffffffffffffffffffffffffffff161415610a3c57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7848460006040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018060200183600281111561095157fe5b60ff168152602001828103825260008152602001602001945050505050602060405180830381600087803b15801561098857600080fd5b505af115801561099c573d6000803e3d6000fd5b505050506040513d60208110156109b257600080fd5b81019080805190602001909291905050501515610a37576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f756c64206e6f742065786563757465206574686572207472616e7366657281525060200191505060405180910390fd5b610cfa565b8282604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a78560008460006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610bbb57fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610bfb578082015181840152602081019050610be0565b50505050905090810190601f168015610c285780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610c4a57600080fd5b505af1158015610c5e573d6000803e3d6000fd5b505050506040513d6020811015610c7457600080fd5b81019080805190602001909291905050501515610cf9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f756c64206e6f74206578656375746520746f6b656e207472616e7366657281525060200191505060405180910390fd5b5b50505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610deb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610ea0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505050565b6040805190810160405280601281526020017f4461696c79204c696d6974204d6f64756c65000000000000000000000000000081525081565b6000620151804281151561106257fe5b064203905090565b60026020528060005260406000206000915090508060000154908060010154908060020154905083565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561117d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060020154611211611052565b11156112325761121f611052565b8160020181905550600081600101819055505b806000015483826001015401111580156112555750806001015483826001015401115b156112635760019150611268565b600091505b50929150505600a165627a7a72305820829e0119c133a410205606912728b71003dbd7359410bad5c3588c1681dc2d3d0029", + "bytecode": "0x608060405234801561001057600080fd5b5061129b806100206000396000f300608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806328814f031461009e578063481c6a751461014757806363bae7c31461019e5780637de7edef1461020b57806381c5e03b1461024e578063a3f4df7e1461029b578063b74e452b1461032b578063d7bffc9214610356578063ffa1ad74146103bb575b600080fd5b3480156100aa57600080fd5b50610145600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929050505061044b565b005b34801561015357600080fd5b5061015c6104ea565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101aa57600080fd5b50610209600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610510565b005b34801561021757600080fd5b5061024c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d00565b005b34801561025a57600080fd5b50610299600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ee3565b005b3480156102a757600080fd5b506102b0611019565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102f05780820151818401526020810190506102d5565b50505050905090810190601f16801561031d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561033757600080fd5b50610340611052565b6040518082815260200191505060405180910390f35b34801561036257600080fd5b50610397600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061106a565b60405180848152602001838152602001828152602001935050505060405180910390f35b3480156103c757600080fd5b506103d0611094565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104105780820151818401526020810190506103f5565b50505050905090810190601f16801561043d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60006104556110cd565b600090505b82518110156104e557818181518110151561047157fe5b9060200190602002015160026000858481518110151561048d57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550808060010191505061045a565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156105cf57600080fd5b505af11580156105e3573d6000803e3d6000fd5b505050506040513d60208110156105f957600080fd5b810190808051906020019092919050505015156106a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e2081526020017f6f776e657200000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff1614151515610733576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f496e76616c696420746f20616464726573732070726f7669646564000000000081525060200191505060405180910390fd5b6000821115156107ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f496e76616c696420616d6f756e742070726f766964656400000000000000000081525060200191505060405180910390fd5b6107b584836111c0565b1515610829576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4461696c79206c696d697420686173206265656e20726561636865640000000081525060200191505060405180910390fd5b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254019250508190555060008473ffffffffffffffffffffffffffffffffffffffff161415610a3c57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7848460006040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018060200183600281111561095157fe5b60ff168152602001828103825260008152602001602001945050505050602060405180830381600087803b15801561098857600080fd5b505af115801561099c573d6000803e3d6000fd5b505050506040513d60208110156109b257600080fd5b81019080805190602001909291905050501515610a37576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f756c64206e6f742065786563757465206574686572207472616e7366657281525060200191505060405180910390fd5b610cfa565b8282604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a78560008460006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610bbb57fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610bfb578082015181840152602081019050610be0565b50505050905090810190601f168015610c285780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610c4a57600080fd5b505af1158015610c5e573d6000803e3d6000fd5b505050506040513d6020811015610c7457600080fd5b81019080805190602001909291905050501515610cf9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f756c64206e6f74206578656375746520746f6b656e207472616e7366657281525060200191505060405180910390fd5b5b50505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610deb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610ea0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505050565b6040805190810160405280601281526020017f4461696c79204c696d6974204d6f64756c65000000000000000000000000000081525081565b6000620151804281151561106257fe5b064203905090565b60026020528060005260406000206000915090508060000154908060010154908060020154905083565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561117d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060020154611211611052565b11156112325761121f611052565b8160020181905550600081600101819055505b806000015483826001015401111580156112555750806001015483826001015401115b156112635760019150611268565b600091505b50929150505600a165627a7a72305820f90753fa743812a3fd6d848a511f3250f1a33a93051828c9dae3f85725abc1e00029", + "deployedBytecode": "0x608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806328814f031461009e578063481c6a751461014757806363bae7c31461019e5780637de7edef1461020b57806381c5e03b1461024e578063a3f4df7e1461029b578063b74e452b1461032b578063d7bffc9214610356578063ffa1ad74146103bb575b600080fd5b3480156100aa57600080fd5b50610145600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929050505061044b565b005b34801561015357600080fd5b5061015c6104ea565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101aa57600080fd5b50610209600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610510565b005b34801561021757600080fd5b5061024c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d00565b005b34801561025a57600080fd5b50610299600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ee3565b005b3480156102a757600080fd5b506102b0611019565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102f05780820151818401526020810190506102d5565b50505050905090810190601f16801561031d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561033757600080fd5b50610340611052565b6040518082815260200191505060405180910390f35b34801561036257600080fd5b50610397600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061106a565b60405180848152602001838152602001828152602001935050505060405180910390f35b3480156103c757600080fd5b506103d0611094565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104105780820151818401526020810190506103f5565b50505050905090810190601f16801561043d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60006104556110cd565b600090505b82518110156104e557818181518110151561047157fe5b9060200190602002015160026000858481518110151561048d57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550808060010191505061045a565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156105cf57600080fd5b505af11580156105e3573d6000803e3d6000fd5b505050506040513d60208110156105f957600080fd5b810190808051906020019092919050505015156106a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e2081526020017f6f776e657200000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff1614151515610733576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f496e76616c696420746f20616464726573732070726f7669646564000000000081525060200191505060405180910390fd5b6000821115156107ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f496e76616c696420616d6f756e742070726f766964656400000000000000000081525060200191505060405180910390fd5b6107b584836111c0565b1515610829576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4461696c79206c696d697420686173206265656e20726561636865640000000081525060200191505060405180910390fd5b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254019250508190555060008473ffffffffffffffffffffffffffffffffffffffff161415610a3c57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7848460006040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018060200183600281111561095157fe5b60ff168152602001828103825260008152602001602001945050505050602060405180830381600087803b15801561098857600080fd5b505af115801561099c573d6000803e3d6000fd5b505050506040513d60208110156109b257600080fd5b81019080805190602001909291905050501515610a37576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f756c64206e6f742065786563757465206574686572207472616e7366657281525060200191505060405180910390fd5b610cfa565b8282604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a78560008460006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610bbb57fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610bfb578082015181840152602081019050610be0565b50505050905090810190601f168015610c285780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610c4a57600080fd5b505af1158015610c5e573d6000803e3d6000fd5b505050506040513d6020811015610c7457600080fd5b81019080805190602001909291905050501515610cf9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f756c64206e6f74206578656375746520746f6b656e207472616e7366657281525060200191505060405180910390fd5b5b50505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610deb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610ea0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505050565b6040805190810160405280601281526020017f4461696c79204c696d6974204d6f64756c65000000000000000000000000000081525081565b6000620151804281151561106257fe5b064203905090565b60026020528060005260406000206000915090508060000154908060010154908060020154905083565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561117d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060020154611211611052565b11156112325761121f611052565b8160020181905550600081600101819055505b806000015483826001015401111580156112555750806001015483826001015401115b156112635760019150611268565b600091505b50929150505600a165627a7a72305820f90753fa743812a3fd6d848a511f3250f1a33a93051828c9dae3f85725abc1e00029", "sourceMap": "296:3283:20:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;296:3283:20;;;;;;;", - "deployedSourceMap": "296:3283:20:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;918:222;;8:9:-1;5:2;;;30:1;27;20:12;5:2;918:222:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;262:28:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;262:28:8;;;;;;;;;;;;;;;;;;;;;;;;;;;1890:987:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1890:987:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;1368:158:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1368:158:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;339:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;339:50: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;339:50:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3461:116;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3461:116:20;;;;;;;;;;;;;;;;;;;;;;;513:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;513:50:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;395:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;395: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;395:40:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;918:222;1031:9;1004:12;:10;:12::i;:::-;1043:1;1031:13;;1026:107;1050:6;:13;1046:1;:17;1026:107;;;1118:12;1131:1;1118:15;;;;;;;;;;;;;;;;;;1082:11;:22;1094:6;1101:1;1094:9;;;;;;;;;;;;;;;;;;1082:22;;;;;;;;;;;;;;;:33;;:51;;;;1065:3;;;;;;;1026:107;;;918:222;;;:::o;262:28:8:-;;;;;;;;;;;;;:::o;1890:987:20:-;2647:17;2087:7;;;;;;;;;;;2074:29;;;2104:10;2074:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2074:41:20;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2074:41:20;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2074:41:20;;;;;;;;;;;;;;;;2066:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2181:1;2175:2;:7;;;;2167:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2241:1;2232:6;:10;2224:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2352:27;2365:5;2372:6;2352:12;:27::i;:::-;2344:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2455:6;2422:11;:18;2434:5;2422:18;;;;;;;;;;;;;;;:29;;;:39;;;;;;;;;;;2484:1;2475:5;:10;;;2471:400;;;2509:7;;;;;;;;;;;:33;;;2543:2;2547:6;2559:19;2509:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2509:70:20;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2509:70:20;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2509:70:20;;;;;;;;;;;;;;;;2501:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2471:400;;;2720:2;2724:6;2667:64;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2667:64:20;;;;;;;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;;;2667:64:20;2647:84;;2753:7;;;;;;;;;;;:33;;;2787:5;2794:1;2797:4;2803:19;2753: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;2753:70:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2753:70:20;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2753:70:20;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2753:70:20;;;;;;;;;;;;;;;;2745:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2471:400;1890:987;;;;:::o;626:248:5:-;359:7:8;;;;;;;;;;;337:30;;:10;:30;;;329:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:5;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;1368:158:20:-;359:7:8;;;;;;;;;;;337:30;;:10;:30;;;329:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1509:10:20;1477:11;:18;1489:5;1477:18;;;;;;;;;;;;;;;:29;;:42;;;;1368:158;;:::o;339:50::-;;;;;;;;;;;;;;;;;;;;:::o;3461:116::-;3523:4;3563:6;3557:3;:12;;;;;;;;3550:3;:20;3543:27;;3461:116;:::o;513:50::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;395:40::-;;;;;;;;;;;;;;;;;;;;:::o;434:300:8:-;648:1;636:7;;;;;;;;;;;628:21;;;620:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;716:10;692:7;;:35;;;;;;;;;;;;;;;;;;434:300::o;2883:486:20:-;2970:4;2990:29;3022:11;:18;3034:5;3022:18;;;;;;;;;;;;;;;2990:50;;3064:10;:18;;;3054:7;:5;:7::i;:::-;:28;3050:126;;;3119:7;:5;:7::i;:::-;3098:10;:18;;:28;;;;3164:1;3140:10;:21;;:25;;;;3050:126;3223:10;:21;;;3213:6;3189:10;:21;;;:30;:55;;:126;;;;;3294:10;:21;;;3285:6;3261:10;:21;;;:30;:54;3189:126;3185:155;;;3336:4;3329:11;;;;3185:155;3357:5;3350:12;;2883:486;;;;;;:::o", + "deployedSourceMap": "296:3283:20:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;918:222;;8:9:-1;5:2;;;30:1;27;20:12;5:2;918:222:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;262:28:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;262:28:9;;;;;;;;;;;;;;;;;;;;;;;;;;;1890:987:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1890:987:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;1368:158:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1368:158:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;339:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;339:50: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;339:50:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3461:116;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3461:116:20;;;;;;;;;;;;;;;;;;;;;;;513:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;513:50:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;395:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;395: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;395:40:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;918:222;1031:9;1004:12;:10;:12::i;:::-;1043:1;1031:13;;1026:107;1050:6;:13;1046:1;:17;1026:107;;;1118:12;1131:1;1118:15;;;;;;;;;;;;;;;;;;1082:11;:22;1094:6;1101:1;1094:9;;;;;;;;;;;;;;;;;;1082:22;;;;;;;;;;;;;;;:33;;:51;;;;1065:3;;;;;;;1026:107;;;918:222;;;:::o;262:28:9:-;;;;;;;;;;;;;:::o;1890:987:20:-;2647:17;2087:7;;;;;;;;;;;2074:29;;;2104:10;2074:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2074:41:20;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2074:41:20;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2074:41:20;;;;;;;;;;;;;;;;2066:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2181:1;2175:2;:7;;;;2167:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2241:1;2232:6;:10;2224:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2352:27;2365:5;2372:6;2352:12;:27::i;:::-;2344:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2455:6;2422:11;:18;2434:5;2422:18;;;;;;;;;;;;;;;:29;;;:39;;;;;;;;;;;2484:1;2475:5;:10;;;2471:400;;;2509:7;;;;;;;;;;;:33;;;2543:2;2547:6;2559:19;2509:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2509:70:20;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2509:70:20;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2509:70:20;;;;;;;;;;;;;;;;2501:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2471:400;;;2720:2;2724:6;2667:64;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2667:64:20;;;;;;;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;;;2667:64:20;2647:84;;2753:7;;;;;;;;;;;:33;;;2787:5;2794:1;2797:4;2803:19;2753: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;2753:70:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2753:70:20;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2753:70:20;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2753:70:20;;;;;;;;;;;;;;;;2745:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2471:400;1890:987;;;;:::o;626:248:7:-;359:7:9;;;;;;;;;;;337:30;;:10;:30;;;329:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:7;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;1368:158:20:-;359:7:9;;;;;;;;;;;337:30;;:10;:30;;;329:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1509:10:20;1477:11;:18;1489:5;1477:18;;;;;;;;;;;;;;;:29;;:42;;;;1368:158;;:::o;339:50::-;;;;;;;;;;;;;;;;;;;;:::o;3461:116::-;3523:4;3563:6;3557:3;:12;;;;;;;;3550:3;:20;3543:27;;3461:116;:::o;513:50::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;395:40::-;;;;;;;;;;;;;;;;;;;;:::o;434:300:9:-;648:1;636:7;;;;;;;;;;;628:21;;;620:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;716:10;692:7;;:35;;;;;;;;;;;;;;;;;;434:300::o;2883:486:20:-;2970:4;2990:29;3022:11;:18;3034:5;3022:18;;;;;;;;;;;;;;;2990:50;;3064:10;:18;;;3054:7;:5;:7::i;:::-;:28;3050:126;;;3119:7;:5;:7::i;:::-;3098:10;:18;;:28;;;;3164:1;3140:10;:21;;:25;;;;3050:126;3223:10;:21;;;3213:6;3189:10;:21;;;:30;:55;;:126;;;;;3294:10;:21;;;3285:6;3261:10;:21;;;:30;:54;3189:126;3185:155;;;3336:4;3329:11;;;;3185:155;3357:5;3350:12;;2883:486;;;;;;:::o", "source": "pragma solidity 0.4.24;\nimport \"../Module.sol\";\nimport \"../ModuleManager.sol\";\nimport \"../OwnerManager.sol\";\nimport \"../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.1\";\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": [ - 3415 + 2115 ] }, - "id": 3416, + "id": 2116, "nodeType": "SourceUnit", "nodes": [ { - "id": 3178, + "id": 1878, "literals": [ "solidity", "0.4", @@ -186,10 +186,10 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", "file": "../Module.sol", - "id": 3179, + "id": 1879, "nodeType": "ImportDirective", - "scope": 3416, - "sourceUnit": 1862, + "scope": 2116, + "sourceUnit": 914, "src": "24:23:20", "symbolAliases": [], "unitAlias": "" @@ -197,10 +197,10 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", "file": "../ModuleManager.sol", - "id": 3180, + "id": 1880, "nodeType": "ImportDirective", - "scope": 3416, - "sourceUnit": 2233, + "scope": 2116, + "sourceUnit": 1181, "src": "48:30:20", "symbolAliases": [], "unitAlias": "" @@ -208,10 +208,10 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", "file": "../OwnerManager.sol", - "id": 3181, + "id": 1881, "nodeType": "ImportDirective", - "scope": 3416, - "sourceUnit": 2889, + "scope": 2116, + "sourceUnit": 1589, "src": "79:29:20", "symbolAliases": [], "unitAlias": "" @@ -219,9 +219,9 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", "file": "../Enum.sol", - "id": 3182, + "id": 1882, "nodeType": "ImportDirective", - "scope": 3416, + "scope": 2116, "sourceUnit": 31, "src": "109:21:20", "symbolAliases": [], @@ -233,45 +233,45 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 3183, + "id": 1883, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1861, + "referencedDeclaration": 913, "src": "325:6:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" } }, - "id": 3184, + "id": 1884, "nodeType": "InheritanceSpecifier", "src": "325:6:20" } ], "contractDependencies": [ - 632, - 1861, - 3065 + 813, + 913, + 1765 ], "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": 3415, + "id": 2115, "linearizedBaseContracts": [ - 3415, - 1861, - 632, - 3065 + 2115, + 913, + 813, + 1765 ], "name": "DailyLimitModule", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 3187, + "id": 1887, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 3415, + "scope": 2115, "src": "339:50:20", "stateVariable": true, "storageLocation": "default", @@ -280,7 +280,7 @@ "typeString": "string" }, "typeName": { - "id": 3185, + "id": 1885, "name": "string", "nodeType": "ElementaryTypeName", "src": "339:6:20", @@ -292,7 +292,7 @@ "value": { "argumentTypes": null, "hexValue": "4461696c79204c696d6974204d6f64756c65", - "id": 3186, + "id": 1886, "isConstant": false, "isLValue": false, "isPure": true, @@ -311,10 +311,10 @@ }, { "constant": true, - "id": 3190, + "id": 1890, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 3415, + "scope": 2115, "src": "395:40:20", "stateVariable": true, "storageLocation": "default", @@ -323,7 +323,7 @@ "typeString": "string" }, "typeName": { - "id": 3188, + "id": 1888, "name": "string", "nodeType": "ElementaryTypeName", "src": "395:6:20", @@ -335,7 +335,7 @@ "value": { "argumentTypes": null, "hexValue": "302e302e31", - "id": 3189, + "id": 1889, "isConstant": false, "isLValue": false, "isPure": true, @@ -354,21 +354,21 @@ }, { "constant": false, - "id": 3194, + "id": 1894, "name": "dailyLimits", "nodeType": "VariableDeclaration", - "scope": 3415, + "scope": 2115, "src": "513:50:20", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$3201_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1901_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit)" }, "typeName": { - "id": 3193, + "id": 1893, "keyType": { - "id": 3191, + "id": 1891, "name": "address", "nodeType": "ElementaryTypeName", "src": "522:7:20", @@ -380,18 +380,18 @@ "nodeType": "Mapping", "src": "513:31:20", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$3201_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1901_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit)" }, "valueType": { "contractScope": null, - "id": 3192, + "id": 1892, "name": "DailyLimit", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3201, + "referencedDeclaration": 1901, "src": "533:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$3201_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1901_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit" } } @@ -401,14 +401,14 @@ }, { "canonicalName": "DailyLimitModule.DailyLimit", - "id": 3201, + "id": 1901, "members": [ { "constant": false, - "id": 3196, + "id": 1896, "name": "dailyLimit", "nodeType": "VariableDeclaration", - "scope": 3201, + "scope": 1901, "src": "598:18:20", "stateVariable": false, "storageLocation": "default", @@ -417,7 +417,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3195, + "id": 1895, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "598:7:20", @@ -431,10 +431,10 @@ }, { "constant": false, - "id": 3198, + "id": 1898, "name": "spentToday", "nodeType": "VariableDeclaration", - "scope": 3201, + "scope": 1901, "src": "626:18:20", "stateVariable": false, "storageLocation": "default", @@ -443,7 +443,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3197, + "id": 1897, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "626:7:20", @@ -457,10 +457,10 @@ }, { "constant": false, - "id": 3200, + "id": 1900, "name": "lastDay", "nodeType": "VariableDeclaration", - "scope": 3201, + "scope": 1901, "src": "654:15:20", "stateVariable": false, "storageLocation": "default", @@ -469,7 +469,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3199, + "id": 1899, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "654:7:20", @@ -484,13 +484,13 @@ ], "name": "DailyLimit", "nodeType": "StructDefinition", - "scope": 3415, + "scope": 2115, "src": "570:106:20", "visibility": "public" }, { "body": { - "id": 3236, + "id": 1936, "nodeType": "Block", "src": "994:146:20", "statements": [ @@ -500,18 +500,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 3210, + "id": 1910, "name": "setManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1860, + "referencedDeclaration": 912, "src": "1004:10:20", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 3211, + "id": 1911, "isConstant": false, "isLValue": false, "isPure": false, @@ -525,7 +525,7 @@ "typeString": "tuple()" } }, - "id": 3212, + "id": 1912, "nodeType": "ExpressionStatement", "src": "1004:12:20" }, @@ -533,7 +533,7 @@ "body": { "expression": { "argumentTypes": null, - "id": 3233, + "id": 1933, "isConstant": false, "isLValue": false, "isPure": false, @@ -544,41 +544,41 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3224, + "id": 1924, "name": "dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3194, + "referencedDeclaration": 1894, "src": "1082:11:20", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$3201_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1901_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" } }, - "id": 3228, + "id": 1928, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3225, + "id": 1925, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3204, + "referencedDeclaration": 1904, "src": "1094:6:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 3227, + "id": 1927, "indexExpression": { "argumentTypes": null, - "id": 3226, + "id": 1926, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3214, + "referencedDeclaration": 1914, "src": "1101:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -603,18 +603,18 @@ "nodeType": "IndexAccess", "src": "1082:22:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$3201_storage", + "typeIdentifier": "t_struct$_DailyLimit_$1901_storage", "typeString": "struct DailyLimitModule.DailyLimit storage ref" } }, - "id": 3229, + "id": 1929, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "dailyLimit", "nodeType": "MemberAccess", - "referencedDeclaration": 3196, + "referencedDeclaration": 1896, "src": "1082:33:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -627,25 +627,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3230, + "id": 1930, "name": "_dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3207, + "referencedDeclaration": 1907, "src": "1118:12:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 3232, + "id": 1932, "indexExpression": { "argumentTypes": null, - "id": 3231, + "id": 1931, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3214, + "referencedDeclaration": 1914, "src": "1131:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -669,7 +669,7 @@ "typeString": "uint256" } }, - "id": 3234, + "id": 1934, "nodeType": "ExpressionStatement", "src": "1082:51:20" }, @@ -679,18 +679,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3220, + "id": 1920, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3217, + "id": 1917, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3214, + "referencedDeclaration": 1914, "src": "1046:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -703,18 +703,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3218, + "id": 1918, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3204, + "referencedDeclaration": 1904, "src": "1050:6:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 3219, + "id": 1919, "isConstant": false, "isLValue": false, "isPure": false, @@ -734,18 +734,18 @@ "typeString": "bool" } }, - "id": 3235, + "id": 1935, "initializationExpression": { "assignments": [ - 3214 + 1914 ], "declarations": [ { "constant": false, - "id": 3214, + "id": 1914, "name": "i", "nodeType": "VariableDeclaration", - "scope": 3237, + "scope": 1937, "src": "1031:9:20", "stateVariable": false, "storageLocation": "default", @@ -754,7 +754,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3213, + "id": 1913, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1031:7:20", @@ -767,11 +767,11 @@ "visibility": "internal" } ], - "id": 3216, + "id": 1916, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 3215, + "id": 1915, "isConstant": false, "isLValue": false, "isPure": true, @@ -792,7 +792,7 @@ "loopExpression": { "expression": { "argumentTypes": null, - "id": 3222, + "id": 1922, "isConstant": false, "isLValue": false, "isPure": false, @@ -803,11 +803,11 @@ "src": "1065:3:20", "subExpression": { "argumentTypes": null, - "id": 3221, + "id": 1921, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3214, + "referencedDeclaration": 1914, "src": "1065:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -819,7 +819,7 @@ "typeString": "uint256" } }, - "id": 3223, + "id": 1923, "nodeType": "ExpressionStatement", "src": "1065:3:20" }, @@ -829,7 +829,7 @@ ] }, "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": 3237, + "id": 1937, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -837,15 +837,15 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 3208, + "id": 1908, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3204, + "id": 1904, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3237, + "scope": 1937, "src": "933:16:20", "stateVariable": false, "storageLocation": "default", @@ -855,7 +855,7 @@ }, "typeName": { "baseType": { - "id": 3202, + "id": 1902, "name": "address", "nodeType": "ElementaryTypeName", "src": "933:7:20", @@ -864,7 +864,7 @@ "typeString": "address" } }, - "id": 3203, + "id": 1903, "length": null, "nodeType": "ArrayTypeName", "src": "933:9:20", @@ -878,10 +878,10 @@ }, { "constant": false, - "id": 3207, + "id": 1907, "name": "_dailyLimits", "nodeType": "VariableDeclaration", - "scope": 3237, + "scope": 1937, "src": "951:22:20", "stateVariable": false, "storageLocation": "default", @@ -891,7 +891,7 @@ }, "typeName": { "baseType": { - "id": 3205, + "id": 1905, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "951:7:20", @@ -900,7 +900,7 @@ "typeString": "uint256" } }, - "id": 3206, + "id": 1906, "length": null, "nodeType": "ArrayTypeName", "src": "951:9:20", @@ -917,12 +917,12 @@ }, "payable": false, "returnParameters": { - "id": 3209, + "id": 1909, "nodeType": "ParameterList", "parameters": [], "src": "994:0:20" }, - "scope": 3415, + "scope": 2115, "src": "918:222:20", "stateMutability": "nonpayable", "superFunction": null, @@ -930,14 +930,14 @@ }, { "body": { - "id": 3253, + "id": 1953, "nodeType": "Block", "src": "1467:59:20", "statements": [ { "expression": { "argumentTypes": null, - "id": 3251, + "id": 1951, "isConstant": false, "isLValue": false, "isPure": false, @@ -948,25 +948,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3246, + "id": 1946, "name": "dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3194, + "referencedDeclaration": 1894, "src": "1477:11:20", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$3201_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1901_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" } }, - "id": 3248, + "id": 1948, "indexExpression": { "argumentTypes": null, - "id": 3247, + "id": 1947, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3239, + "referencedDeclaration": 1939, "src": "1489:5:20", "typeDescriptions": { "typeIdentifier": "t_address", @@ -980,18 +980,18 @@ "nodeType": "IndexAccess", "src": "1477:18:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$3201_storage", + "typeIdentifier": "t_struct$_DailyLimit_$1901_storage", "typeString": "struct DailyLimitModule.DailyLimit storage ref" } }, - "id": 3249, + "id": 1949, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "dailyLimit", "nodeType": "MemberAccess", - "referencedDeclaration": 3196, + "referencedDeclaration": 1896, "src": "1477:29:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1002,11 +1002,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3250, + "id": 1950, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3241, + "referencedDeclaration": 1941, "src": "1509:10:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1019,28 +1019,28 @@ "typeString": "uint256" } }, - "id": 3252, + "id": 1952, "nodeType": "ExpressionStatement", "src": "1477:42:20" } ] }, "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": 3254, + "id": 1954, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 3244, + "id": 1944, "modifierName": { "argumentTypes": null, - "id": 3243, + "id": 1943, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1840, + "referencedDeclaration": 892, "src": "1452:10:20", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -1054,15 +1054,15 @@ "name": "changeDailyLimit", "nodeType": "FunctionDefinition", "parameters": { - "id": 3242, + "id": 1942, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3239, + "id": 1939, "name": "token", "nodeType": "VariableDeclaration", - "scope": 3254, + "scope": 1954, "src": "1394:13:20", "stateVariable": false, "storageLocation": "default", @@ -1071,7 +1071,7 @@ "typeString": "address" }, "typeName": { - "id": 3238, + "id": 1938, "name": "address", "nodeType": "ElementaryTypeName", "src": "1394:7:20", @@ -1085,10 +1085,10 @@ }, { "constant": false, - "id": 3241, + "id": 1941, "name": "dailyLimit", "nodeType": "VariableDeclaration", - "scope": 3254, + "scope": 1954, "src": "1409:18:20", "stateVariable": false, "storageLocation": "default", @@ -1097,7 +1097,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3240, + "id": 1940, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1409:7:20", @@ -1114,12 +1114,12 @@ }, "payable": false, "returnParameters": { - "id": 3245, + "id": 1945, "nodeType": "ParameterList", "parameters": [], "src": "1467:0:20" }, - "scope": 3415, + "scope": 2115, "src": "1368:158:20", "stateMutability": "nonpayable", "superFunction": null, @@ -1127,7 +1127,7 @@ }, { "body": { - "id": 3344, + "id": 2044, "nodeType": "Block", "src": "1979:898:20", "statements": [ @@ -1142,18 +1142,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3268, + "id": 1968, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4036, + "referencedDeclaration": 3828, "src": "2104:3:20", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3269, + "id": 1969, "isConstant": false, "isLValue": false, "isPure": false, @@ -1180,14 +1180,14 @@ "arguments": [ { "argumentTypes": null, - "id": 3265, + "id": 1965, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1826, + "referencedDeclaration": 878, "src": "2087:7:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } } @@ -1195,22 +1195,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } ], - "id": 3264, + "id": 1964, "name": "OwnerManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2888, + "referencedDeclaration": 1588, "src": "2074:12:20", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$2888_$", + "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1588_$", "typeString": "type(contract OwnerManager)" } }, - "id": 3266, + "id": 1966, "isConstant": false, "isLValue": false, "isPure": false, @@ -1220,25 +1220,25 @@ "nodeType": "FunctionCall", "src": "2074:21:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$2888", + "typeIdentifier": "t_contract$_OwnerManager_$1588", "typeString": "contract OwnerManager" } }, - "id": 3267, + "id": 1967, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isOwner", "nodeType": "MemberAccess", - "referencedDeclaration": 2838, + "referencedDeclaration": 1538, "src": "2074:29:20", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view external returns (bool)" } }, - "id": 3270, + "id": 1970, "isConstant": false, "isLValue": false, "isPure": false, @@ -1255,7 +1255,7 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e206f776e6572", - "id": 3271, + "id": 1971, "isConstant": false, "isLValue": false, "isPure": true, @@ -1282,21 +1282,21 @@ "typeString": "literal_string \"Method can only be called by an owner\"" } ], - "id": 3263, + "id": 1963, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "2066:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3272, + "id": 1972, "isConstant": false, "isLValue": false, "isPure": false, @@ -1310,7 +1310,7 @@ "typeString": "tuple()" } }, - "id": 3273, + "id": 1973, "nodeType": "ExpressionStatement", "src": "2066:91:20" }, @@ -1324,18 +1324,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3277, + "id": 1977, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3275, + "id": 1975, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3258, + "referencedDeclaration": 1958, "src": "2175:2:20", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1347,7 +1347,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3276, + "id": 1976, "isConstant": false, "isLValue": false, "isPure": true, @@ -1371,7 +1371,7 @@ { "argumentTypes": null, "hexValue": "496e76616c696420746f20616464726573732070726f7669646564", - "id": 3278, + "id": 1978, "isConstant": false, "isLValue": false, "isPure": true, @@ -1398,21 +1398,21 @@ "typeString": "literal_string \"Invalid to address provided\"" } ], - "id": 3274, + "id": 1974, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "2167:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3279, + "id": 1979, "isConstant": false, "isLValue": false, "isPure": false, @@ -1426,7 +1426,7 @@ "typeString": "tuple()" } }, - "id": 3280, + "id": 1980, "nodeType": "ExpressionStatement", "src": "2167:47:20" }, @@ -1440,18 +1440,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3284, + "id": 1984, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3282, + "id": 1982, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3260, + "referencedDeclaration": 1960, "src": "2232:6:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1463,7 +1463,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3283, + "id": 1983, "isConstant": false, "isLValue": false, "isPure": true, @@ -1487,7 +1487,7 @@ { "argumentTypes": null, "hexValue": "496e76616c696420616d6f756e742070726f7669646564", - "id": 3285, + "id": 1985, "isConstant": false, "isLValue": false, "isPure": true, @@ -1514,21 +1514,21 @@ "typeString": "literal_string \"Invalid amount provided\"" } ], - "id": 3281, + "id": 1981, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "2224:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3286, + "id": 1986, "isConstant": false, "isLValue": false, "isPure": false, @@ -1542,7 +1542,7 @@ "typeString": "tuple()" } }, - "id": 3287, + "id": 1987, "nodeType": "ExpressionStatement", "src": "2224:46:20" }, @@ -1555,11 +1555,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3290, + "id": 1990, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3256, + "referencedDeclaration": 1956, "src": "2365:5:20", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1568,11 +1568,11 @@ }, { "argumentTypes": null, - "id": 3291, + "id": 1991, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3260, + "referencedDeclaration": 1960, "src": "2372:6:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1591,18 +1591,18 @@ "typeString": "uint256" } ], - "id": 3289, + "id": 1989, "name": "isUnderLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3401, + "referencedDeclaration": 2101, "src": "2352:12:20", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) returns (bool)" } }, - "id": 3292, + "id": 1992, "isConstant": false, "isLValue": false, "isPure": false, @@ -1619,7 +1619,7 @@ { "argumentTypes": null, "hexValue": "4461696c79206c696d697420686173206265656e2072656163686564", - "id": 3293, + "id": 1993, "isConstant": false, "isLValue": false, "isPure": true, @@ -1646,21 +1646,21 @@ "typeString": "literal_string \"Daily limit has been reached\"" } ], - "id": 3288, + "id": 1988, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "2344:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3294, + "id": 1994, "isConstant": false, "isLValue": false, "isPure": false, @@ -1674,14 +1674,14 @@ "typeString": "tuple()" } }, - "id": 3295, + "id": 1995, "nodeType": "ExpressionStatement", "src": "2344:68:20" }, { "expression": { "argumentTypes": null, - "id": 3301, + "id": 2001, "isConstant": false, "isLValue": false, "isPure": false, @@ -1692,25 +1692,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3296, + "id": 1996, "name": "dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3194, + "referencedDeclaration": 1894, "src": "2422:11:20", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$3201_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1901_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" } }, - "id": 3298, + "id": 1998, "indexExpression": { "argumentTypes": null, - "id": 3297, + "id": 1997, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3256, + "referencedDeclaration": 1956, "src": "2434:5:20", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1724,18 +1724,18 @@ "nodeType": "IndexAccess", "src": "2422:18:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$3201_storage", + "typeIdentifier": "t_struct$_DailyLimit_$1901_storage", "typeString": "struct DailyLimitModule.DailyLimit storage ref" } }, - "id": 3299, + "id": 1999, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 3198, + "referencedDeclaration": 1898, "src": "2422:29:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1746,11 +1746,11 @@ "operator": "+=", "rightHandSide": { "argumentTypes": null, - "id": 3300, + "id": 2000, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3260, + "referencedDeclaration": 1960, "src": "2455:6:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1763,7 +1763,7 @@ "typeString": "uint256" } }, - "id": 3302, + "id": 2002, "nodeType": "ExpressionStatement", "src": "2422:39:20" }, @@ -1774,18 +1774,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3305, + "id": 2005, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3303, + "id": 2003, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3256, + "referencedDeclaration": 1956, "src": "2475:5:20", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1797,7 +1797,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3304, + "id": 2004, "isConstant": false, "isLValue": false, "isPure": true, @@ -1819,21 +1819,21 @@ } }, "falseBody": { - "id": 3342, + "id": 2042, "nodeType": "Block", "src": "2633:238:20", "statements": [ { "assignments": [ - 3321 + 2021 ], "declarations": [ { "constant": false, - "id": 3321, + "id": 2021, "name": "data", "nodeType": "VariableDeclaration", - "scope": 3345, + "scope": 2045, "src": "2647:17:20", "stateVariable": false, "storageLocation": "memory", @@ -1842,7 +1842,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3320, + "id": 2020, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "2647:5:20", @@ -1855,14 +1855,14 @@ "visibility": "internal" } ], - "id": 3328, + "id": 2028, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "7472616e7366657228616464726573732c75696e7432353629", - "id": 3324, + "id": 2024, "isConstant": false, "isLValue": false, "isPure": true, @@ -1879,11 +1879,11 @@ }, { "argumentTypes": null, - "id": 3325, + "id": 2025, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3258, + "referencedDeclaration": 1958, "src": "2720:2:20", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1892,11 +1892,11 @@ }, { "argumentTypes": null, - "id": 3326, + "id": 2026, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3260, + "referencedDeclaration": 1960, "src": "2724:6:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1921,18 +1921,18 @@ ], "expression": { "argumentTypes": null, - "id": 3322, + "id": 2022, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4023, + "referencedDeclaration": 3815, "src": "2667:3:20", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 3323, + "id": 2023, "isConstant": false, "isLValue": false, "isPure": true, @@ -1946,7 +1946,7 @@ "typeString": "function (string memory) pure returns (bytes memory)" } }, - "id": 3327, + "id": 2027, "isConstant": false, "isLValue": false, "isPure": false, @@ -1972,11 +1972,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3332, + "id": 2032, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3256, + "referencedDeclaration": 1956, "src": "2787:5:20", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1986,7 +1986,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3333, + "id": 2033, "isConstant": false, "isLValue": false, "isPure": true, @@ -2003,11 +2003,11 @@ }, { "argumentTypes": null, - "id": 3334, + "id": 2034, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3321, + "referencedDeclaration": 2021, "src": "2797:4:20", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -2020,7 +2020,7 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3335, + "id": 2035, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -2031,7 +2031,7 @@ "typeString": "type(contract Enum)" } }, - "id": 3336, + "id": 2036, "isConstant": false, "isLValue": false, "isPure": false, @@ -2045,7 +2045,7 @@ "typeString": "type(enum Enum.Operation)" } }, - "id": 3337, + "id": 2037, "isConstant": false, "isLValue": false, "isPure": true, @@ -2081,32 +2081,32 @@ ], "expression": { "argumentTypes": null, - "id": 3330, + "id": 2030, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1826, + "referencedDeclaration": 878, "src": "2753:7:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } }, - "id": 3331, + "id": 2031, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "execTransactionFromModule", "nodeType": "MemberAccess", - "referencedDeclaration": 2059, + "referencedDeclaration": 1106, "src": "2753:33:20", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" } }, - "id": 3338, + "id": 2038, "isConstant": false, "isLValue": false, "isPure": false, @@ -2123,7 +2123,7 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f74206578656375746520746f6b656e207472616e73666572", - "id": 3339, + "id": 2039, "isConstant": false, "isLValue": false, "isPure": true, @@ -2150,21 +2150,21 @@ "typeString": "literal_string \"Could not execute token transfer\"" } ], - "id": 3329, + "id": 2029, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "2745:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3340, + "id": 2040, "isConstant": false, "isLValue": false, "isPure": false, @@ -2178,17 +2178,17 @@ "typeString": "tuple()" } }, - "id": 3341, + "id": 2041, "nodeType": "ExpressionStatement", "src": "2745:115:20" } ] }, - "id": 3343, + "id": 2043, "nodeType": "IfStatement", "src": "2471:400:20", "trueBody": { - "id": 3319, + "id": 2019, "nodeType": "Block", "src": "2487:140:20", "statements": [ @@ -2201,11 +2201,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3309, + "id": 2009, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3258, + "referencedDeclaration": 1958, "src": "2543:2:20", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2214,11 +2214,11 @@ }, { "argumentTypes": null, - "id": 3310, + "id": 2010, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3260, + "referencedDeclaration": 1960, "src": "2547:6:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2228,7 +2228,7 @@ { "argumentTypes": null, "hexValue": "", - "id": 3311, + "id": 2011, "isConstant": false, "isLValue": false, "isPure": true, @@ -2249,7 +2249,7 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3312, + "id": 2012, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -2260,7 +2260,7 @@ "typeString": "type(contract Enum)" } }, - "id": 3313, + "id": 2013, "isConstant": false, "isLValue": false, "isPure": false, @@ -2274,7 +2274,7 @@ "typeString": "type(enum Enum.Operation)" } }, - "id": 3314, + "id": 2014, "isConstant": false, "isLValue": false, "isPure": true, @@ -2310,32 +2310,32 @@ ], "expression": { "argumentTypes": null, - "id": 3307, + "id": 2007, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1826, + "referencedDeclaration": 878, "src": "2509:7:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } }, - "id": 3308, + "id": 2008, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "execTransactionFromModule", "nodeType": "MemberAccess", - "referencedDeclaration": 2059, + "referencedDeclaration": 1106, "src": "2509:33:20", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" } }, - "id": 3315, + "id": 2015, "isConstant": false, "isLValue": false, "isPure": false, @@ -2352,7 +2352,7 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f742065786563757465206574686572207472616e73666572", - "id": 3316, + "id": 2016, "isConstant": false, "isLValue": false, "isPure": true, @@ -2379,21 +2379,21 @@ "typeString": "literal_string \"Could not execute ether transfer\"" } ], - "id": 3306, + "id": 2006, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "2501:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3317, + "id": 2017, "isConstant": false, "isLValue": false, "isPure": false, @@ -2407,7 +2407,7 @@ "typeString": "tuple()" } }, - "id": 3318, + "id": 2018, "nodeType": "ExpressionStatement", "src": "2501:115:20" } @@ -2417,7 +2417,7 @@ ] }, "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": 3345, + "id": 2045, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2425,15 +2425,15 @@ "name": "executeDailyLimit", "nodeType": "FunctionDefinition", "parameters": { - "id": 3261, + "id": 1961, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3256, + "id": 1956, "name": "token", "nodeType": "VariableDeclaration", - "scope": 3345, + "scope": 2045, "src": "1917:13:20", "stateVariable": false, "storageLocation": "default", @@ -2442,7 +2442,7 @@ "typeString": "address" }, "typeName": { - "id": 3255, + "id": 1955, "name": "address", "nodeType": "ElementaryTypeName", "src": "1917:7:20", @@ -2456,10 +2456,10 @@ }, { "constant": false, - "id": 3258, + "id": 1958, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3345, + "scope": 2045, "src": "1932:10:20", "stateVariable": false, "storageLocation": "default", @@ -2468,7 +2468,7 @@ "typeString": "address" }, "typeName": { - "id": 3257, + "id": 1957, "name": "address", "nodeType": "ElementaryTypeName", "src": "1932:7:20", @@ -2482,10 +2482,10 @@ }, { "constant": false, - "id": 3260, + "id": 1960, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 3345, + "scope": 2045, "src": "1944:14:20", "stateVariable": false, "storageLocation": "default", @@ -2494,7 +2494,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3259, + "id": 1959, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1944:7:20", @@ -2511,12 +2511,12 @@ }, "payable": false, "returnParameters": { - "id": 3262, + "id": 1962, "nodeType": "ParameterList", "parameters": [], "src": "1979:0:20" }, - "scope": 3415, + "scope": 2115, "src": "1890:987:20", "stateMutability": "nonpayable", "superFunction": null, @@ -2524,37 +2524,37 @@ }, { "body": { - "id": 3400, + "id": 2100, "nodeType": "Block", "src": "2980:389:20", "statements": [ { "assignments": [ - 3355 + 2055 ], "declarations": [ { "constant": false, - "id": 3355, + "id": 2055, "name": "dailyLimit", "nodeType": "VariableDeclaration", - "scope": 3401, + "scope": 2101, "src": "2990:29:20", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$3201_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1901_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit" }, "typeName": { "contractScope": null, - "id": 3354, + "id": 2054, "name": "DailyLimit", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3201, + "referencedDeclaration": 1901, "src": "2990:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$3201_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1901_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit" } }, @@ -2562,30 +2562,30 @@ "visibility": "internal" } ], - "id": 3359, + "id": 2059, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3356, + "id": 2056, "name": "dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3194, + "referencedDeclaration": 1894, "src": "3022:11:20", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$3201_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1901_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" } }, - "id": 3358, + "id": 2058, "indexExpression": { "argumentTypes": null, - "id": 3357, + "id": 2057, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3347, + "referencedDeclaration": 2047, "src": "3034:5:20", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2599,7 +2599,7 @@ "nodeType": "IndexAccess", "src": "3022:18:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$3201_storage", + "typeIdentifier": "t_struct$_DailyLimit_$1901_storage", "typeString": "struct DailyLimitModule.DailyLimit storage ref" } }, @@ -2613,7 +2613,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3364, + "id": 2064, "isConstant": false, "isLValue": false, "isPure": false, @@ -2623,18 +2623,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 3360, + "id": 2060, "name": "today", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3414, + "referencedDeclaration": 2114, "src": "3054:5:20", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 3361, + "id": 2061, "isConstant": false, "isLValue": false, "isPure": false, @@ -2654,25 +2654,25 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3362, + "id": 2062, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3355, + "referencedDeclaration": 2055, "src": "3064:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$3201_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1901_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 3363, + "id": 2063, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "lastDay", "nodeType": "MemberAccess", - "referencedDeclaration": 3200, + "referencedDeclaration": 1900, "src": "3064:18:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2686,18 +2686,18 @@ } }, "falseBody": null, - "id": 3379, + "id": 2079, "nodeType": "IfStatement", "src": "3050:126:20", "trueBody": { - "id": 3378, + "id": 2078, "nodeType": "Block", "src": "3084:92:20", "statements": [ { "expression": { "argumentTypes": null, - "id": 3370, + "id": 2070, "isConstant": false, "isLValue": false, "isPure": false, @@ -2706,25 +2706,25 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3365, + "id": 2065, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3355, + "referencedDeclaration": 2055, "src": "3098:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$3201_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1901_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 3367, + "id": 2067, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "lastDay", "nodeType": "MemberAccess", - "referencedDeclaration": 3200, + "referencedDeclaration": 1900, "src": "3098:18:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2738,18 +2738,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 3368, + "id": 2068, "name": "today", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3414, + "referencedDeclaration": 2114, "src": "3119:5:20", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 3369, + "id": 2069, "isConstant": false, "isLValue": false, "isPure": false, @@ -2769,14 +2769,14 @@ "typeString": "uint256" } }, - "id": 3371, + "id": 2071, "nodeType": "ExpressionStatement", "src": "3098:28:20" }, { "expression": { "argumentTypes": null, - "id": 3376, + "id": 2076, "isConstant": false, "isLValue": false, "isPure": false, @@ -2785,25 +2785,25 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3372, + "id": 2072, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3355, + "referencedDeclaration": 2055, "src": "3140:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$3201_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1901_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 3374, + "id": 2074, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 3198, + "referencedDeclaration": 1898, "src": "3140:21:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2815,7 +2815,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 3375, + "id": 2075, "isConstant": false, "isLValue": false, "isPure": true, @@ -2836,7 +2836,7 @@ "typeString": "uint256" } }, - "id": 3377, + "id": 2077, "nodeType": "ExpressionStatement", "src": "3140:25:20" } @@ -2850,7 +2850,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 3394, + "id": 2094, "isConstant": false, "isLValue": false, "isPure": false, @@ -2861,7 +2861,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3386, + "id": 2086, "isConstant": false, "isLValue": false, "isPure": false, @@ -2872,7 +2872,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3383, + "id": 2083, "isConstant": false, "isLValue": false, "isPure": false, @@ -2881,25 +2881,25 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3380, + "id": 2080, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3355, + "referencedDeclaration": 2055, "src": "3189:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$3201_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1901_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 3381, + "id": 2081, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 3198, + "referencedDeclaration": 1898, "src": "3189:21:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2910,11 +2910,11 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 3382, + "id": 2082, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3349, + "referencedDeclaration": 2049, "src": "3213:6:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2933,25 +2933,25 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3384, + "id": 2084, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3355, + "referencedDeclaration": 2055, "src": "3223:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$3201_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1901_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 3385, + "id": 2085, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "dailyLimit", "nodeType": "MemberAccess", - "referencedDeclaration": 3196, + "referencedDeclaration": 1896, "src": "3223:21:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2972,7 +2972,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3393, + "id": 2093, "isConstant": false, "isLValue": false, "isPure": false, @@ -2983,7 +2983,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3390, + "id": 2090, "isConstant": false, "isLValue": false, "isPure": false, @@ -2992,25 +2992,25 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3387, + "id": 2087, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3355, + "referencedDeclaration": 2055, "src": "3261:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$3201_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1901_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 3388, + "id": 2088, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 3198, + "referencedDeclaration": 1898, "src": "3261:21:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3021,11 +3021,11 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 3389, + "id": 2089, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3349, + "referencedDeclaration": 2049, "src": "3285:6:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3044,25 +3044,25 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3391, + "id": 2091, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3355, + "referencedDeclaration": 2055, "src": "3294:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$3201_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1901_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 3392, + "id": 2092, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 3198, + "referencedDeclaration": 1898, "src": "3294:21:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3082,14 +3082,14 @@ } }, "falseBody": null, - "id": 3397, + "id": 2097, "nodeType": "IfStatement", "src": "3185:155:20", "trueBody": { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3395, + "id": 2095, "isConstant": false, "isLValue": false, "isPure": true, @@ -3104,8 +3104,8 @@ }, "value": "true" }, - "functionReturnParameters": 3353, - "id": 3396, + "functionReturnParameters": 2053, + "id": 2096, "nodeType": "Return", "src": "3329:11:20" } @@ -3114,7 +3114,7 @@ "expression": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 3398, + "id": 2098, "isConstant": false, "isLValue": false, "isPure": true, @@ -3129,15 +3129,15 @@ }, "value": "false" }, - "functionReturnParameters": 3353, - "id": 3399, + "functionReturnParameters": 2053, + "id": 2099, "nodeType": "Return", "src": "3350:12:20" } ] }, "documentation": null, - "id": 3401, + "id": 2101, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3145,15 +3145,15 @@ "name": "isUnderLimit", "nodeType": "FunctionDefinition", "parameters": { - "id": 3350, + "id": 2050, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3347, + "id": 2047, "name": "token", "nodeType": "VariableDeclaration", - "scope": 3401, + "scope": 2101, "src": "2905:13:20", "stateVariable": false, "storageLocation": "default", @@ -3162,7 +3162,7 @@ "typeString": "address" }, "typeName": { - "id": 3346, + "id": 2046, "name": "address", "nodeType": "ElementaryTypeName", "src": "2905:7:20", @@ -3176,10 +3176,10 @@ }, { "constant": false, - "id": 3349, + "id": 2049, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 3401, + "scope": 2101, "src": "2920:14:20", "stateVariable": false, "storageLocation": "default", @@ -3188,7 +3188,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3348, + "id": 2048, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2920:7:20", @@ -3205,15 +3205,15 @@ }, "payable": false, "returnParameters": { - "id": 3353, + "id": 2053, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3352, + "id": 2052, "name": "", "nodeType": "VariableDeclaration", - "scope": 3401, + "scope": 2101, "src": "2970:4:20", "stateVariable": false, "storageLocation": "default", @@ -3222,7 +3222,7 @@ "typeString": "bool" }, "typeName": { - "id": 3351, + "id": 2051, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2970:4:20", @@ -3237,7 +3237,7 @@ ], "src": "2969:6:20" }, - "scope": 3415, + "scope": 2115, "src": "2883:486:20", "stateMutability": "nonpayable", "superFunction": null, @@ -3245,7 +3245,7 @@ }, { "body": { - "id": 3413, + "id": 2113, "nodeType": "Block", "src": "3533:44:20", "statements": [ @@ -3256,18 +3256,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3411, + "id": 2111, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3406, + "id": 2106, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4038, + "referencedDeclaration": 3830, "src": "3550:3:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3285,18 +3285,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3409, + "id": 2109, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3407, + "id": 2107, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4038, + "referencedDeclaration": 3830, "src": "3557:3:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3308,7 +3308,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 3408, + "id": 2108, "isConstant": false, "isLValue": false, "isPure": true, @@ -3330,7 +3330,7 @@ } } ], - "id": 3410, + "id": 2110, "isConstant": false, "isInlineArray": false, "isLValue": false, @@ -3349,15 +3349,15 @@ "typeString": "uint256" } }, - "functionReturnParameters": 3405, - "id": 3412, + "functionReturnParameters": 2105, + "id": 2112, "nodeType": "Return", "src": "3543:27:20" } ] }, "documentation": "@dev Returns last midnight as Unix timestamp.\n @return Unix timestamp.", - "id": 3414, + "id": 2114, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3365,22 +3365,22 @@ "name": "today", "nodeType": "FunctionDefinition", "parameters": { - "id": 3402, + "id": 2102, "nodeType": "ParameterList", "parameters": [], "src": "3475:2:20" }, "payable": false, "returnParameters": { - "id": 3405, + "id": 2105, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3404, + "id": 2104, "name": "", "nodeType": "VariableDeclaration", - "scope": 3414, + "scope": 2114, "src": "3523:4:20", "stateVariable": false, "storageLocation": "default", @@ -3389,7 +3389,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3403, + "id": 2103, "name": "uint", "nodeType": "ElementaryTypeName", "src": "3523:4:20", @@ -3404,14 +3404,14 @@ ], "src": "3522:6:20" }, - "scope": 3415, + "scope": 2115, "src": "3461:116:20", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 3416, + "scope": 2116, "src": "296:3283:20" } ], @@ -3421,14 +3421,14 @@ "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/DailyLimitModule.sol", "exportedSymbols": { "DailyLimitModule": [ - 3415 + 2115 ] }, - "id": 3416, + "id": 2116, "nodeType": "SourceUnit", "nodes": [ { - "id": 3178, + "id": 1878, "literals": [ "solidity", "0.4", @@ -3440,10 +3440,10 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", "file": "../Module.sol", - "id": 3179, + "id": 1879, "nodeType": "ImportDirective", - "scope": 3416, - "sourceUnit": 1862, + "scope": 2116, + "sourceUnit": 914, "src": "24:23:20", "symbolAliases": [], "unitAlias": "" @@ -3451,10 +3451,10 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", "file": "../ModuleManager.sol", - "id": 3180, + "id": 1880, "nodeType": "ImportDirective", - "scope": 3416, - "sourceUnit": 2233, + "scope": 2116, + "sourceUnit": 1181, "src": "48:30:20", "symbolAliases": [], "unitAlias": "" @@ -3462,10 +3462,10 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", "file": "../OwnerManager.sol", - "id": 3181, + "id": 1881, "nodeType": "ImportDirective", - "scope": 3416, - "sourceUnit": 2889, + "scope": 2116, + "sourceUnit": 1589, "src": "79:29:20", "symbolAliases": [], "unitAlias": "" @@ -3473,9 +3473,9 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", "file": "../Enum.sol", - "id": 3182, + "id": 1882, "nodeType": "ImportDirective", - "scope": 3416, + "scope": 2116, "sourceUnit": 31, "src": "109:21:20", "symbolAliases": [], @@ -3487,45 +3487,45 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 3183, + "id": 1883, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1861, + "referencedDeclaration": 913, "src": "325:6:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" } }, - "id": 3184, + "id": 1884, "nodeType": "InheritanceSpecifier", "src": "325:6:20" } ], "contractDependencies": [ - 632, - 1861, - 3065 + 813, + 913, + 1765 ], "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": 3415, + "id": 2115, "linearizedBaseContracts": [ - 3415, - 1861, - 632, - 3065 + 2115, + 913, + 813, + 1765 ], "name": "DailyLimitModule", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 3187, + "id": 1887, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 3415, + "scope": 2115, "src": "339:50:20", "stateVariable": true, "storageLocation": "default", @@ -3534,7 +3534,7 @@ "typeString": "string" }, "typeName": { - "id": 3185, + "id": 1885, "name": "string", "nodeType": "ElementaryTypeName", "src": "339:6:20", @@ -3546,7 +3546,7 @@ "value": { "argumentTypes": null, "hexValue": "4461696c79204c696d6974204d6f64756c65", - "id": 3186, + "id": 1886, "isConstant": false, "isLValue": false, "isPure": true, @@ -3565,10 +3565,10 @@ }, { "constant": true, - "id": 3190, + "id": 1890, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 3415, + "scope": 2115, "src": "395:40:20", "stateVariable": true, "storageLocation": "default", @@ -3577,7 +3577,7 @@ "typeString": "string" }, "typeName": { - "id": 3188, + "id": 1888, "name": "string", "nodeType": "ElementaryTypeName", "src": "395:6:20", @@ -3589,7 +3589,7 @@ "value": { "argumentTypes": null, "hexValue": "302e302e31", - "id": 3189, + "id": 1889, "isConstant": false, "isLValue": false, "isPure": true, @@ -3608,21 +3608,21 @@ }, { "constant": false, - "id": 3194, + "id": 1894, "name": "dailyLimits", "nodeType": "VariableDeclaration", - "scope": 3415, + "scope": 2115, "src": "513:50:20", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$3201_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1901_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit)" }, "typeName": { - "id": 3193, + "id": 1893, "keyType": { - "id": 3191, + "id": 1891, "name": "address", "nodeType": "ElementaryTypeName", "src": "522:7:20", @@ -3634,18 +3634,18 @@ "nodeType": "Mapping", "src": "513:31:20", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$3201_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1901_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit)" }, "valueType": { "contractScope": null, - "id": 3192, + "id": 1892, "name": "DailyLimit", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3201, + "referencedDeclaration": 1901, "src": "533:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$3201_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1901_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit" } } @@ -3655,14 +3655,14 @@ }, { "canonicalName": "DailyLimitModule.DailyLimit", - "id": 3201, + "id": 1901, "members": [ { "constant": false, - "id": 3196, + "id": 1896, "name": "dailyLimit", "nodeType": "VariableDeclaration", - "scope": 3201, + "scope": 1901, "src": "598:18:20", "stateVariable": false, "storageLocation": "default", @@ -3671,7 +3671,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3195, + "id": 1895, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "598:7:20", @@ -3685,10 +3685,10 @@ }, { "constant": false, - "id": 3198, + "id": 1898, "name": "spentToday", "nodeType": "VariableDeclaration", - "scope": 3201, + "scope": 1901, "src": "626:18:20", "stateVariable": false, "storageLocation": "default", @@ -3697,7 +3697,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3197, + "id": 1897, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "626:7:20", @@ -3711,10 +3711,10 @@ }, { "constant": false, - "id": 3200, + "id": 1900, "name": "lastDay", "nodeType": "VariableDeclaration", - "scope": 3201, + "scope": 1901, "src": "654:15:20", "stateVariable": false, "storageLocation": "default", @@ -3723,7 +3723,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3199, + "id": 1899, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "654:7:20", @@ -3738,13 +3738,13 @@ ], "name": "DailyLimit", "nodeType": "StructDefinition", - "scope": 3415, + "scope": 2115, "src": "570:106:20", "visibility": "public" }, { "body": { - "id": 3236, + "id": 1936, "nodeType": "Block", "src": "994:146:20", "statements": [ @@ -3754,18 +3754,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 3210, + "id": 1910, "name": "setManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1860, + "referencedDeclaration": 912, "src": "1004:10:20", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 3211, + "id": 1911, "isConstant": false, "isLValue": false, "isPure": false, @@ -3779,7 +3779,7 @@ "typeString": "tuple()" } }, - "id": 3212, + "id": 1912, "nodeType": "ExpressionStatement", "src": "1004:12:20" }, @@ -3787,7 +3787,7 @@ "body": { "expression": { "argumentTypes": null, - "id": 3233, + "id": 1933, "isConstant": false, "isLValue": false, "isPure": false, @@ -3798,41 +3798,41 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3224, + "id": 1924, "name": "dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3194, + "referencedDeclaration": 1894, "src": "1082:11:20", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$3201_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1901_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" } }, - "id": 3228, + "id": 1928, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3225, + "id": 1925, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3204, + "referencedDeclaration": 1904, "src": "1094:6:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 3227, + "id": 1927, "indexExpression": { "argumentTypes": null, - "id": 3226, + "id": 1926, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3214, + "referencedDeclaration": 1914, "src": "1101:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3857,18 +3857,18 @@ "nodeType": "IndexAccess", "src": "1082:22:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$3201_storage", + "typeIdentifier": "t_struct$_DailyLimit_$1901_storage", "typeString": "struct DailyLimitModule.DailyLimit storage ref" } }, - "id": 3229, + "id": 1929, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "dailyLimit", "nodeType": "MemberAccess", - "referencedDeclaration": 3196, + "referencedDeclaration": 1896, "src": "1082:33:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3881,25 +3881,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3230, + "id": 1930, "name": "_dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3207, + "referencedDeclaration": 1907, "src": "1118:12:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 3232, + "id": 1932, "indexExpression": { "argumentTypes": null, - "id": 3231, + "id": 1931, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3214, + "referencedDeclaration": 1914, "src": "1131:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3923,7 +3923,7 @@ "typeString": "uint256" } }, - "id": 3234, + "id": 1934, "nodeType": "ExpressionStatement", "src": "1082:51:20" }, @@ -3933,18 +3933,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3220, + "id": 1920, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3217, + "id": 1917, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3214, + "referencedDeclaration": 1914, "src": "1046:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3957,18 +3957,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3218, + "id": 1918, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3204, + "referencedDeclaration": 1904, "src": "1050:6:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 3219, + "id": 1919, "isConstant": false, "isLValue": false, "isPure": false, @@ -3988,18 +3988,18 @@ "typeString": "bool" } }, - "id": 3235, + "id": 1935, "initializationExpression": { "assignments": [ - 3214 + 1914 ], "declarations": [ { "constant": false, - "id": 3214, + "id": 1914, "name": "i", "nodeType": "VariableDeclaration", - "scope": 3237, + "scope": 1937, "src": "1031:9:20", "stateVariable": false, "storageLocation": "default", @@ -4008,7 +4008,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3213, + "id": 1913, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1031:7:20", @@ -4021,11 +4021,11 @@ "visibility": "internal" } ], - "id": 3216, + "id": 1916, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 3215, + "id": 1915, "isConstant": false, "isLValue": false, "isPure": true, @@ -4046,7 +4046,7 @@ "loopExpression": { "expression": { "argumentTypes": null, - "id": 3222, + "id": 1922, "isConstant": false, "isLValue": false, "isPure": false, @@ -4057,11 +4057,11 @@ "src": "1065:3:20", "subExpression": { "argumentTypes": null, - "id": 3221, + "id": 1921, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3214, + "referencedDeclaration": 1914, "src": "1065:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4073,7 +4073,7 @@ "typeString": "uint256" } }, - "id": 3223, + "id": 1923, "nodeType": "ExpressionStatement", "src": "1065:3:20" }, @@ -4083,7 +4083,7 @@ ] }, "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": 3237, + "id": 1937, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -4091,15 +4091,15 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 3208, + "id": 1908, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3204, + "id": 1904, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 3237, + "scope": 1937, "src": "933:16:20", "stateVariable": false, "storageLocation": "default", @@ -4109,7 +4109,7 @@ }, "typeName": { "baseType": { - "id": 3202, + "id": 1902, "name": "address", "nodeType": "ElementaryTypeName", "src": "933:7:20", @@ -4118,7 +4118,7 @@ "typeString": "address" } }, - "id": 3203, + "id": 1903, "length": null, "nodeType": "ArrayTypeName", "src": "933:9:20", @@ -4132,10 +4132,10 @@ }, { "constant": false, - "id": 3207, + "id": 1907, "name": "_dailyLimits", "nodeType": "VariableDeclaration", - "scope": 3237, + "scope": 1937, "src": "951:22:20", "stateVariable": false, "storageLocation": "default", @@ -4145,7 +4145,7 @@ }, "typeName": { "baseType": { - "id": 3205, + "id": 1905, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "951:7:20", @@ -4154,7 +4154,7 @@ "typeString": "uint256" } }, - "id": 3206, + "id": 1906, "length": null, "nodeType": "ArrayTypeName", "src": "951:9:20", @@ -4171,12 +4171,12 @@ }, "payable": false, "returnParameters": { - "id": 3209, + "id": 1909, "nodeType": "ParameterList", "parameters": [], "src": "994:0:20" }, - "scope": 3415, + "scope": 2115, "src": "918:222:20", "stateMutability": "nonpayable", "superFunction": null, @@ -4184,14 +4184,14 @@ }, { "body": { - "id": 3253, + "id": 1953, "nodeType": "Block", "src": "1467:59:20", "statements": [ { "expression": { "argumentTypes": null, - "id": 3251, + "id": 1951, "isConstant": false, "isLValue": false, "isPure": false, @@ -4202,25 +4202,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3246, + "id": 1946, "name": "dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3194, + "referencedDeclaration": 1894, "src": "1477:11:20", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$3201_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1901_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" } }, - "id": 3248, + "id": 1948, "indexExpression": { "argumentTypes": null, - "id": 3247, + "id": 1947, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3239, + "referencedDeclaration": 1939, "src": "1489:5:20", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4234,18 +4234,18 @@ "nodeType": "IndexAccess", "src": "1477:18:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$3201_storage", + "typeIdentifier": "t_struct$_DailyLimit_$1901_storage", "typeString": "struct DailyLimitModule.DailyLimit storage ref" } }, - "id": 3249, + "id": 1949, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "dailyLimit", "nodeType": "MemberAccess", - "referencedDeclaration": 3196, + "referencedDeclaration": 1896, "src": "1477:29:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4256,11 +4256,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3250, + "id": 1950, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3241, + "referencedDeclaration": 1941, "src": "1509:10:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4273,28 +4273,28 @@ "typeString": "uint256" } }, - "id": 3252, + "id": 1952, "nodeType": "ExpressionStatement", "src": "1477:42:20" } ] }, "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": 3254, + "id": 1954, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 3244, + "id": 1944, "modifierName": { "argumentTypes": null, - "id": 3243, + "id": 1943, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1840, + "referencedDeclaration": 892, "src": "1452:10:20", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -4308,15 +4308,15 @@ "name": "changeDailyLimit", "nodeType": "FunctionDefinition", "parameters": { - "id": 3242, + "id": 1942, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3239, + "id": 1939, "name": "token", "nodeType": "VariableDeclaration", - "scope": 3254, + "scope": 1954, "src": "1394:13:20", "stateVariable": false, "storageLocation": "default", @@ -4325,7 +4325,7 @@ "typeString": "address" }, "typeName": { - "id": 3238, + "id": 1938, "name": "address", "nodeType": "ElementaryTypeName", "src": "1394:7:20", @@ -4339,10 +4339,10 @@ }, { "constant": false, - "id": 3241, + "id": 1941, "name": "dailyLimit", "nodeType": "VariableDeclaration", - "scope": 3254, + "scope": 1954, "src": "1409:18:20", "stateVariable": false, "storageLocation": "default", @@ -4351,7 +4351,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3240, + "id": 1940, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1409:7:20", @@ -4368,12 +4368,12 @@ }, "payable": false, "returnParameters": { - "id": 3245, + "id": 1945, "nodeType": "ParameterList", "parameters": [], "src": "1467:0:20" }, - "scope": 3415, + "scope": 2115, "src": "1368:158:20", "stateMutability": "nonpayable", "superFunction": null, @@ -4381,7 +4381,7 @@ }, { "body": { - "id": 3344, + "id": 2044, "nodeType": "Block", "src": "1979:898:20", "statements": [ @@ -4396,18 +4396,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3268, + "id": 1968, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4036, + "referencedDeclaration": 3828, "src": "2104:3:20", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3269, + "id": 1969, "isConstant": false, "isLValue": false, "isPure": false, @@ -4434,14 +4434,14 @@ "arguments": [ { "argumentTypes": null, - "id": 3265, + "id": 1965, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1826, + "referencedDeclaration": 878, "src": "2087:7:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } } @@ -4449,22 +4449,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } ], - "id": 3264, + "id": 1964, "name": "OwnerManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2888, + "referencedDeclaration": 1588, "src": "2074:12:20", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$2888_$", + "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1588_$", "typeString": "type(contract OwnerManager)" } }, - "id": 3266, + "id": 1966, "isConstant": false, "isLValue": false, "isPure": false, @@ -4474,25 +4474,25 @@ "nodeType": "FunctionCall", "src": "2074:21:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$2888", + "typeIdentifier": "t_contract$_OwnerManager_$1588", "typeString": "contract OwnerManager" } }, - "id": 3267, + "id": 1967, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isOwner", "nodeType": "MemberAccess", - "referencedDeclaration": 2838, + "referencedDeclaration": 1538, "src": "2074:29:20", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view external returns (bool)" } }, - "id": 3270, + "id": 1970, "isConstant": false, "isLValue": false, "isPure": false, @@ -4509,7 +4509,7 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e206f776e6572", - "id": 3271, + "id": 1971, "isConstant": false, "isLValue": false, "isPure": true, @@ -4536,21 +4536,21 @@ "typeString": "literal_string \"Method can only be called by an owner\"" } ], - "id": 3263, + "id": 1963, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "2066:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3272, + "id": 1972, "isConstant": false, "isLValue": false, "isPure": false, @@ -4564,7 +4564,7 @@ "typeString": "tuple()" } }, - "id": 3273, + "id": 1973, "nodeType": "ExpressionStatement", "src": "2066:91:20" }, @@ -4578,18 +4578,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3277, + "id": 1977, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3275, + "id": 1975, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3258, + "referencedDeclaration": 1958, "src": "2175:2:20", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4601,7 +4601,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3276, + "id": 1976, "isConstant": false, "isLValue": false, "isPure": true, @@ -4625,7 +4625,7 @@ { "argumentTypes": null, "hexValue": "496e76616c696420746f20616464726573732070726f7669646564", - "id": 3278, + "id": 1978, "isConstant": false, "isLValue": false, "isPure": true, @@ -4652,21 +4652,21 @@ "typeString": "literal_string \"Invalid to address provided\"" } ], - "id": 3274, + "id": 1974, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "2167:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3279, + "id": 1979, "isConstant": false, "isLValue": false, "isPure": false, @@ -4680,7 +4680,7 @@ "typeString": "tuple()" } }, - "id": 3280, + "id": 1980, "nodeType": "ExpressionStatement", "src": "2167:47:20" }, @@ -4694,18 +4694,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3284, + "id": 1984, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3282, + "id": 1982, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3260, + "referencedDeclaration": 1960, "src": "2232:6:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4717,7 +4717,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3283, + "id": 1983, "isConstant": false, "isLValue": false, "isPure": true, @@ -4741,7 +4741,7 @@ { "argumentTypes": null, "hexValue": "496e76616c696420616d6f756e742070726f7669646564", - "id": 3285, + "id": 1985, "isConstant": false, "isLValue": false, "isPure": true, @@ -4768,21 +4768,21 @@ "typeString": "literal_string \"Invalid amount provided\"" } ], - "id": 3281, + "id": 1981, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "2224:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3286, + "id": 1986, "isConstant": false, "isLValue": false, "isPure": false, @@ -4796,7 +4796,7 @@ "typeString": "tuple()" } }, - "id": 3287, + "id": 1987, "nodeType": "ExpressionStatement", "src": "2224:46:20" }, @@ -4809,11 +4809,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3290, + "id": 1990, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3256, + "referencedDeclaration": 1956, "src": "2365:5:20", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4822,11 +4822,11 @@ }, { "argumentTypes": null, - "id": 3291, + "id": 1991, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3260, + "referencedDeclaration": 1960, "src": "2372:6:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4845,18 +4845,18 @@ "typeString": "uint256" } ], - "id": 3289, + "id": 1989, "name": "isUnderLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3401, + "referencedDeclaration": 2101, "src": "2352:12:20", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) returns (bool)" } }, - "id": 3292, + "id": 1992, "isConstant": false, "isLValue": false, "isPure": false, @@ -4873,7 +4873,7 @@ { "argumentTypes": null, "hexValue": "4461696c79206c696d697420686173206265656e2072656163686564", - "id": 3293, + "id": 1993, "isConstant": false, "isLValue": false, "isPure": true, @@ -4900,21 +4900,21 @@ "typeString": "literal_string \"Daily limit has been reached\"" } ], - "id": 3288, + "id": 1988, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "2344:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3294, + "id": 1994, "isConstant": false, "isLValue": false, "isPure": false, @@ -4928,14 +4928,14 @@ "typeString": "tuple()" } }, - "id": 3295, + "id": 1995, "nodeType": "ExpressionStatement", "src": "2344:68:20" }, { "expression": { "argumentTypes": null, - "id": 3301, + "id": 2001, "isConstant": false, "isLValue": false, "isPure": false, @@ -4946,25 +4946,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3296, + "id": 1996, "name": "dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3194, + "referencedDeclaration": 1894, "src": "2422:11:20", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$3201_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1901_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" } }, - "id": 3298, + "id": 1998, "indexExpression": { "argumentTypes": null, - "id": 3297, + "id": 1997, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3256, + "referencedDeclaration": 1956, "src": "2434:5:20", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4978,18 +4978,18 @@ "nodeType": "IndexAccess", "src": "2422:18:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$3201_storage", + "typeIdentifier": "t_struct$_DailyLimit_$1901_storage", "typeString": "struct DailyLimitModule.DailyLimit storage ref" } }, - "id": 3299, + "id": 1999, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 3198, + "referencedDeclaration": 1898, "src": "2422:29:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5000,11 +5000,11 @@ "operator": "+=", "rightHandSide": { "argumentTypes": null, - "id": 3300, + "id": 2000, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3260, + "referencedDeclaration": 1960, "src": "2455:6:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5017,7 +5017,7 @@ "typeString": "uint256" } }, - "id": 3302, + "id": 2002, "nodeType": "ExpressionStatement", "src": "2422:39:20" }, @@ -5028,18 +5028,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3305, + "id": 2005, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3303, + "id": 2003, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3256, + "referencedDeclaration": 1956, "src": "2475:5:20", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5051,7 +5051,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3304, + "id": 2004, "isConstant": false, "isLValue": false, "isPure": true, @@ -5073,21 +5073,21 @@ } }, "falseBody": { - "id": 3342, + "id": 2042, "nodeType": "Block", "src": "2633:238:20", "statements": [ { "assignments": [ - 3321 + 2021 ], "declarations": [ { "constant": false, - "id": 3321, + "id": 2021, "name": "data", "nodeType": "VariableDeclaration", - "scope": 3345, + "scope": 2045, "src": "2647:17:20", "stateVariable": false, "storageLocation": "memory", @@ -5096,7 +5096,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3320, + "id": 2020, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "2647:5:20", @@ -5109,14 +5109,14 @@ "visibility": "internal" } ], - "id": 3328, + "id": 2028, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "7472616e7366657228616464726573732c75696e7432353629", - "id": 3324, + "id": 2024, "isConstant": false, "isLValue": false, "isPure": true, @@ -5133,11 +5133,11 @@ }, { "argumentTypes": null, - "id": 3325, + "id": 2025, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3258, + "referencedDeclaration": 1958, "src": "2720:2:20", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5146,11 +5146,11 @@ }, { "argumentTypes": null, - "id": 3326, + "id": 2026, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3260, + "referencedDeclaration": 1960, "src": "2724:6:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5175,18 +5175,18 @@ ], "expression": { "argumentTypes": null, - "id": 3322, + "id": 2022, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4023, + "referencedDeclaration": 3815, "src": "2667:3:20", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 3323, + "id": 2023, "isConstant": false, "isLValue": false, "isPure": true, @@ -5200,7 +5200,7 @@ "typeString": "function (string memory) pure returns (bytes memory)" } }, - "id": 3327, + "id": 2027, "isConstant": false, "isLValue": false, "isPure": false, @@ -5226,11 +5226,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3332, + "id": 2032, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3256, + "referencedDeclaration": 1956, "src": "2787:5:20", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5240,7 +5240,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3333, + "id": 2033, "isConstant": false, "isLValue": false, "isPure": true, @@ -5257,11 +5257,11 @@ }, { "argumentTypes": null, - "id": 3334, + "id": 2034, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3321, + "referencedDeclaration": 2021, "src": "2797:4:20", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -5274,7 +5274,7 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3335, + "id": 2035, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -5285,7 +5285,7 @@ "typeString": "type(contract Enum)" } }, - "id": 3336, + "id": 2036, "isConstant": false, "isLValue": false, "isPure": false, @@ -5299,7 +5299,7 @@ "typeString": "type(enum Enum.Operation)" } }, - "id": 3337, + "id": 2037, "isConstant": false, "isLValue": false, "isPure": true, @@ -5335,32 +5335,32 @@ ], "expression": { "argumentTypes": null, - "id": 3330, + "id": 2030, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1826, + "referencedDeclaration": 878, "src": "2753:7:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } }, - "id": 3331, + "id": 2031, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "execTransactionFromModule", "nodeType": "MemberAccess", - "referencedDeclaration": 2059, + "referencedDeclaration": 1106, "src": "2753:33:20", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" } }, - "id": 3338, + "id": 2038, "isConstant": false, "isLValue": false, "isPure": false, @@ -5377,7 +5377,7 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f74206578656375746520746f6b656e207472616e73666572", - "id": 3339, + "id": 2039, "isConstant": false, "isLValue": false, "isPure": true, @@ -5404,21 +5404,21 @@ "typeString": "literal_string \"Could not execute token transfer\"" } ], - "id": 3329, + "id": 2029, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "2745:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3340, + "id": 2040, "isConstant": false, "isLValue": false, "isPure": false, @@ -5432,17 +5432,17 @@ "typeString": "tuple()" } }, - "id": 3341, + "id": 2041, "nodeType": "ExpressionStatement", "src": "2745:115:20" } ] }, - "id": 3343, + "id": 2043, "nodeType": "IfStatement", "src": "2471:400:20", "trueBody": { - "id": 3319, + "id": 2019, "nodeType": "Block", "src": "2487:140:20", "statements": [ @@ -5455,11 +5455,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3309, + "id": 2009, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3258, + "referencedDeclaration": 1958, "src": "2543:2:20", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5468,11 +5468,11 @@ }, { "argumentTypes": null, - "id": 3310, + "id": 2010, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3260, + "referencedDeclaration": 1960, "src": "2547:6:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5482,7 +5482,7 @@ { "argumentTypes": null, "hexValue": "", - "id": 3311, + "id": 2011, "isConstant": false, "isLValue": false, "isPure": true, @@ -5503,7 +5503,7 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3312, + "id": 2012, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -5514,7 +5514,7 @@ "typeString": "type(contract Enum)" } }, - "id": 3313, + "id": 2013, "isConstant": false, "isLValue": false, "isPure": false, @@ -5528,7 +5528,7 @@ "typeString": "type(enum Enum.Operation)" } }, - "id": 3314, + "id": 2014, "isConstant": false, "isLValue": false, "isPure": true, @@ -5564,32 +5564,32 @@ ], "expression": { "argumentTypes": null, - "id": 3307, + "id": 2007, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1826, + "referencedDeclaration": 878, "src": "2509:7:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } }, - "id": 3308, + "id": 2008, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "execTransactionFromModule", "nodeType": "MemberAccess", - "referencedDeclaration": 2059, + "referencedDeclaration": 1106, "src": "2509:33:20", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" } }, - "id": 3315, + "id": 2015, "isConstant": false, "isLValue": false, "isPure": false, @@ -5606,7 +5606,7 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f742065786563757465206574686572207472616e73666572", - "id": 3316, + "id": 2016, "isConstant": false, "isLValue": false, "isPure": true, @@ -5633,21 +5633,21 @@ "typeString": "literal_string \"Could not execute ether transfer\"" } ], - "id": 3306, + "id": 2006, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "2501:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3317, + "id": 2017, "isConstant": false, "isLValue": false, "isPure": false, @@ -5661,7 +5661,7 @@ "typeString": "tuple()" } }, - "id": 3318, + "id": 2018, "nodeType": "ExpressionStatement", "src": "2501:115:20" } @@ -5671,7 +5671,7 @@ ] }, "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": 3345, + "id": 2045, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -5679,15 +5679,15 @@ "name": "executeDailyLimit", "nodeType": "FunctionDefinition", "parameters": { - "id": 3261, + "id": 1961, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3256, + "id": 1956, "name": "token", "nodeType": "VariableDeclaration", - "scope": 3345, + "scope": 2045, "src": "1917:13:20", "stateVariable": false, "storageLocation": "default", @@ -5696,7 +5696,7 @@ "typeString": "address" }, "typeName": { - "id": 3255, + "id": 1955, "name": "address", "nodeType": "ElementaryTypeName", "src": "1917:7:20", @@ -5710,10 +5710,10 @@ }, { "constant": false, - "id": 3258, + "id": 1958, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3345, + "scope": 2045, "src": "1932:10:20", "stateVariable": false, "storageLocation": "default", @@ -5722,7 +5722,7 @@ "typeString": "address" }, "typeName": { - "id": 3257, + "id": 1957, "name": "address", "nodeType": "ElementaryTypeName", "src": "1932:7:20", @@ -5736,10 +5736,10 @@ }, { "constant": false, - "id": 3260, + "id": 1960, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 3345, + "scope": 2045, "src": "1944:14:20", "stateVariable": false, "storageLocation": "default", @@ -5748,7 +5748,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3259, + "id": 1959, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1944:7:20", @@ -5765,12 +5765,12 @@ }, "payable": false, "returnParameters": { - "id": 3262, + "id": 1962, "nodeType": "ParameterList", "parameters": [], "src": "1979:0:20" }, - "scope": 3415, + "scope": 2115, "src": "1890:987:20", "stateMutability": "nonpayable", "superFunction": null, @@ -5778,37 +5778,37 @@ }, { "body": { - "id": 3400, + "id": 2100, "nodeType": "Block", "src": "2980:389:20", "statements": [ { "assignments": [ - 3355 + 2055 ], "declarations": [ { "constant": false, - "id": 3355, + "id": 2055, "name": "dailyLimit", "nodeType": "VariableDeclaration", - "scope": 3401, + "scope": 2101, "src": "2990:29:20", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$3201_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1901_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit" }, "typeName": { "contractScope": null, - "id": 3354, + "id": 2054, "name": "DailyLimit", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3201, + "referencedDeclaration": 1901, "src": "2990:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$3201_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1901_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit" } }, @@ -5816,30 +5816,30 @@ "visibility": "internal" } ], - "id": 3359, + "id": 2059, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3356, + "id": 2056, "name": "dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3194, + "referencedDeclaration": 1894, "src": "3022:11:20", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$3201_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1901_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" } }, - "id": 3358, + "id": 2058, "indexExpression": { "argumentTypes": null, - "id": 3357, + "id": 2057, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3347, + "referencedDeclaration": 2047, "src": "3034:5:20", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5853,7 +5853,7 @@ "nodeType": "IndexAccess", "src": "3022:18:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$3201_storage", + "typeIdentifier": "t_struct$_DailyLimit_$1901_storage", "typeString": "struct DailyLimitModule.DailyLimit storage ref" } }, @@ -5867,7 +5867,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3364, + "id": 2064, "isConstant": false, "isLValue": false, "isPure": false, @@ -5877,18 +5877,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 3360, + "id": 2060, "name": "today", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3414, + "referencedDeclaration": 2114, "src": "3054:5:20", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 3361, + "id": 2061, "isConstant": false, "isLValue": false, "isPure": false, @@ -5908,25 +5908,25 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3362, + "id": 2062, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3355, + "referencedDeclaration": 2055, "src": "3064:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$3201_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1901_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 3363, + "id": 2063, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "lastDay", "nodeType": "MemberAccess", - "referencedDeclaration": 3200, + "referencedDeclaration": 1900, "src": "3064:18:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5940,18 +5940,18 @@ } }, "falseBody": null, - "id": 3379, + "id": 2079, "nodeType": "IfStatement", "src": "3050:126:20", "trueBody": { - "id": 3378, + "id": 2078, "nodeType": "Block", "src": "3084:92:20", "statements": [ { "expression": { "argumentTypes": null, - "id": 3370, + "id": 2070, "isConstant": false, "isLValue": false, "isPure": false, @@ -5960,25 +5960,25 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3365, + "id": 2065, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3355, + "referencedDeclaration": 2055, "src": "3098:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$3201_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1901_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 3367, + "id": 2067, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "lastDay", "nodeType": "MemberAccess", - "referencedDeclaration": 3200, + "referencedDeclaration": 1900, "src": "3098:18:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5992,18 +5992,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 3368, + "id": 2068, "name": "today", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3414, + "referencedDeclaration": 2114, "src": "3119:5:20", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 3369, + "id": 2069, "isConstant": false, "isLValue": false, "isPure": false, @@ -6023,14 +6023,14 @@ "typeString": "uint256" } }, - "id": 3371, + "id": 2071, "nodeType": "ExpressionStatement", "src": "3098:28:20" }, { "expression": { "argumentTypes": null, - "id": 3376, + "id": 2076, "isConstant": false, "isLValue": false, "isPure": false, @@ -6039,25 +6039,25 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3372, + "id": 2072, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3355, + "referencedDeclaration": 2055, "src": "3140:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$3201_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1901_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 3374, + "id": 2074, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 3198, + "referencedDeclaration": 1898, "src": "3140:21:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6069,7 +6069,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 3375, + "id": 2075, "isConstant": false, "isLValue": false, "isPure": true, @@ -6090,7 +6090,7 @@ "typeString": "uint256" } }, - "id": 3377, + "id": 2077, "nodeType": "ExpressionStatement", "src": "3140:25:20" } @@ -6104,7 +6104,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 3394, + "id": 2094, "isConstant": false, "isLValue": false, "isPure": false, @@ -6115,7 +6115,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3386, + "id": 2086, "isConstant": false, "isLValue": false, "isPure": false, @@ -6126,7 +6126,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3383, + "id": 2083, "isConstant": false, "isLValue": false, "isPure": false, @@ -6135,25 +6135,25 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3380, + "id": 2080, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3355, + "referencedDeclaration": 2055, "src": "3189:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$3201_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1901_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 3381, + "id": 2081, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 3198, + "referencedDeclaration": 1898, "src": "3189:21:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6164,11 +6164,11 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 3382, + "id": 2082, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3349, + "referencedDeclaration": 2049, "src": "3213:6:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6187,25 +6187,25 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3384, + "id": 2084, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3355, + "referencedDeclaration": 2055, "src": "3223:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$3201_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1901_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 3385, + "id": 2085, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "dailyLimit", "nodeType": "MemberAccess", - "referencedDeclaration": 3196, + "referencedDeclaration": 1896, "src": "3223:21:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6226,7 +6226,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3393, + "id": 2093, "isConstant": false, "isLValue": false, "isPure": false, @@ -6237,7 +6237,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3390, + "id": 2090, "isConstant": false, "isLValue": false, "isPure": false, @@ -6246,25 +6246,25 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3387, + "id": 2087, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3355, + "referencedDeclaration": 2055, "src": "3261:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$3201_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1901_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 3388, + "id": 2088, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 3198, + "referencedDeclaration": 1898, "src": "3261:21:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6275,11 +6275,11 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 3389, + "id": 2089, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3349, + "referencedDeclaration": 2049, "src": "3285:6:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6298,25 +6298,25 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3391, + "id": 2091, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3355, + "referencedDeclaration": 2055, "src": "3294:10:20", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$3201_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1901_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 3392, + "id": 2092, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 3198, + "referencedDeclaration": 1898, "src": "3294:21:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6336,14 +6336,14 @@ } }, "falseBody": null, - "id": 3397, + "id": 2097, "nodeType": "IfStatement", "src": "3185:155:20", "trueBody": { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3395, + "id": 2095, "isConstant": false, "isLValue": false, "isPure": true, @@ -6358,8 +6358,8 @@ }, "value": "true" }, - "functionReturnParameters": 3353, - "id": 3396, + "functionReturnParameters": 2053, + "id": 2096, "nodeType": "Return", "src": "3329:11:20" } @@ -6368,7 +6368,7 @@ "expression": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 3398, + "id": 2098, "isConstant": false, "isLValue": false, "isPure": true, @@ -6383,15 +6383,15 @@ }, "value": "false" }, - "functionReturnParameters": 3353, - "id": 3399, + "functionReturnParameters": 2053, + "id": 2099, "nodeType": "Return", "src": "3350:12:20" } ] }, "documentation": null, - "id": 3401, + "id": 2101, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -6399,15 +6399,15 @@ "name": "isUnderLimit", "nodeType": "FunctionDefinition", "parameters": { - "id": 3350, + "id": 2050, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3347, + "id": 2047, "name": "token", "nodeType": "VariableDeclaration", - "scope": 3401, + "scope": 2101, "src": "2905:13:20", "stateVariable": false, "storageLocation": "default", @@ -6416,7 +6416,7 @@ "typeString": "address" }, "typeName": { - "id": 3346, + "id": 2046, "name": "address", "nodeType": "ElementaryTypeName", "src": "2905:7:20", @@ -6430,10 +6430,10 @@ }, { "constant": false, - "id": 3349, + "id": 2049, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 3401, + "scope": 2101, "src": "2920:14:20", "stateVariable": false, "storageLocation": "default", @@ -6442,7 +6442,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3348, + "id": 2048, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2920:7:20", @@ -6459,15 +6459,15 @@ }, "payable": false, "returnParameters": { - "id": 3353, + "id": 2053, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3352, + "id": 2052, "name": "", "nodeType": "VariableDeclaration", - "scope": 3401, + "scope": 2101, "src": "2970:4:20", "stateVariable": false, "storageLocation": "default", @@ -6476,7 +6476,7 @@ "typeString": "bool" }, "typeName": { - "id": 3351, + "id": 2051, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2970:4:20", @@ -6491,7 +6491,7 @@ ], "src": "2969:6:20" }, - "scope": 3415, + "scope": 2115, "src": "2883:486:20", "stateMutability": "nonpayable", "superFunction": null, @@ -6499,7 +6499,7 @@ }, { "body": { - "id": 3413, + "id": 2113, "nodeType": "Block", "src": "3533:44:20", "statements": [ @@ -6510,18 +6510,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3411, + "id": 2111, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3406, + "id": 2106, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4038, + "referencedDeclaration": 3830, "src": "3550:3:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6539,18 +6539,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3409, + "id": 2109, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3407, + "id": 2107, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4038, + "referencedDeclaration": 3830, "src": "3557:3:20", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6562,7 +6562,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 3408, + "id": 2108, "isConstant": false, "isLValue": false, "isPure": true, @@ -6584,7 +6584,7 @@ } } ], - "id": 3410, + "id": 2110, "isConstant": false, "isInlineArray": false, "isLValue": false, @@ -6603,15 +6603,15 @@ "typeString": "uint256" } }, - "functionReturnParameters": 3405, - "id": 3412, + "functionReturnParameters": 2105, + "id": 2112, "nodeType": "Return", "src": "3543:27:20" } ] }, "documentation": "@dev Returns last midnight as Unix timestamp.\n @return Unix timestamp.", - "id": 3414, + "id": 2114, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -6619,22 +6619,22 @@ "name": "today", "nodeType": "FunctionDefinition", "parameters": { - "id": 3402, + "id": 2102, "nodeType": "ParameterList", "parameters": [], "src": "3475:2:20" }, "payable": false, "returnParameters": { - "id": 3405, + "id": 2105, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3404, + "id": 2104, "name": "", "nodeType": "VariableDeclaration", - "scope": 3414, + "scope": 2114, "src": "3523:4:20", "stateVariable": false, "storageLocation": "default", @@ -6643,7 +6643,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3403, + "id": 2103, "name": "uint", "nodeType": "ElementaryTypeName", "src": "3523:4:20", @@ -6658,14 +6658,14 @@ ], "src": "3522:6:20" }, - "scope": 3415, + "scope": 2115, "src": "3461:116:20", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 3416, + "scope": 2116, "src": "296:3283:20" } ], @@ -6679,28 +6679,16 @@ "4": { "events": {}, "links": {}, - "address": "0x7cfb7607cc60339ccd817b6354e102eba6b49ff1", - "transactionHash": "0x9479ecd87f9e5b0746693a16f7ce7f469176203015dcdb15a8ae1328c9816ebe" + "address": "0x1708116ae4531c809100befcfeb0e1d0743ebce3", + "transactionHash": "0x897eb698c0aa6bb52ff33520faf85f7db76e4a2c8cc2e309b56baffa47204b8d" }, - "1530013596495": { + "1534750848541": { "events": {}, "links": {}, - "address": "0x2c9ce286dfc3b59f113c51130417a46e9a646a6d", - "transactionHash": "0x02608c4ea7f319af8a9b630a79ed662d2215f6c1346b4695102205ee761daf5f" - }, - "1530525742205": { - "events": {}, - "links": {}, - "address": "0x3677fea71a2c8f03d54e7f5360bd9a05a020bdda", - "transactionHash": "0x9325cfc4774c2add944a1a9458f74c8815e0bb04bf77f12b5bfb1fdae443836b" - }, - "1530611935189": { - "events": {}, - "links": {}, - "address": "0x7533d313863f3342d83491b17c4a8e8fff65a192", - "transactionHash": "0x9325cfc4774c2add944a1a9458f74c8815e0bb04bf77f12b5bfb1fdae443836b" + "address": "0x7c728214be9a0049e6a86f2137ec61030d0aa964", + "transactionHash": "0x92a76a340a62bace4afeeea2b945c577aa5e9040fb0a8c0137e10f6295590231" } }, "schemaVersion": "2.0.0", - "updatedAt": "2018-07-03T09:59:18.533Z" + "updatedAt": "2018-08-20T07:50:29.696Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/DelegateConstructorProxy.json b/safe-contracts/build/contracts/DelegateConstructorProxy.json index 1c118b977a..e92e685b39 100644 --- a/safe-contracts/build/contracts/DelegateConstructorProxy.json +++ b/safe-contracts/build/contracts/DelegateConstructorProxy.json @@ -82,7 +82,7 @@ "id": 2, "nodeType": "ImportDirective", "scope": 24, - "sourceUnit": 2989, + "sourceUnit": 1689, "src": "24:21:0", "symbolAliases": [], "unitAlias": "" @@ -96,10 +96,10 @@ "id": 3, "name": "Proxy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2988, + "referencedDeclaration": 1688, "src": "392:5:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2988", + "typeIdentifier": "t_contract$_Proxy_$1688", "typeString": "contract Proxy" } }, @@ -109,7 +109,7 @@ } ], "contractDependencies": [ - 2988 + 1688 ], "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 - ", @@ -117,7 +117,7 @@ "id": 23, "linearizedBaseContracts": [ 23, - 2988 + 1688 ], "name": "DelegateConstructorProxy", "nodeType": "ContractDefinition", @@ -264,10 +264,10 @@ "name": "Proxy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2988, + "referencedDeclaration": 1688, "src": "662:5:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Proxy_$2988_$", + "typeIdentifier": "t_type$_t_contract$_Proxy_$1688_$", "typeString": "type(contract Proxy)" } }, @@ -382,7 +382,7 @@ "id": 2, "nodeType": "ImportDirective", "scope": 24, - "sourceUnit": 2989, + "sourceUnit": 1689, "src": "24:21:0", "symbolAliases": [], "unitAlias": "" @@ -396,10 +396,10 @@ "id": 3, "name": "Proxy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2988, + "referencedDeclaration": 1688, "src": "392:5:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2988", + "typeIdentifier": "t_contract$_Proxy_$1688", "typeString": "contract Proxy" } }, @@ -409,7 +409,7 @@ } ], "contractDependencies": [ - 2988 + 1688 ], "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 - ", @@ -417,7 +417,7 @@ "id": 23, "linearizedBaseContracts": [ 23, - 2988 + 1688 ], "name": "DelegateConstructorProxy", "nodeType": "ContractDefinition", @@ -564,10 +564,10 @@ "name": "Proxy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2988, + "referencedDeclaration": 1688, "src": "662:5:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Proxy_$2988_$", + "typeIdentifier": "t_type$_t_contract$_Proxy_$1688_$", "typeString": "type(contract Proxy)" } }, @@ -662,5 +662,5 @@ }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-06-29T09:01:22.054Z" + "updatedAt": "2018-08-20T07:44:41.083Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/Enum.json b/safe-contracts/build/contracts/Enum.json index 9f9a9ea358..448fa045d7 100644 --- a/safe-contracts/build/contracts/Enum.json +++ b/safe-contracts/build/contracts/Enum.json @@ -147,5 +147,5 @@ }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-06-29T09:01:22.054Z" + "updatedAt": "2018-08-20T07:44:41.083Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/EtherPaymentFallback.json b/safe-contracts/build/contracts/EtherPaymentFallback.json new file mode 100644 index 0000000000..885179c23a --- /dev/null +++ b/safe-contracts/build/contracts/EtherPaymentFallback.json @@ -0,0 +1,171 @@ +{ + "contractName": "EtherPaymentFallback", + "abi": [ + { + "payable": true, + "stateMutability": "payable", + "type": "fallback" + } + ], + "bytecode": "0x6080604052348015600f57600080fd5b50603280601d6000396000f30060806040520000a165627a7a723058208226d93ca47e5b6cb455362823a9ae7ae1ffe3fb79b732dd39f124670f780a070029", + "deployedBytecode": "0x60806040520000a165627a7a723058208226d93ca47e5b6cb455362823a9ae7ae1ffe3fb79b732dd39f124670f780a070029", + "sourceMap": "167:155:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;167:155:2;;;;;;;", + "deployedSourceMap": "167:155:2:-;;;", + "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/EtherPaymentFallback.sol", + "ast": { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/EtherPaymentFallback.sol", + "exportedSymbols": { + "EtherPaymentFallback": [ + 37 + ] + }, + "id": 38, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 32, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:23:2" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@title EtherPaymentFallback - A contract that has a fallback to accept ether payments\n @author Richard Meissner - ", + "fullyImplemented": true, + "id": 37, + "linearizedBaseContracts": [ + 37 + ], + "name": "EtherPaymentFallback", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 35, + "nodeType": "Block", + "src": "312:8:2", + "statements": [] + }, + "documentation": "@dev Fallback function accepts Ether transactions.", + "id": 36, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 33, + "nodeType": "ParameterList", + "parameters": [], + "src": "272:2:2" + }, + "payable": true, + "returnParameters": { + "id": 34, + "nodeType": "ParameterList", + "parameters": [], + "src": "312:0:2" + }, + "scope": 37, + "src": "263:57:2", + "stateMutability": "payable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 38, + "src": "167:155:2" + } + ], + "src": "0:323:2" + }, + "legacyAST": { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/EtherPaymentFallback.sol", + "exportedSymbols": { + "EtherPaymentFallback": [ + 37 + ] + }, + "id": 38, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 32, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:23:2" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@title EtherPaymentFallback - A contract that has a fallback to accept ether payments\n @author Richard Meissner - ", + "fullyImplemented": true, + "id": 37, + "linearizedBaseContracts": [ + 37 + ], + "name": "EtherPaymentFallback", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 35, + "nodeType": "Block", + "src": "312:8:2", + "statements": [] + }, + "documentation": "@dev Fallback function accepts Ether transactions.", + "id": 36, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 33, + "nodeType": "ParameterList", + "parameters": [], + "src": "272:2:2" + }, + "payable": true, + "returnParameters": { + "id": 34, + "nodeType": "ParameterList", + "parameters": [], + "src": "312:0:2" + }, + "scope": 37, + "src": "263:57:2", + "stateMutability": "payable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 38, + "src": "167:155:2" + } + ], + "src": "0:323:2" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-08-20T07:44:41.083Z" +} \ No newline at end of file diff --git a/safe-contracts/build/contracts/Executor.json b/safe-contracts/build/contracts/Executor.json new file mode 100644 index 0000000000..a9054a76f4 --- /dev/null +++ b/safe-contracts/build/contracts/Executor.json @@ -0,0 +1,3255 @@ +{ + "contractName": "Executor", + "abi": [ + { + "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" + }, + { + "payable": true, + "stateMutability": "payable", + "type": "fallback" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "newContract", + "type": "address" + } + ], + "name": "ContractCreation", + "type": "event" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b5061020c806100206000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063a3f4df7e1461004e578063ffa1ad74146100de575b005b34801561005a57600080fd5b5061006361016e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100a3578082015181840152602081019050610088565b50505050905090810190601f1680156100d05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156100ea57600080fd5b506100f36101a7565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610133578082015181840152602081019050610118565b50505050905090810190601f1680156101605780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6040805190810160405280600881526020017f4578656375746f7200000000000000000000000000000000000000000000000081525081565b6040805190810160405280600581526020017f302e302e31000000000000000000000000000000000000000000000000000000815250815600a165627a7a7230582092293e9246a4255b2851599879c24fc9479e6864c75aafeae58e8e9f2e031ac10029", + "deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063a3f4df7e1461004e578063ffa1ad74146100de575b005b34801561005a57600080fd5b5061006361016e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100a3578082015181840152602081019050610088565b50505050905090810190601f1680156100d05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156100ea57600080fd5b506100f36101a7565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610133578082015181840152602081019050610118565b50505050905090810190601f1680156101605780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6040805190810160405280600881526020017f4578656375746f7200000000000000000000000000000000000000000000000081525081565b6040805190810160405280600581526020017f302e302e31000000000000000000000000000000000000000000000000000000815250815600a165627a7a7230582092293e9246a4255b2851599879c24fc9479e6864c75aafeae58e8e9f2e031ac10029", + "sourceMap": "198:1633:3:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;198:1633:3;;;;;;;", + "deployedSourceMap": "198:1633:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;297:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;297:40:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;297:40:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;343;;8:9:-1;5:2;;;30:1;27;20:12;5:2;343:40:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;343:40:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;297;;;;;;;;;;;;;;;;;;;;:::o;343:::-;;;;;;;;;;;;;;;;;;;;:::o", + "source": "pragma solidity 0.4.24;\nimport \"./Enum.sol\";\nimport \"./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 string public constant NAME = \"Executor\";\n string public constant VERSION = \"0.0.1\";\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/Executor.sol", + "ast": { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Executor.sol", + "exportedSymbols": { + "Executor": [ + 153 + ] + }, + "id": 154, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 39, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:23:3" + }, + { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", + "file": "./Enum.sol", + "id": 40, + "nodeType": "ImportDirective", + "scope": 154, + "sourceUnit": 31, + "src": "24:20:3", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/EtherPaymentFallback.sol", + "file": "./EtherPaymentFallback.sol", + "id": 41, + "nodeType": "ImportDirective", + "scope": 154, + "sourceUnit": 38, + "src": "45:36:3", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 42, + "name": "EtherPaymentFallback", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 37, + "src": "219:20:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_EtherPaymentFallback_$37", + "typeString": "contract EtherPaymentFallback" + } + }, + "id": 43, + "nodeType": "InheritanceSpecifier", + "src": "219:20:3" + } + ], + "contractDependencies": [ + 37 + ], + "contractKind": "contract", + "documentation": "@title Executor - A contract that can execute transactions\n @author Richard Meissner - ", + "fullyImplemented": true, + "id": 153, + "linearizedBaseContracts": [ + 153, + 37 + ], + "name": "Executor", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 47, + "name": "ContractCreation", + "nodeType": "EventDefinition", + "parameters": { + "id": 46, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 45, + "indexed": false, + "name": "newContract", + "nodeType": "VariableDeclaration", + "scope": 47, + "src": "270:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 44, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "270:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "269:21:3" + }, + "src": "247:44:3" + }, + { + "constant": true, + "id": 50, + "name": "NAME", + "nodeType": "VariableDeclaration", + "scope": 153, + "src": "297:40:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 48, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "297:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "4578656375746f72", + "id": 49, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "327:10:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_eb35d5f9843d4076628c4747d195abdd0312e0b8b8f5812a706f3d25ea0b1074", + "typeString": "literal_string \"Executor\"" + }, + "value": "Executor" + }, + "visibility": "public" + }, + { + "constant": true, + "id": 53, + "name": "VERSION", + "nodeType": "VariableDeclaration", + "scope": 153, + "src": "343:40:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 51, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "343:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "302e302e31", + "id": 52, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "376:7:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", + "typeString": "literal_string \"0.0.1\"" + }, + "value": "0.0.1" + }, + "visibility": "public" + }, + { + "body": { + "id": 114, + "nodeType": "Block", + "src": "539:399:3", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + }, + "id": 72, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 68, + "name": "operation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 61, + "src": "553:9:3", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 69, + "name": "Enum", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30, + "src": "566:4:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Enum_$30_$", + "typeString": "type(contract Enum)" + } + }, + "id": 70, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "Operation", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "566:14:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Operation_$29_$", + "typeString": "type(enum Enum.Operation)" + } + }, + "id": 71, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Call", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "566:19:3", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + } + }, + "src": "553:32:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + }, + "id": 86, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 82, + "name": "operation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 61, + "src": "663:9:3", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 83, + "name": "Enum", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30, + "src": "676:4:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Enum_$30_$", + "typeString": "type(contract Enum)" + } + }, + "id": 84, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "Operation", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "676:14:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Operation_$29_$", + "typeString": "type(enum Enum.Operation)" + } + }, + "id": 85, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "DelegateCall", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "676:27:3", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + } + }, + "src": "663:40:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 111, + "nodeType": "Block", + "src": "778:154:3", + "statements": [ + { + "assignments": [ + 96 + ], + "declarations": [ + { + "constant": false, + "id": 96, + "name": "newContract", + "nodeType": "VariableDeclaration", + "scope": 115, + "src": "792:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 95, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "792:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 100, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 98, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 59, + "src": "828:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 97, + "name": "executeCreate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 152, + "src": "814:13:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes memory) returns (address)" + } + }, + "id": 99, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "814:19:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "792:41:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 101, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 66, + "src": "847:7:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 104, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 102, + "name": "newContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 96, + "src": "857:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 103, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "872:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "857:16:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "847:26:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 106, + "nodeType": "ExpressionStatement", + "src": "847:26:3" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 108, + "name": "newContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 96, + "src": "909:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 107, + "name": "ContractCreation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 47, + "src": "892:16:3", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "892:29:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 110, + "nodeType": "EmitStatement", + "src": "887:34:3" + } + ] + }, + "id": 112, + "nodeType": "IfStatement", + "src": "659:273:3", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 93, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 87, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 66, + "src": "717:7:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 89, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55, + "src": "747:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 90, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 59, + "src": "751:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 91, + "name": "txGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 63, + "src": "757: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": 88, + "name": "executeDelegateCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 143, + "src": "727: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": 92, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "727:36:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "717:46:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 94, + "nodeType": "ExpressionStatement", + "src": "717:46:3" + } + }, + "id": 113, + "nodeType": "IfStatement", + "src": "549:383:3", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 80, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 73, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 66, + "src": "599:7:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 75, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55, + "src": "621:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 76, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 57, + "src": "625:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 77, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 59, + "src": "632:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 78, + "name": "txGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 63, + "src": "638: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": 74, + "name": "executeCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 130, + "src": "609: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": 79, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "609:35:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "599:45:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 81, + "nodeType": "ExpressionStatement", + "src": "599:45:3" + } + } + ] + }, + "documentation": null, + "id": 115, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "execute", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 64, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 55, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 115, + "src": "407:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 54, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "407:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 57, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 115, + "src": "419:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 56, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "419:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 59, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 115, + "src": "434:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 58, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "434:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 61, + "name": "operation", + "nodeType": "VariableDeclaration", + "scope": 115, + "src": "446:24:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + }, + "typeName": { + "contractScope": null, + "id": 60, + "name": "Enum.Operation", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 29, + "src": "446:14:3", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 63, + "name": "txGas", + "nodeType": "VariableDeclaration", + "scope": 115, + "src": "472:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 62, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "472:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "406:80:3" + }, + "payable": false, + "returnParameters": { + "id": 67, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 66, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 115, + "src": "521:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 65, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "521:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "520:14:3" + }, + "scope": 153, + "src": "390:548:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 129, + "nodeType": "Block", + "src": "1071:182:3", + "statements": [ + { + "externalReferences": [ + { + "txGas": { + "declaration": 123, + "isOffset": false, + "isSlot": false, + "src": "1184:5:3", + "valueSize": 1 + } + }, + { + "to": { + "declaration": 117, + "isOffset": false, + "isSlot": false, + "src": "1191:2:3", + "valueSize": 1 + } + }, + { + "value": { + "declaration": 119, + "isOffset": false, + "isSlot": false, + "src": "1195:5:3", + "valueSize": 1 + } + }, + { + "data": { + "declaration": 121, + "isOffset": false, + "isSlot": false, + "src": "1225:4:3", + "valueSize": 1 + } + }, + { + "data": { + "declaration": 121, + "isOffset": false, + "isSlot": false, + "src": "1206:4:3", + "valueSize": 1 + } + }, + { + "success": { + "declaration": 126, + "isOffset": false, + "isSlot": false, + "src": "1168:7:3", + "valueSize": 1 + } + } + ], + "id": 128, + "nodeType": "InlineAssembly", + "operations": "{\n success := call(txGas, to, value, add(data, 0x20), mload(data), 0, 0)\n}", + "src": "1145:108:3" + } + ] + }, + "documentation": null, + "id": 130, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "executeCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 124, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 117, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 130, + "src": "965:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 116, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "965:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 119, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 130, + "src": "977:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 118, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "977:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 121, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 130, + "src": "992:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 120, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "992:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 123, + "name": "txGas", + "nodeType": "VariableDeclaration", + "scope": 130, + "src": "1004:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 122, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1004:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "964:54:3" + }, + "payable": false, + "returnParameters": { + "id": 127, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 126, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 130, + "src": "1053:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 125, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1053:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1052:14:3" + }, + "scope": 153, + "src": "944:309:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 142, + "nodeType": "Block", + "src": "1379:183:3", + "statements": [ + { + "externalReferences": [ + { + "data": { + "declaration": 134, + "isOffset": false, + "isSlot": false, + "src": "1534:4:3", + "valueSize": 1 + } + }, + { + "txGas": { + "declaration": 136, + "isOffset": false, + "isSlot": false, + "src": "1500:5:3", + "valueSize": 1 + } + }, + { + "to": { + "declaration": 132, + "isOffset": false, + "isSlot": false, + "src": "1507:2:3", + "valueSize": 1 + } + }, + { + "data": { + "declaration": 134, + "isOffset": false, + "isSlot": false, + "src": "1515:4:3", + "valueSize": 1 + } + }, + { + "success": { + "declaration": 139, + "isOffset": false, + "isSlot": false, + "src": "1476:7:3", + "valueSize": 1 + } + } + ], + "id": 141, + "nodeType": "InlineAssembly", + "operations": "{\n success := delegatecall(txGas, to, add(data, 0x20), mload(data), 0, 0)\n}", + "src": "1453:109:3" + } + ] + }, + "documentation": null, + "id": 143, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "executeDelegateCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 137, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 132, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 143, + "src": "1288:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 131, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1288:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 134, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 143, + "src": "1300:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 133, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1300:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 136, + "name": "txGas", + "nodeType": "VariableDeclaration", + "scope": 143, + "src": "1312:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 135, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1312:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1287:39:3" + }, + "payable": false, + "returnParameters": { + "id": 140, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 139, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 143, + "src": "1361:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 138, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1361:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1360:14:3" + }, + "scope": 153, + "src": "1259:303:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 151, + "nodeType": "Block", + "src": "1662:167:3", + "statements": [ + { + "externalReferences": [ + { + "data": { + "declaration": 145, + "isOffset": false, + "isSlot": false, + "src": "1788:4:3", + "valueSize": 1 + } + }, + { + "data": { + "declaration": 145, + "isOffset": false, + "isSlot": false, + "src": "1807:4:3", + "valueSize": 1 + } + }, + { + "newContract": { + "declaration": 148, + "isOffset": false, + "isSlot": false, + "src": "1759:11:3", + "valueSize": 1 + } + } + ], + "id": 150, + "nodeType": "InlineAssembly", + "operations": "{\n newContract := create(0, add(data, 0x20), mload(data))\n}", + "src": "1736:93:3" + } + ] + }, + "documentation": null, + "id": 152, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "executeCreate", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 146, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 145, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 152, + "src": "1591:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 144, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1591:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1590:12:3" + }, + "payable": false, + "returnParameters": { + "id": 149, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 148, + "name": "newContract", + "nodeType": "VariableDeclaration", + "scope": 152, + "src": "1637:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 147, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1637:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1636:21:3" + }, + "scope": 153, + "src": "1568:261:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 154, + "src": "198:1633:3" + } + ], + "src": "0:1832:3" + }, + "legacyAST": { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Executor.sol", + "exportedSymbols": { + "Executor": [ + 153 + ] + }, + "id": 154, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 39, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:23:3" + }, + { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", + "file": "./Enum.sol", + "id": 40, + "nodeType": "ImportDirective", + "scope": 154, + "sourceUnit": 31, + "src": "24:20:3", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/EtherPaymentFallback.sol", + "file": "./EtherPaymentFallback.sol", + "id": 41, + "nodeType": "ImportDirective", + "scope": 154, + "sourceUnit": 38, + "src": "45:36:3", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 42, + "name": "EtherPaymentFallback", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 37, + "src": "219:20:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_EtherPaymentFallback_$37", + "typeString": "contract EtherPaymentFallback" + } + }, + "id": 43, + "nodeType": "InheritanceSpecifier", + "src": "219:20:3" + } + ], + "contractDependencies": [ + 37 + ], + "contractKind": "contract", + "documentation": "@title Executor - A contract that can execute transactions\n @author Richard Meissner - ", + "fullyImplemented": true, + "id": 153, + "linearizedBaseContracts": [ + 153, + 37 + ], + "name": "Executor", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 47, + "name": "ContractCreation", + "nodeType": "EventDefinition", + "parameters": { + "id": 46, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 45, + "indexed": false, + "name": "newContract", + "nodeType": "VariableDeclaration", + "scope": 47, + "src": "270:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 44, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "270:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "269:21:3" + }, + "src": "247:44:3" + }, + { + "constant": true, + "id": 50, + "name": "NAME", + "nodeType": "VariableDeclaration", + "scope": 153, + "src": "297:40:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 48, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "297:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "4578656375746f72", + "id": 49, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "327:10:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_eb35d5f9843d4076628c4747d195abdd0312e0b8b8f5812a706f3d25ea0b1074", + "typeString": "literal_string \"Executor\"" + }, + "value": "Executor" + }, + "visibility": "public" + }, + { + "constant": true, + "id": 53, + "name": "VERSION", + "nodeType": "VariableDeclaration", + "scope": 153, + "src": "343:40:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 51, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "343:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "302e302e31", + "id": 52, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "376:7:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", + "typeString": "literal_string \"0.0.1\"" + }, + "value": "0.0.1" + }, + "visibility": "public" + }, + { + "body": { + "id": 114, + "nodeType": "Block", + "src": "539:399:3", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + }, + "id": 72, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 68, + "name": "operation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 61, + "src": "553:9:3", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 69, + "name": "Enum", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30, + "src": "566:4:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Enum_$30_$", + "typeString": "type(contract Enum)" + } + }, + "id": 70, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "Operation", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "566:14:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Operation_$29_$", + "typeString": "type(enum Enum.Operation)" + } + }, + "id": 71, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Call", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "566:19:3", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + } + }, + "src": "553:32:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + }, + "id": 86, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 82, + "name": "operation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 61, + "src": "663:9:3", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 83, + "name": "Enum", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30, + "src": "676:4:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Enum_$30_$", + "typeString": "type(contract Enum)" + } + }, + "id": 84, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "Operation", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "676:14:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Operation_$29_$", + "typeString": "type(enum Enum.Operation)" + } + }, + "id": 85, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "DelegateCall", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "676:27:3", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + } + }, + "src": "663:40:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 111, + "nodeType": "Block", + "src": "778:154:3", + "statements": [ + { + "assignments": [ + 96 + ], + "declarations": [ + { + "constant": false, + "id": 96, + "name": "newContract", + "nodeType": "VariableDeclaration", + "scope": 115, + "src": "792:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 95, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "792:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 100, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 98, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 59, + "src": "828:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 97, + "name": "executeCreate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 152, + "src": "814:13:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes memory) returns (address)" + } + }, + "id": 99, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "814:19:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "792:41:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 101, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 66, + "src": "847:7:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 104, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 102, + "name": "newContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 96, + "src": "857:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 103, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "872:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "857:16:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "847:26:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 106, + "nodeType": "ExpressionStatement", + "src": "847:26:3" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 108, + "name": "newContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 96, + "src": "909:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 107, + "name": "ContractCreation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 47, + "src": "892:16:3", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "892:29:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 110, + "nodeType": "EmitStatement", + "src": "887:34:3" + } + ] + }, + "id": 112, + "nodeType": "IfStatement", + "src": "659:273:3", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 93, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 87, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 66, + "src": "717:7:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 89, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55, + "src": "747:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 90, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 59, + "src": "751:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 91, + "name": "txGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 63, + "src": "757: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": 88, + "name": "executeDelegateCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 143, + "src": "727: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": 92, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "727:36:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "717:46:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 94, + "nodeType": "ExpressionStatement", + "src": "717:46:3" + } + }, + "id": 113, + "nodeType": "IfStatement", + "src": "549:383:3", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 80, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 73, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 66, + "src": "599:7:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 75, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55, + "src": "621:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 76, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 57, + "src": "625:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 77, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 59, + "src": "632:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 78, + "name": "txGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 63, + "src": "638: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": 74, + "name": "executeCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 130, + "src": "609: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": 79, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "609:35:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "599:45:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 81, + "nodeType": "ExpressionStatement", + "src": "599:45:3" + } + } + ] + }, + "documentation": null, + "id": 115, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "execute", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 64, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 55, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 115, + "src": "407:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 54, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "407:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 57, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 115, + "src": "419:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 56, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "419:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 59, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 115, + "src": "434:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 58, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "434:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 61, + "name": "operation", + "nodeType": "VariableDeclaration", + "scope": 115, + "src": "446:24:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + }, + "typeName": { + "contractScope": null, + "id": 60, + "name": "Enum.Operation", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 29, + "src": "446:14:3", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 63, + "name": "txGas", + "nodeType": "VariableDeclaration", + "scope": 115, + "src": "472:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 62, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "472:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "406:80:3" + }, + "payable": false, + "returnParameters": { + "id": 67, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 66, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 115, + "src": "521:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 65, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "521:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "520:14:3" + }, + "scope": 153, + "src": "390:548:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 129, + "nodeType": "Block", + "src": "1071:182:3", + "statements": [ + { + "externalReferences": [ + { + "txGas": { + "declaration": 123, + "isOffset": false, + "isSlot": false, + "src": "1184:5:3", + "valueSize": 1 + } + }, + { + "to": { + "declaration": 117, + "isOffset": false, + "isSlot": false, + "src": "1191:2:3", + "valueSize": 1 + } + }, + { + "value": { + "declaration": 119, + "isOffset": false, + "isSlot": false, + "src": "1195:5:3", + "valueSize": 1 + } + }, + { + "data": { + "declaration": 121, + "isOffset": false, + "isSlot": false, + "src": "1225:4:3", + "valueSize": 1 + } + }, + { + "data": { + "declaration": 121, + "isOffset": false, + "isSlot": false, + "src": "1206:4:3", + "valueSize": 1 + } + }, + { + "success": { + "declaration": 126, + "isOffset": false, + "isSlot": false, + "src": "1168:7:3", + "valueSize": 1 + } + } + ], + "id": 128, + "nodeType": "InlineAssembly", + "operations": "{\n success := call(txGas, to, value, add(data, 0x20), mload(data), 0, 0)\n}", + "src": "1145:108:3" + } + ] + }, + "documentation": null, + "id": 130, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "executeCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 124, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 117, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 130, + "src": "965:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 116, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "965:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 119, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 130, + "src": "977:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 118, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "977:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 121, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 130, + "src": "992:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 120, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "992:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 123, + "name": "txGas", + "nodeType": "VariableDeclaration", + "scope": 130, + "src": "1004:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 122, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1004:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "964:54:3" + }, + "payable": false, + "returnParameters": { + "id": 127, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 126, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 130, + "src": "1053:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 125, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1053:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1052:14:3" + }, + "scope": 153, + "src": "944:309:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 142, + "nodeType": "Block", + "src": "1379:183:3", + "statements": [ + { + "externalReferences": [ + { + "data": { + "declaration": 134, + "isOffset": false, + "isSlot": false, + "src": "1534:4:3", + "valueSize": 1 + } + }, + { + "txGas": { + "declaration": 136, + "isOffset": false, + "isSlot": false, + "src": "1500:5:3", + "valueSize": 1 + } + }, + { + "to": { + "declaration": 132, + "isOffset": false, + "isSlot": false, + "src": "1507:2:3", + "valueSize": 1 + } + }, + { + "data": { + "declaration": 134, + "isOffset": false, + "isSlot": false, + "src": "1515:4:3", + "valueSize": 1 + } + }, + { + "success": { + "declaration": 139, + "isOffset": false, + "isSlot": false, + "src": "1476:7:3", + "valueSize": 1 + } + } + ], + "id": 141, + "nodeType": "InlineAssembly", + "operations": "{\n success := delegatecall(txGas, to, add(data, 0x20), mload(data), 0, 0)\n}", + "src": "1453:109:3" + } + ] + }, + "documentation": null, + "id": 143, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "executeDelegateCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 137, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 132, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 143, + "src": "1288:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 131, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1288:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 134, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 143, + "src": "1300:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 133, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1300:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 136, + "name": "txGas", + "nodeType": "VariableDeclaration", + "scope": 143, + "src": "1312:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 135, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1312:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1287:39:3" + }, + "payable": false, + "returnParameters": { + "id": 140, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 139, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 143, + "src": "1361:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 138, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1361:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1360:14:3" + }, + "scope": 153, + "src": "1259:303:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 151, + "nodeType": "Block", + "src": "1662:167:3", + "statements": [ + { + "externalReferences": [ + { + "data": { + "declaration": 145, + "isOffset": false, + "isSlot": false, + "src": "1788:4:3", + "valueSize": 1 + } + }, + { + "data": { + "declaration": 145, + "isOffset": false, + "isSlot": false, + "src": "1807:4:3", + "valueSize": 1 + } + }, + { + "newContract": { + "declaration": 148, + "isOffset": false, + "isSlot": false, + "src": "1759:11:3", + "valueSize": 1 + } + } + ], + "id": 150, + "nodeType": "InlineAssembly", + "operations": "{\n newContract := create(0, add(data, 0x20), mload(data))\n}", + "src": "1736:93:3" + } + ] + }, + "documentation": null, + "id": 152, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "executeCreate", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 146, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 145, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 152, + "src": "1591:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 144, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1591:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1590:12:3" + }, + "payable": false, + "returnParameters": { + "id": 149, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 148, + "name": "newContract", + "nodeType": "VariableDeclaration", + "scope": 152, + "src": "1637:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 147, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1637:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1636:21:3" + }, + "scope": 153, + "src": "1568:261:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 154, + "src": "198:1633:3" + } + ], + "src": "0:1832:3" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-08-20T07:44:41.083Z" +} \ No newline at end of file diff --git a/safe-contracts/build/contracts/GnosisSafe.json b/safe-contracts/build/contracts/GnosisSafe.json index f4286b81d3..fc42c2d085 100644 --- a/safe-contracts/build/contracts/GnosisSafe.json +++ b/safe-contracts/build/contracts/GnosisSafe.json @@ -19,6 +19,20 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "constant": true, + "inputs": [], + "name": "DOMAIN_SEPERATOR_TYPEHASH", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": true, "inputs": [ @@ -167,6 +181,20 @@ "stateMutability": "view", "type": "function" }, + { + "constant": true, + "inputs": [], + "name": "domainSeperator", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": false, "inputs": [ @@ -301,62 +329,62 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50612fd6806100206000396000f3006080604052600436106100e6576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630d582f13146100e85780630ec78d9e146101355780632f54bf6e1461020b578063468721a714610266578063610b59251461031e578063694e80c31461036157806385e332cd1461038e5780638cff6355146103e5578063a0e67e2b1461043c578063a3f4df7e146104a8578063b2494df314610538578063e009cfde146105a4578063e318b52b14610607578063e75235b81461068a578063f8dc5dd9146106b5578063ffa1ad7414610722575b005b3480156100f457600080fd5b50610133600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506107b2565b005b34801561014157600080fd5b506102096004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610bb8565b005b34801561021757600080fd5b5061024c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bd2565b604051808215151515815260200191505060405180910390f35b34801561027257600080fd5b50610304600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610c54565b604051808215151515815260200191505060405180910390f35b34801561032a57600080fd5b5061035f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d7f565b005b34801561036d57600080fd5b5061038c60048036038101908080359060200190929190505050611159565b005b34801561039a57600080fd5b506103a361136b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103f157600080fd5b506103fa611370565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561044857600080fd5b50610451611375565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610494578082015181840152602081019050610479565b505050509050019250505060405180910390f35b3480156104b457600080fd5b506104bd611510565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104fd5780820151818401526020810190506104e2565b50505050905090810190601f16801561052a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561054457600080fd5b5061054d611549565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610590578082015181840152602081019050610575565b505050509050019250505060405180910390f35b3480156105b057600080fd5b50610605600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117ec565b005b34801561061357600080fd5b50610688600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c01565b005b34801561069657600080fd5b5061069f61224e565b6040518082815260200191505060405180910390f35b3480156106c157600080fd5b50610720600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612258565b005b34801561072e57600080fd5b5061073761273d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561077757808201518184015260208101905061075c565b50505050905090810190601f1680156107a45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561087b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156108cf5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515610943576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610a30576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060026000815480929190600101919050555080600354141515610bb457610bb381611159565b5b5050565b610bc28484612776565b610bcc8282612c35565b50505050565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610d68576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b610d75858585855a612e6b565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e48576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015610e9c5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610f10576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610ffc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611222576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60025481111515156112c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018110151515611361576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060038190555050565b600181565b600181565b6060806000806002546040519080825280602002602001820160405280156113ac5781602001602082028038833980820191505090505b5092506000915060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156115075780838381518110151561145c57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050611417565b82935050505090565b6040805190810160405280600e81526020017f4d6f64756c65204d616e6167657200000000000000000000000000000000000081525081565b6060600080606060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561165b576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082806001019350506115b7565b8260405190808252806020026020018201604052801561168a5781602001602082028038833980820191505090505b50905060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156117e35781818481518110151561173957fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082806001019350506116f4565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156119095750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b151561197d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611aa4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611cca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015611d1e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611d92576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611e7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015611ed35750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515611f47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561206f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000600354905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612321576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600160025403101515156123c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156124185750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561248c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156125b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060026000815480929190600190039190505550806003541415156127385761273781611159565b5b505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000806000806003541415156127f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e657273206861766520616c7265616479206265656e207365747570000081525060200191505060405180910390fd5b84518411151515612893576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018410151515612932576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60019250600091505b8451821015612ba157848281518110151561295257fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff16141580156129b25750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612a26576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612b13576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4475706c6963617465206f776e657220616464726573732070726f766964656481525060200191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550809250818060010192505061293b565b60018060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508451600281905550836003819055505050505050565b6000806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612d48576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6f64756c6573206861766520616c7265616479206265656e20696e6974696181526020017f6c697a656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff16141515612e6757612df282825a612f68565b1515612e66576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e0081525060200191505060405180910390fd5b5b5050565b60008060006002811115612e7b57fe5b846002811115612e8757fe5b1415612ea057612e9987878786612f7f565b9150612f5e565b60016002811115612ead57fe5b846002811115612eb957fe5b1415612ed157612eca878685612f68565b9150612f5d565b612eda85612f98565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b60008060008451602086018786f490509392505050565b6000806000845160208601878987f19050949350505050565b60008151602083016000f090509190505600a165627a7a72305820185229e665ad79a5dd08f65fba0b9c14bbf98145167f3cc26543abb51bc9fb7b0029", - "deployedBytecode": "0x6080604052600436106100e6576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630d582f13146100e85780630ec78d9e146101355780632f54bf6e1461020b578063468721a714610266578063610b59251461031e578063694e80c31461036157806385e332cd1461038e5780638cff6355146103e5578063a0e67e2b1461043c578063a3f4df7e146104a8578063b2494df314610538578063e009cfde146105a4578063e318b52b14610607578063e75235b81461068a578063f8dc5dd9146106b5578063ffa1ad7414610722575b005b3480156100f457600080fd5b50610133600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506107b2565b005b34801561014157600080fd5b506102096004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610bb8565b005b34801561021757600080fd5b5061024c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bd2565b604051808215151515815260200191505060405180910390f35b34801561027257600080fd5b50610304600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610c54565b604051808215151515815260200191505060405180910390f35b34801561032a57600080fd5b5061035f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d7f565b005b34801561036d57600080fd5b5061038c60048036038101908080359060200190929190505050611159565b005b34801561039a57600080fd5b506103a361136b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103f157600080fd5b506103fa611370565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561044857600080fd5b50610451611375565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610494578082015181840152602081019050610479565b505050509050019250505060405180910390f35b3480156104b457600080fd5b506104bd611510565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104fd5780820151818401526020810190506104e2565b50505050905090810190601f16801561052a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561054457600080fd5b5061054d611549565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610590578082015181840152602081019050610575565b505050509050019250505060405180910390f35b3480156105b057600080fd5b50610605600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117ec565b005b34801561061357600080fd5b50610688600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c01565b005b34801561069657600080fd5b5061069f61224e565b6040518082815260200191505060405180910390f35b3480156106c157600080fd5b50610720600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612258565b005b34801561072e57600080fd5b5061073761273d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561077757808201518184015260208101905061075c565b50505050905090810190601f1680156107a45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561087b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156108cf5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515610943576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610a30576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060026000815480929190600101919050555080600354141515610bb457610bb381611159565b5b5050565b610bc28484612776565b610bcc8282612c35565b50505050565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610d68576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b610d75858585855a612e6b565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e48576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015610e9c5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610f10576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610ffc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611222576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60025481111515156112c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018110151515611361576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060038190555050565b600181565b600181565b6060806000806002546040519080825280602002602001820160405280156113ac5781602001602082028038833980820191505090505b5092506000915060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156115075780838381518110151561145c57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050611417565b82935050505090565b6040805190810160405280600e81526020017f4d6f64756c65204d616e6167657200000000000000000000000000000000000081525081565b6060600080606060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561165b576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082806001019350506115b7565b8260405190808252806020026020018201604052801561168a5781602001602082028038833980820191505090505b50905060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156117e35781818481518110151561173957fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082806001019350506116f4565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156119095750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b151561197d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611aa4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611cca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015611d1e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611d92576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611e7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015611ed35750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515611f47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561206f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000600354905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612321576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600160025403101515156123c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156124185750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561248c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156125b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060026000815480929190600190039190505550806003541415156127385761273781611159565b5b505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000806000806003541415156127f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e657273206861766520616c7265616479206265656e207365747570000081525060200191505060405180910390fd5b84518411151515612893576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018410151515612932576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60019250600091505b8451821015612ba157848281518110151561295257fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff16141580156129b25750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612a26576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612b13576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4475706c6963617465206f776e657220616464726573732070726f766964656481525060200191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550809250818060010192505061293b565b60018060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508451600281905550836003819055505050505050565b6000806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612d48576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6f64756c6573206861766520616c7265616479206265656e20696e6974696181526020017f6c697a656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff16141515612e6757612df282825a612f68565b1515612e66576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e0081525060200191505060405180910390fd5b5b5050565b60008060006002811115612e7b57fe5b846002811115612e8757fe5b1415612ea057612e9987878786612f7f565b9150612f5e565b60016002811115612ead57fe5b846002811115612eb957fe5b1415612ed157612eca878685612f68565b9150612f5d565b612eda85612f98565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b60008060008451602086018786f490509392505050565b6000806000845160208601878987f19050949350505050565b60008151602083016000f090509190505600a165627a7a72305820185229e665ad79a5dd08f65fba0b9c14bbf98145167f3cc26543abb51bc9fb7b0029", - "sourceMap": "322:676:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;322:676:2;;;;;;;", - "deployedSourceMap": "322:676:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2093:595:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2093:595:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;693:303:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;693:303:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5613:129:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5613:129:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2841:429:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2841:429:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1311:459;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1311:459:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;5087:399:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5087:399:11;;;;;;;;;;;;;;;;;;;;;;;;;;499:55:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;499:55:9;;;;;;;;;;;;;;;;;;;;;;;;;;;287:54:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;287:54:11;;;;;;;;;;;;;;;;;;;;;;;;;;;5824:458;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5824:458:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;5824:458:11;;;;;;;;;;;;;;;;;401:46:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;401:46:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;401:46:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4794:738;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4794:738:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;4794:738:9;;;;;;;;;;;;;;;;;2031:474;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2031:474:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4147:751:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4147:751:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5492:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5492:115:11;;;;;;;;;;;;;;;;;;;;;;;3030:783;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3030:783:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;453:40:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;453:40:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;453:40:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2093:595:11;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2265:1:11;2256:5;:10;;;;:38;;;;;337:3;2270:24;;:5;:24;;;;2256:38;2248:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2404:1;2387:6;:13;2394:5;2387:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;2379:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2463:6;:23;337:3;2463:23;;;;;;;;;;;;;;;;;;;;;;;;;2447:6;:13;2454:5;2447:13;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2522:5;2496:6;:23;337:3;2496:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2537:10;;:12;;;;;;;;;;;;;2630:10;2617:9;;:23;;2613:68;;;2654:27;2670:10;2654:15;:27::i;:::-;2613:68;2093:595;;:::o;693:303:2:-;800:32;812:7;821:10;800:11;:32::i;:::-;967:22;980:2;984:4;967:12;:22::i;:::-;693:303;;;;:::o;5613:129:11:-;5690:4;5734:1;5717:6;:13;5724:5;5717:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;;5710:25;;5613:129;;;:::o;2841:429:9:-;2973:12;3081:1;3058:7;:19;3066:10;3058:19;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;3050:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3217:46;3225:2;3229:5;3236:4;3242:9;3253;3217:7;:46::i;:::-;3207:56;;2841:429;;;;;;:::o;1311:459::-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1477:1:9;1466:6;1458:20;;;;:59;;;;;550:3;1482:35;;1490:6;1482:35;;;;1458:59;1450:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1631:1;1612:7;:15;1620:6;1612:15;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;1604:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1694:7;:25;550:3;1694:25;;;;;;;;;;;;;;;;;;;;;;;;;1676:7;:15;1684:6;1676:15;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;1757:6;1729:7;:25;550:3;1729:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;1311:459;:::o;5087:399:11:-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5271:10:11;;5257;:24;;5249:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5405:1;5391:10;:15;;5383:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5469:10;5457:9;:22;;;;5087:399;:::o;499:55:9:-;550:3;499:55;:::o;287:54:11:-;337:3;287:54;:::o;5824:458::-;5890:9;5915:22;6009:13;6036:20;5954:10;;5940: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;5940:25:11;;;;5915:50;;6025:1;6009:17;;6059:6;:23;337:3;6059:23;;;;;;;;;;;;;;;;;;;;;;;;;6036:46;;6092:162;337:3;6098:31;;:12;:31;;;;6092:162;;;6160:12;6145:5;6151;6145:12;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;6201:6;:20;6208:12;6201:20;;;;;;;;;;;;;;;;;;;;;;;;;6186:35;;6235:8;;;;;;;6092:162;;;6270:5;6263:12;;5824:458;;;;:::o;401:46:9:-;;;;;;;;;;;;;;;;;;;;:::o;4794:738::-;4861:9;4920:19;4953:21;5153:22;4942:1;4920:23;;4977:7;:25;550:3;4977:25;;;;;;;;;;;;;;;;;;;;;;;;;4953:49;;5012:132;550:3;5018:33;;:13;:33;;;;5012:132;;;5083:7;:22;5091:13;5083:22;;;;;;;;;;;;;;;;;;;;;;;;;5067:38;;5119:14;;;;;;;5012:132;;;5192:11;5178: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;5178:26:9;;;;5153:51;;5262:1;5248:15;;5289:7;:25;550:3;5289:25;;;;;;;;;;;;;;;;;;;;;;;;;5273:41;;5324:180;550:3;5330:33;;:13;:33;;;;5324:180;;;5400:13;5379:5;5385:11;5379:18;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;5443:7;:22;5451:13;5443:22;;;;;;;;;;;;;;;;;;;;;;;;;5427:38;;5479:14;;;;;;;5324:180;;;5520:5;5513:12;;4794:738;;;;:::o;2031:474::-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2245:1:9;2234:6;2226:20;;;;:59;;;;;550:3;2250:35;;2258:6;2250:35;;;;2226:59;2218:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2370:6;2339:38;;:7;:19;2347:10;2339:19;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;2331:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2454:7;:15;2462:6;2454:15;;;;;;;;;;;;;;;;;;;;;;;;;2432:7;:19;2440:10;2432:19;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2497:1;2479:7;:15;2487:6;2479:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;2031:474;;:::o;4147:751:11:-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4330:1:11;4318:8;:13;;;;:44;;;;;337:3;4335:27;;:8;:27;;;;4318:44;4310:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4475:1;4455:6;:16;4462:8;4455:16;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;4447:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4621:1;4609:8;:13;;;;:44;;;;;337:3;4626:27;;:8;:27;;;;4609:44;4601:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4727:8;4706:29;;:6;:17;4713:9;4706:17;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4698:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4807:6;:16;4814:8;4807:16;;;;;;;;;;;;;;;;;;;;;;;;;4788:6;:16;4795:8;4788:16;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;4853:8;4833:6;:17;4840:9;4833:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;4890:1;4871:6;:16;4878:8;4871:16;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;4147:751;;;:::o;5492:115::-;5561:7;5591:9;;5584:16;;5492:115;:::o;3030:783::-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3256:10:11;3251:1;3238:10;;:14;:28;;3230:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3431:1;3422:5;:10;;;;:38;;;;;337:3;3436:24;;:5;:24;;;;3422:38;3414:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3534:5;3513:26;;:6;:17;3520:9;3513:17;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;3505:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3612:6;:13;3619:5;3612:13;;;;;;;;;;;;;;;;;;;;;;;;;3592:6;:17;3599:9;3592:17;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;3651:1;3635:6;:13;3642:5;3635:13;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;3662:10;;:12;;;;;;;;;;;;;;3755:10;3742:9;;:23;;3738:68;;;3779:27;3795:10;3779:15;:27::i;:::-;3738:68;3030:783;;;:::o;453:40:9:-;;;;;;;;;;;;;;;;;;;;:::o;643:1210:11:-;1249:20;1302:9;1401:13;879:1;866:9;;:14;858:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1022:7;:14;1008:10;:28;;1000:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1160:1;1146:10;:15;;1138:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;337:3;1249:38;;1314:1;1302:13;;1297:433;1321:7;:14;1317:1;:18;1297:433;;;1417:7;1425:1;1417:10;;;;;;;;;;;;;;;;;;1401:26;;1458:1;1449:5;:10;;;;:38;;;;;337:3;1463:24;;:5;:24;;;;1449:38;1441:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1605:1;1588:6;:13;1595:5;1588:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;1580:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1680:5;1657:6;:20;1664:12;1657:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;1714:5;1699:20;;1337:3;;;;;;;1297:433;;;337:3;1739:6;:20;1746:12;1739:20;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;1800:7;:14;1787:10;:27;;;;1836:10;1824:9;:22;;;;643:1210;;;;;:::o;735:409:9:-;849:1;820:7;:25;550:3;820:25;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;812:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;550:3;902:7;:25;550:3;902:25;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;966:1;960:2;:7;;;;956:181;;;1061:40;1081:2;1085:4;1091:9;1061:19;:40::i;:::-;1053:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;956:181;735:409;;:::o;3276:548::-;3407:12;3678:19;3452;3439:32;;;;;;;;:9;:32;;;;;;;;;3435:383;;;3495:35;3507:2;3511:5;3518:4;3524:5;3495:11;:35::i;:::-;3485:45;;3435:383;;;3562:27;3549:40;;;;;;;;:9;:40;;;;;;;;;3545:273;;;3613:36;3633:2;3637:4;3643:5;3613:19;:36::i;:::-;3603:46;;3545:273;;;3700:19;3714:4;3700:13;:19::i;:::-;3678:41;;3758:1;3743:11;:16;;;;3733:26;;3778:29;3795:11;3778:29;;;;;;;;;;;;;;;;;;;;;;3545:273;3435:383;3276:548;;;;;;;;:::o;4145:303::-;4247:12;4430:1;4427;4420:4;4414:11;4407:4;4401;4397:15;4393:2;4386:5;4373:59;4362:70;;4348:94;;;;;:::o;3830:309::-;3939:12;4121:1;4118;4111:4;4105:11;4098:4;4092;4088:15;4081:5;4077:2;4070:5;4065:58;4054:69;;4040:93;;;;;;:::o;4454:261::-;4523:19;4693:4;4687:11;4680:4;4674;4670:15;4667:1;4660:39;4645:54;;4631:78;;;:::o", - "source": "pragma solidity 0.4.24;\nimport \"./Module.sol\";\nimport \"./ModuleManager.sol\";\nimport \"./OwnerManager.sol\";\n\n\n/// @title Gnosis 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 - \ncontract GnosisSafe 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 setup(address[] _owners, uint256 _threshold, address to, bytes data)\n public\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", + "bytecode": "0x608060405234801561001057600080fd5b506131eb806100206000396000f3006080604052600436106100fc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630d582f13146100fe5780630ec78d9e1461014b5780631da5187f146102215780632f54bf6e14610254578063468721a7146102af578063610b592514610367578063694e80c3146103aa57806385e332cd146103d75780638cff63551461042e578063a0e67e2b14610485578063a3f4df7e146104f1578063b2494df314610581578063cb73ac56146105ed578063e009cfde14610620578063e318b52b14610683578063e75235b814610706578063f8dc5dd914610731578063ffa1ad741461079e575b005b34801561010a57600080fd5b50610149600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061082e565b005b34801561015757600080fd5b5061021f6004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610c34565b005b34801561022d57600080fd5b50610236610dba565b60405180826000191660001916815260200191505060405180910390f35b34801561026057600080fd5b50610295600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610de1565b604051808215151515815260200191505060405180910390f35b3480156102bb57600080fd5b5061034d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610e63565b604051808215151515815260200191505060405180910390f35b34801561037357600080fd5b506103a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f8e565b005b3480156103b657600080fd5b506103d560048036038101908080359060200190929190505050611368565b005b3480156103e357600080fd5b506103ec61157a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561043a57600080fd5b5061044361157f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561049157600080fd5b5061049a611584565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156104dd5780820151818401526020810190506104c2565b505050509050019250505060405180910390f35b3480156104fd57600080fd5b5061050661171f565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561054657808201518184015260208101905061052b565b50505050905090810190601f1680156105735780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561058d57600080fd5b50610596611758565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156105d95780820151818401526020810190506105be565b505050509050019250505060405180910390f35b3480156105f957600080fd5b506106026119fb565b60405180826000191660001916815260200191505060405180910390f35b34801561062c57600080fd5b50610681600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a01565b005b34801561068f57600080fd5b50610704600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e16565b005b34801561071257600080fd5b5061071b612463565b6040518082815260200191505060405180910390f35b34801561073d57600080fd5b5061079c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061246d565b005b3480156107aa57600080fd5b506107b3612952565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107f35780820151818401526020810190506107d8565b50505050905090810190601f1680156108205780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156108f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff161415801561094b5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15156109bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610aac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060026000815480929190600101919050555080600354141515610c3057610c2f81611368565b5b5050565b600060010260045460001916141515610cb5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f446f6d61696e20536570657261746f7220616c7265616479207365742100000081525060200191505060405180910390fd5b7f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d4749600102306040516020018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001925050506040516020818303038152906040526040518082805190602001908083835b602083101515610d695780518252602082019150602081019050602083039250610d44565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060048160001916905550610daa848461298b565b610db48282612e4a565b50505050565b7f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d474960010281565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610f77576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b610f84858585855a613080565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611057576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156110ab5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b151561111f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561120b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611431576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60025481111515156114d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018110151515611570576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060038190555050565b600181565b600181565b6060806000806002546040519080825280602002602001820160405280156115bb5781602001602082028038833980820191505090505b5092506000915060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156117165780838381518110151561166b57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050611626565b82935050505090565b6040805190810160405280600e81526020017f4d6f64756c65204d616e6167657200000000000000000000000000000000000081525081565b6060600080606060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561186a576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082806001019350506117c6565b826040519080825280602002602001820160405280156118995781602001602082028038833980820191505090505b50905060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156119f25781818481518110151561194857fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050611903565b80935050505090565b60045481565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611aca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015611b1e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611b92576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611cb9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611edf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015611f335750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611fa7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612094576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156120e85750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561215c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612284576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000600354905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612536576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600160025403101515156125d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff161415801561262d5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15156126a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156127c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260008154809291906001900391905055508060035414151561294d5761294c81611368565b5b505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b600080600080600354141515612a09576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e657273206861766520616c7265616479206265656e207365747570000081525060200191505060405180910390fd5b84518411151515612aa8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018410151515612b47576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60019250600091505b8451821015612db6578482815181101515612b6757fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614158015612bc75750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612c3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612d28576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4475706c6963617465206f776e657220616464726573732070726f766964656481525060200191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508092508180600101925050612b50565b60018060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508451600281905550836003819055505050505050565b6000806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612f5d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6f64756c6573206861766520616c7265616479206265656e20696e6974696181526020017f6c697a656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff1614151561307c5761300782825a61317d565b151561307b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e0081525060200191505060405180910390fd5b5b5050565b6000806000600281111561309057fe5b84600281111561309c57fe5b14156130b5576130ae87878786613194565b9150613173565b600160028111156130c257fe5b8460028111156130ce57fe5b14156130e6576130df87868561317d565b9150613172565b6130ef856131ad565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b60008060008451602086018786f490509392505050565b6000806000845160208601878987f19050949350505050565b60008151602083016000f090509190505600a165627a7a72305820affd13be83ad3f1907ab4cfd7c1fcfd0e0e0a4618e72901b2913e0953ed472c50029", + "deployedBytecode": "0x6080604052600436106100fc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630d582f13146100fe5780630ec78d9e1461014b5780631da5187f146102215780632f54bf6e14610254578063468721a7146102af578063610b592514610367578063694e80c3146103aa57806385e332cd146103d75780638cff63551461042e578063a0e67e2b14610485578063a3f4df7e146104f1578063b2494df314610581578063cb73ac56146105ed578063e009cfde14610620578063e318b52b14610683578063e75235b814610706578063f8dc5dd914610731578063ffa1ad741461079e575b005b34801561010a57600080fd5b50610149600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061082e565b005b34801561015757600080fd5b5061021f6004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610c34565b005b34801561022d57600080fd5b50610236610dba565b60405180826000191660001916815260200191505060405180910390f35b34801561026057600080fd5b50610295600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610de1565b604051808215151515815260200191505060405180910390f35b3480156102bb57600080fd5b5061034d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610e63565b604051808215151515815260200191505060405180910390f35b34801561037357600080fd5b506103a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f8e565b005b3480156103b657600080fd5b506103d560048036038101908080359060200190929190505050611368565b005b3480156103e357600080fd5b506103ec61157a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561043a57600080fd5b5061044361157f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561049157600080fd5b5061049a611584565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156104dd5780820151818401526020810190506104c2565b505050509050019250505060405180910390f35b3480156104fd57600080fd5b5061050661171f565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561054657808201518184015260208101905061052b565b50505050905090810190601f1680156105735780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561058d57600080fd5b50610596611758565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156105d95780820151818401526020810190506105be565b505050509050019250505060405180910390f35b3480156105f957600080fd5b506106026119fb565b60405180826000191660001916815260200191505060405180910390f35b34801561062c57600080fd5b50610681600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a01565b005b34801561068f57600080fd5b50610704600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e16565b005b34801561071257600080fd5b5061071b612463565b6040518082815260200191505060405180910390f35b34801561073d57600080fd5b5061079c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061246d565b005b3480156107aa57600080fd5b506107b3612952565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107f35780820151818401526020810190506107d8565b50505050905090810190601f1680156108205780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156108f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff161415801561094b5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15156109bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610aac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060026000815480929190600101919050555080600354141515610c3057610c2f81611368565b5b5050565b600060010260045460001916141515610cb5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f446f6d61696e20536570657261746f7220616c7265616479207365742100000081525060200191505060405180910390fd5b7f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d4749600102306040516020018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001925050506040516020818303038152906040526040518082805190602001908083835b602083101515610d695780518252602082019150602081019050602083039250610d44565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060048160001916905550610daa848461298b565b610db48282612e4a565b50505050565b7f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d474960010281565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610f77576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b610f84858585855a613080565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611057576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156110ab5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b151561111f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561120b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611431576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60025481111515156114d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018110151515611570576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060038190555050565b600181565b600181565b6060806000806002546040519080825280602002602001820160405280156115bb5781602001602082028038833980820191505090505b5092506000915060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156117165780838381518110151561166b57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050611626565b82935050505090565b6040805190810160405280600e81526020017f4d6f64756c65204d616e6167657200000000000000000000000000000000000081525081565b6060600080606060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561186a576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082806001019350506117c6565b826040519080825280602002602001820160405280156118995781602001602082028038833980820191505090505b50905060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156119f25781818481518110151561194857fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050611903565b80935050505090565b60045481565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611aca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015611b1e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611b92576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611cb9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611edf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015611f335750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611fa7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612094576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156120e85750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561215c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612284576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000600354905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612536576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600160025403101515156125d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff161415801561262d5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15156126a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156127c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260008154809291906001900391905055508060035414151561294d5761294c81611368565b5b505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b600080600080600354141515612a09576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e657273206861766520616c7265616479206265656e207365747570000081525060200191505060405180910390fd5b84518411151515612aa8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018410151515612b47576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60019250600091505b8451821015612db6578482815181101515612b6757fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614158015612bc75750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612c3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612d28576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4475706c6963617465206f776e657220616464726573732070726f766964656481525060200191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508092508180600101925050612b50565b60018060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508451600281905550836003819055505050505050565b6000806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612f5d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6f64756c6573206861766520616c7265616479206265656e20696e6974696181526020017f6c697a656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff1614151561307c5761300782825a61317d565b151561307b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e0081525060200191505060405180910390fd5b5b5050565b6000806000600281111561309057fe5b84600281111561309c57fe5b14156130b5576130ae87878786613194565b9150613173565b600160028111156130c257fe5b8460028111156130ce57fe5b14156130e6576130df87868561317d565b9150613172565b6130ef856131ad565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b60008060008451602086018786f490509392505050565b6000806000845160208601878987f19050949350505050565b60008151602083016000f090509190505600a165627a7a72305820affd13be83ad3f1907ab4cfd7c1fcfd0e0e0a4618e72901b2913e0953ed472c50029", + "sourceMap": "322:1070:4:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;322:1070:4;;;;;;;", + "deployedSourceMap": "322:1070:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2093:595:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2093:595:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;933:457:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;933:457:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;458:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;458:118:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5613:129:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5613:129:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2712:429:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2712:429:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1182:459;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1182:459:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;5087:399:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5087:399:11;;;;;;;;;;;;;;;;;;;;;;;;;;488:55:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;488:55:10;;;;;;;;;;;;;;;;;;;;;;;;;;;287:54:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;287:54:11;;;;;;;;;;;;;;;;;;;;;;;;;;;5824:458;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5824:458:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;5824:458:11;;;;;;;;;;;;;;;;;390:46:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;390:46:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;390:46:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3220:738;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3220:738:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;3220:738:10;;;;;;;;;;;;;;;;;583:30:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;583:30:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1902:474:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1902:474:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4147:751:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4147:751:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5492:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5492:115:11;;;;;;;;;;;;;;;;;;;;;;;3030:783;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3030:783:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;442:40:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;442:40:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;442:40:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2093:595:11;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2265:1:11;2256:5;:10;;;;:38;;;;;337:3;2270:24;;:5;:24;;;;2256:38;2248:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2404:1;2387:6;:13;2394:5;2387:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;2379:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2463:6;:23;337:3;2463:23;;;;;;;;;;;;;;;;;;;;;;;;;2447:6;:13;2454:5;2447:13;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2522:5;2496:6;:23;337:3;2496:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2537:10;;:12;;;;;;;;;;;;;2630:10;2617:9;;:23;;2613:68;;;2654:27;2670:10;2654:15;:27::i;:::-;2613:68;2093:595;;:::o;933:457:4:-;1067:1;1048:20;;:15;;:20;;;;1040:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;510:66;1151:25;;1178:4;1140:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1140:43:4;;;1130: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;;;1130:54:4;;;;;;;;;;;;;;;;1112:15;:72;;;;;;;1194:32;1206:7;1215:10;1194:11;:32::i;:::-;1361:22;1374:2;1378:4;1361:12;:22::i;:::-;933:457;;;;:::o;458:118::-;510:66;458:118;;;:::o;5613:129:11:-;5690:4;5734:1;5717:6;:13;5724:5;5717:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;;5710:25;;5613:129;;;:::o;2712:429:10:-;2844:12;2952:1;2929:7;:19;2937:10;2929:19;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;2921:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3088:46;3096:2;3100:5;3107:4;3113:9;3124;3088:7;:46::i;:::-;3078:56;;2712:429;;;;;;:::o;1182:459::-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1348:1:10;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;;;;;;;;;;;;;;;;;;1182:459;:::o;5087:399:11:-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5271:10:11;;5257;:24;;5249:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5405:1;5391:10;:15;;5383:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5469:10;5457:9;:22;;;;5087:399;:::o;488:55:10:-;539:3;488:55;:::o;287:54:11:-;337:3;287:54;:::o;5824:458::-;5890:9;5915:22;6009:13;6036:20;5954:10;;5940: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;5940:25:11;;;;5915:50;;6025:1;6009:17;;6059:6;:23;337:3;6059:23;;;;;;;;;;;;;;;;;;;;;;;;;6036:46;;6092:162;337:3;6098:31;;:12;:31;;;;6092:162;;;6160:12;6145:5;6151;6145:12;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;6201:6;:20;6208:12;6201:20;;;;;;;;;;;;;;;;;;;;;;;;;6186:35;;6235:8;;;;;;;6092:162;;;6270:5;6263:12;;5824:458;;;;:::o;390:46:10:-;;;;;;;;;;;;;;;;;;;;:::o;3220:738::-;3287:9;3346:19;3379:21;3579:22;3368:1;3346:23;;3403:7;:25;539:3;3403:25;;;;;;;;;;;;;;;;;;;;;;;;;3379:49;;3438:132;539:3;3444:33;;:13;:33;;;;3438:132;;;3509:7;:22;3517:13;3509:22;;;;;;;;;;;;;;;;;;;;;;;;;3493:38;;3545:14;;;;;;;3438:132;;;3618:11;3604: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;3604:26:10;;;;3579:51;;3688:1;3674:15;;3715:7;:25;539:3;3715:25;;;;;;;;;;;;;;;;;;;;;;;;;3699:41;;3750:180;539:3;3756:33;;:13;:33;;;;3750:180;;;3826:13;3805:5;3811:11;3805:18;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;3869:7;:22;3877:13;3869:22;;;;;;;;;;;;;;;;;;;;;;;;;3853:38;;3905:14;;;;;;;3750:180;;;3946:5;3939:12;;3220:738;;;;:::o;583:30:4:-;;;;:::o;1902:474:10:-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2116:1:10;2105:6;2097:20;;;;:59;;;;;539:3;2121:35;;2129:6;2121:35;;;;2097:59;2089:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2241:6;2210:38;;:7;:19;2218:10;2210:19;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;2202:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2325:7;:15;2333:6;2325:15;;;;;;;;;;;;;;;;;;;;;;;;;2303:7;:19;2311:10;2303:19;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2368:1;2350:7;:15;2358:6;2350:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;1902:474;;:::o;4147:751:11:-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4330:1:11;4318:8;:13;;;;:44;;;;;337:3;4335:27;;:8;:27;;;;4318:44;4310:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4475:1;4455:6;:16;4462:8;4455:16;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;4447:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4621:1;4609:8;:13;;;;:44;;;;;337:3;4626:27;;:8;:27;;;;4609:44;4601:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4727:8;4706:29;;:6;:17;4713:9;4706:17;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4698:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4807:6;:16;4814:8;4807:16;;;;;;;;;;;;;;;;;;;;;;;;;4788:6;:16;4795:8;4788:16;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;4853:8;4833:6;:17;4840:9;4833:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;4890:1;4871:6;:16;4878:8;4871:16;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;4147:751;;;:::o;5492:115::-;5561:7;5591:9;;5584:16;;5492:115;:::o;3030:783::-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3256:10:11;3251:1;3238:10;;:14;:28;;3230:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3431:1;3422:5;:10;;;;:38;;;;;337:3;3436:24;;:5;:24;;;;3422:38;3414:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3534:5;3513:26;;:6;:17;3520:9;3513:17;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;3505:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3612:6;:13;3619:5;3612:13;;;;;;;;;;;;;;;;;;;;;;;;;3592:6;:17;3599:9;3592:17;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;3651:1;3635:6;:13;3642:5;3635:13;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;3662:10;;:12;;;;;;;;;;;;;;3755:10;3742:9;;:23;;3738:68;;;3779:27;3795:10;3779:15;:27::i;:::-;3738:68;3030:783;;;:::o;442:40:10:-;;;;;;;;;;;;;;;;;;;;:::o;643:1210:11:-;1249:20;1302:9;1401:13;879:1;866:9;;:14;858:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1022:7;:14;1008:10;:28;;1000:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1160:1;1146:10;:15;;1138:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;337:3;1249:38;;1314:1;1302:13;;1297:433;1321:7;:14;1317:1;:18;1297:433;;;1417:7;1425:1;1417:10;;;;;;;;;;;;;;;;;;1401:26;;1458:1;1449:5;:10;;;;:38;;;;;337:3;1463:24;;:5;:24;;;;1449:38;1441:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1605:1;1588:6;:13;1595:5;1588:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;1580:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1680:5;1657:6;:20;1664:12;1657:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;1714:5;1699:20;;1337:3;;;;;;;1297:433;;;337:3;1739:6;:20;1746:12;1739:20;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;1800:7;:14;1787:10;:27;;;;1836:10;1824:9;:22;;;;643:1210;;;;;:::o;606:409:10:-;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;390:548:3:-;521:12;792:19;566;553:32;;;;;;;;:9;:32;;;;;;;;;549:383;;;609:35;621:2;625:5;632:4;638:5;609:11;:35::i;:::-;599:45;;549:383;;;676:27;663:40;;;;;;;;:9;:40;;;;;;;;;659:273;;;727:36;747:2;751:4;757:5;727:19;:36::i;:::-;717:46;;659:273;;;814:19;828:4;814:13;:19::i;:::-;792:41;;872:1;857:11;:16;;;;847:26;;892:29;909:11;892:29;;;;;;;;;;;;;;;;;;;;;;659:273;549:383;390:548;;;;;;;;:::o;1259:303::-;1361:12;1544:1;1541;1534:4;1528:11;1521:4;1515;1511:15;1507:2;1500:5;1487:59;1476:70;;1462:94;;;;;:::o;944:309::-;1053:12;1235:1;1232;1225:4;1219:11;1212:4;1206;1202:15;1195:5;1191:2;1184:5;1179:58;1168:69;;1154:93;;;;;;:::o;1568:261::-;1637:19;1807:4;1801:11;1794:4;1788;1784:15;1781:1;1774:39;1759:54;;1745:78;;;:::o", + "source": "pragma solidity 0.4.24;\nimport \"./Module.sol\";\nimport \"./ModuleManager.sol\";\nimport \"./OwnerManager.sol\";\n\n\n/// @title Gnosis 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 - \ncontract GnosisSafe is ModuleManager, OwnerManager {\n\n //keccak256(\n // \"EIP712Domain(address verifyingContract)\"\n //);\n bytes32 public constant DOMAIN_SEPERATOR_TYPEHASH = 0x035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d4749;\n\n bytes32 public domainSeperator;\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(domainSeperator == 0, \"Domain Seperator already set!\");\n domainSeperator = keccak256(abi.encode(DOMAIN_SEPERATOR_TYPEHASH, this));\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/GnosisSafe.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafe.sol", "exportedSymbols": { "GnosisSafe": [ - 63 + 208 ] }, - "id": 64, + "id": 209, "nodeType": "SourceUnit", "nodes": [ { - "id": 32, + "id": 155, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:2" + "src": "0:23:4" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", "file": "./Module.sol", - "id": 33, + "id": 156, "nodeType": "ImportDirective", - "scope": 64, - "sourceUnit": 1862, - "src": "24:22:2", + "scope": 209, + "sourceUnit": 914, + "src": "24:22:4", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", "file": "./ModuleManager.sol", - "id": 34, + "id": 157, "nodeType": "ImportDirective", - "scope": 64, - "sourceUnit": 2233, - "src": "47:29:2", + "scope": 209, + "sourceUnit": 1181, + "src": "47:29:4", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", "file": "./OwnerManager.sol", - "id": 35, + "id": 158, "nodeType": "ImportDirective", - "scope": 64, - "sourceUnit": 2889, - "src": "77:28:2", + "scope": 209, + "sourceUnit": 1589, + "src": "77:28:4", "symbolAliases": [], "unitAlias": "" }, @@ -366,62 +394,135 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 36, + "id": 159, "name": "ModuleManager", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2232, - "src": "345:13:2", + "referencedDeclaration": 1180, + "src": "345:13:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } }, - "id": 37, + "id": 160, "nodeType": "InheritanceSpecifier", - "src": "345:13:2" + "src": "345:13:4" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 38, + "id": 161, "name": "OwnerManager", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2888, - "src": "360:12:2", + "referencedDeclaration": 1588, + "src": "360:12:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$2888", + "typeIdentifier": "t_contract$_OwnerManager_$1588", "typeString": "contract OwnerManager" } }, - "id": 39, + "id": 162, "nodeType": "InheritanceSpecifier", - "src": "360:12:2" + "src": "360:12:4" } ], "contractDependencies": [ - 2232, - 2888, - 3065 + 153, + 37, + 1180, + 1588, + 1765 ], "contractKind": "contract", "documentation": "@title Gnosis 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 - ", "fullyImplemented": true, - "id": 63, + "id": 208, "linearizedBaseContracts": [ - 63, - 2888, - 2232, - 3065 + 208, + 1588, + 1180, + 153, + 37, + 1765 ], "name": "GnosisSafe", "nodeType": "ContractDefinition", "nodes": [ + { + "constant": true, + "id": 165, + "name": "DOMAIN_SEPERATOR_TYPEHASH", + "nodeType": "VariableDeclaration", + "scope": 208, + "src": "458:118:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 163, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "458:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307830333561666638336438363933376433356233326530346630646463366666343639323930656566326631623639326438613831356338393430346434373439", + "id": 164, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "510:66:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1517718281442037948617199096126532355110765202990829672390711201829802035017_by_1", + "typeString": "int_const 1517...(68 digits omitted)...5017" + }, + "value": "0x035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d4749" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 167, + "name": "domainSeperator", + "nodeType": "VariableDeclaration", + "scope": 208, + "src": "583:30:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 166, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "583:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "public" + }, { "body": { - "id": 61, + "id": 206, "nodeType": "Block", - "src": "790:206:2", + "src": "1030:360:4", "statements": [ { "expression": { @@ -429,12 +530,279 @@ "arguments": [ { "argumentTypes": null, - "id": 52, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 182, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 180, + "name": "domainSeperator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "1048:15:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 181, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1067:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1048:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "446f6d61696e20536570657261746f7220616c72656164792073657421", + "id": 183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1070:31:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_76b336706355b2c543d4f566e8de773fa4e586723c61d024c00ec0bb4ad3fcae", + "typeString": "literal_string \"Domain Seperator already set!\"" + }, + "value": "Domain Seperator already set!" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_76b336706355b2c543d4f566e8de773fa4e586723c61d024c00ec0bb4ad3fcae", + "typeString": "literal_string \"Domain Seperator already set!\"" + } + ], + "id": 179, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3832, + "src": "1040:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1040:62:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 185, + "nodeType": "ExpressionStatement", + "src": "1040:62:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 186, + "name": "domainSeperator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "1112:15:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 190, + "name": "DOMAIN_SEPERATOR_TYPEHASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 165, + "src": "1151:25:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 191, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3861, + "src": "1178:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GnosisSafe_$208", + "typeString": "contract GnosisSafe" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_contract$_GnosisSafe_$208", + "typeString": "contract GnosisSafe" + } + ], + "expression": { + "argumentTypes": null, + "id": 188, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3815, + "src": "1140:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 189, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1140:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1140:43:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 187, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3822, + "src": "1130:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1130:54:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "1112:72:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 195, + "nodeType": "ExpressionStatement", + "src": "1112:72:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 197, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42, - "src": "812:7:2", + "referencedDeclaration": 170, + "src": "1206:7:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" @@ -442,12 +810,12 @@ }, { "argumentTypes": null, - "id": 53, + "id": 198, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 44, - "src": "821:10:2", + "referencedDeclaration": 172, + "src": "1215:10:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -465,18 +833,18 @@ "typeString": "uint256" } ], - "id": 51, + "id": 196, "name": "setupOwners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2597, - "src": "800:11:2", + "referencedDeclaration": 1297, + "src": "1194:11:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$", "typeString": "function (address[] memory,uint256)" } }, - "id": 54, + "id": 199, "isConstant": false, "isLValue": false, "isPure": false, @@ -484,15 +852,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "800:32:2", + "src": "1194:32:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 55, + "id": 200, "nodeType": "ExpressionStatement", - "src": "800:32:2" + "src": "1194:32:4" }, { "expression": { @@ -500,12 +868,12 @@ "arguments": [ { "argumentTypes": null, - "id": 57, + "id": 202, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "980:2:2", + "referencedDeclaration": 174, + "src": "1374:2:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -513,12 +881,12 @@ }, { "argumentTypes": null, - "id": 58, + "id": 203, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 48, - "src": "984:4:2", + "referencedDeclaration": 176, + "src": "1378:4:4", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -536,18 +904,18 @@ "typeString": "bytes memory" } ], - "id": 56, + "id": 201, "name": "setupModules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1928, - "src": "967:12:2", + "referencedDeclaration": 975, + "src": "1361:12:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,bytes memory)" } }, - "id": 59, + "id": 204, "isConstant": false, "isLValue": false, "isPure": false, @@ -555,20 +923,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "967:22:2", + "src": "1361:22:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 60, + "id": 205, "nodeType": "ExpressionStatement", - "src": "967:22:2" + "src": "1361:22:4" } ] }, "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": 62, + "id": 207, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -576,16 +944,16 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 49, + "id": 177, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 42, + "id": 170, "name": "_owners", "nodeType": "VariableDeclaration", - "scope": 62, - "src": "708:17:2", + "scope": 207, + "src": "948:17:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -594,19 +962,19 @@ }, "typeName": { "baseType": { - "id": 40, + "id": 168, "name": "address", "nodeType": "ElementaryTypeName", - "src": "708:7:2", + "src": "948:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 41, + "id": 169, "length": null, "nodeType": "ArrayTypeName", - "src": "708:9:2", + "src": "948:9:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -617,11 +985,11 @@ }, { "constant": false, - "id": 44, + "id": 172, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 62, - "src": "727:18:2", + "scope": 207, + "src": "967:18:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -629,10 +997,10 @@ "typeString": "uint256" }, "typeName": { - "id": 43, + "id": 171, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "727:7:2", + "src": "967:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -643,11 +1011,11 @@ }, { "constant": false, - "id": 46, + "id": 174, "name": "to", "nodeType": "VariableDeclaration", - "scope": 62, - "src": "747:10:2", + "scope": 207, + "src": "987:10:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -655,10 +1023,10 @@ "typeString": "address" }, "typeName": { - "id": 45, + "id": 173, "name": "address", "nodeType": "ElementaryTypeName", - "src": "747:7:2", + "src": "987:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -669,11 +1037,11 @@ }, { "constant": false, - "id": 48, + "id": 176, "name": "data", "nodeType": "VariableDeclaration", - "scope": 62, - "src": "759:10:2", + "scope": 207, + "src": "999:10:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -681,10 +1049,10 @@ "typeString": "bytes" }, "typeName": { - "id": 47, + "id": 175, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "759:5:2", + "src": "999:5:4", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -694,78 +1062,78 @@ "visibility": "internal" } ], - "src": "707:63:2" + "src": "947:63:4" }, "payable": false, "returnParameters": { - "id": 50, + "id": 178, "nodeType": "ParameterList", "parameters": [], - "src": "790:0:2" + "src": "1030:0:4" }, - "scope": 63, - "src": "693:303:2", + "scope": 208, + "src": "933:457:4", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 64, - "src": "322:676:2" + "scope": 209, + "src": "322:1070:4" } ], - "src": "0:999:2" + "src": "0:1393:4" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafe.sol", "exportedSymbols": { "GnosisSafe": [ - 63 + 208 ] }, - "id": 64, + "id": 209, "nodeType": "SourceUnit", "nodes": [ { - "id": 32, + "id": 155, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:2" + "src": "0:23:4" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", "file": "./Module.sol", - "id": 33, + "id": 156, "nodeType": "ImportDirective", - "scope": 64, - "sourceUnit": 1862, - "src": "24:22:2", + "scope": 209, + "sourceUnit": 914, + "src": "24:22:4", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", "file": "./ModuleManager.sol", - "id": 34, + "id": 157, "nodeType": "ImportDirective", - "scope": 64, - "sourceUnit": 2233, - "src": "47:29:2", + "scope": 209, + "sourceUnit": 1181, + "src": "47:29:4", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", "file": "./OwnerManager.sol", - "id": 35, + "id": 158, "nodeType": "ImportDirective", - "scope": 64, - "sourceUnit": 2889, - "src": "77:28:2", + "scope": 209, + "sourceUnit": 1589, + "src": "77:28:4", "symbolAliases": [], "unitAlias": "" }, @@ -775,62 +1143,135 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 36, + "id": 159, "name": "ModuleManager", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2232, - "src": "345:13:2", + "referencedDeclaration": 1180, + "src": "345:13:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } }, - "id": 37, + "id": 160, "nodeType": "InheritanceSpecifier", - "src": "345:13:2" + "src": "345:13:4" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 38, + "id": 161, "name": "OwnerManager", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2888, - "src": "360:12:2", + "referencedDeclaration": 1588, + "src": "360:12:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$2888", + "typeIdentifier": "t_contract$_OwnerManager_$1588", "typeString": "contract OwnerManager" } }, - "id": 39, + "id": 162, "nodeType": "InheritanceSpecifier", - "src": "360:12:2" + "src": "360:12:4" } ], "contractDependencies": [ - 2232, - 2888, - 3065 + 153, + 37, + 1180, + 1588, + 1765 ], "contractKind": "contract", "documentation": "@title Gnosis 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 - ", "fullyImplemented": true, - "id": 63, + "id": 208, "linearizedBaseContracts": [ - 63, - 2888, - 2232, - 3065 + 208, + 1588, + 1180, + 153, + 37, + 1765 ], "name": "GnosisSafe", "nodeType": "ContractDefinition", "nodes": [ + { + "constant": true, + "id": 165, + "name": "DOMAIN_SEPERATOR_TYPEHASH", + "nodeType": "VariableDeclaration", + "scope": 208, + "src": "458:118:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 163, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "458:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307830333561666638336438363933376433356233326530346630646463366666343639323930656566326631623639326438613831356338393430346434373439", + "id": 164, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "510:66:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1517718281442037948617199096126532355110765202990829672390711201829802035017_by_1", + "typeString": "int_const 1517...(68 digits omitted)...5017" + }, + "value": "0x035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d4749" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 167, + "name": "domainSeperator", + "nodeType": "VariableDeclaration", + "scope": 208, + "src": "583:30:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 166, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "583:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "public" + }, { "body": { - "id": 61, + "id": 206, "nodeType": "Block", - "src": "790:206:2", + "src": "1030:360:4", "statements": [ { "expression": { @@ -838,12 +1279,279 @@ "arguments": [ { "argumentTypes": null, - "id": 52, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 182, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 180, + "name": "domainSeperator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "1048:15:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 181, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1067:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1048:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "446f6d61696e20536570657261746f7220616c72656164792073657421", + "id": 183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1070:31:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_76b336706355b2c543d4f566e8de773fa4e586723c61d024c00ec0bb4ad3fcae", + "typeString": "literal_string \"Domain Seperator already set!\"" + }, + "value": "Domain Seperator already set!" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_76b336706355b2c543d4f566e8de773fa4e586723c61d024c00ec0bb4ad3fcae", + "typeString": "literal_string \"Domain Seperator already set!\"" + } + ], + "id": 179, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3832, + "src": "1040:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1040:62:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 185, + "nodeType": "ExpressionStatement", + "src": "1040:62:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 186, + "name": "domainSeperator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "1112:15:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 190, + "name": "DOMAIN_SEPERATOR_TYPEHASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 165, + "src": "1151:25:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 191, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3861, + "src": "1178:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GnosisSafe_$208", + "typeString": "contract GnosisSafe" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_contract$_GnosisSafe_$208", + "typeString": "contract GnosisSafe" + } + ], + "expression": { + "argumentTypes": null, + "id": 188, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3815, + "src": "1140:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 189, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1140:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1140:43:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 187, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3822, + "src": "1130:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1130:54:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "1112:72:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 195, + "nodeType": "ExpressionStatement", + "src": "1112:72:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 197, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42, - "src": "812:7:2", + "referencedDeclaration": 170, + "src": "1206:7:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" @@ -851,12 +1559,12 @@ }, { "argumentTypes": null, - "id": 53, + "id": 198, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 44, - "src": "821:10:2", + "referencedDeclaration": 172, + "src": "1215:10:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -874,18 +1582,18 @@ "typeString": "uint256" } ], - "id": 51, + "id": 196, "name": "setupOwners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2597, - "src": "800:11:2", + "referencedDeclaration": 1297, + "src": "1194:11:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$", "typeString": "function (address[] memory,uint256)" } }, - "id": 54, + "id": 199, "isConstant": false, "isLValue": false, "isPure": false, @@ -893,15 +1601,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "800:32:2", + "src": "1194:32:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 55, + "id": 200, "nodeType": "ExpressionStatement", - "src": "800:32:2" + "src": "1194:32:4" }, { "expression": { @@ -909,12 +1617,12 @@ "arguments": [ { "argumentTypes": null, - "id": 57, + "id": 202, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "980:2:2", + "referencedDeclaration": 174, + "src": "1374:2:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -922,12 +1630,12 @@ }, { "argumentTypes": null, - "id": 58, + "id": 203, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 48, - "src": "984:4:2", + "referencedDeclaration": 176, + "src": "1378:4:4", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -945,18 +1653,18 @@ "typeString": "bytes memory" } ], - "id": 56, + "id": 201, "name": "setupModules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1928, - "src": "967:12:2", + "referencedDeclaration": 975, + "src": "1361:12:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,bytes memory)" } }, - "id": 59, + "id": 204, "isConstant": false, "isLValue": false, "isPure": false, @@ -964,20 +1672,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "967:22:2", + "src": "1361:22:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 60, + "id": 205, "nodeType": "ExpressionStatement", - "src": "967:22:2" + "src": "1361:22:4" } ] }, "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": 62, + "id": 207, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -985,16 +1693,16 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 49, + "id": 177, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 42, + "id": 170, "name": "_owners", "nodeType": "VariableDeclaration", - "scope": 62, - "src": "708:17:2", + "scope": 207, + "src": "948:17:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1003,19 +1711,19 @@ }, "typeName": { "baseType": { - "id": 40, + "id": 168, "name": "address", "nodeType": "ElementaryTypeName", - "src": "708:7:2", + "src": "948:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 41, + "id": 169, "length": null, "nodeType": "ArrayTypeName", - "src": "708:9:2", + "src": "948:9:4", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -1026,11 +1734,11 @@ }, { "constant": false, - "id": 44, + "id": 172, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 62, - "src": "727:18:2", + "scope": 207, + "src": "967:18:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1038,10 +1746,10 @@ "typeString": "uint256" }, "typeName": { - "id": 43, + "id": 171, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "727:7:2", + "src": "967:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1052,11 +1760,11 @@ }, { "constant": false, - "id": 46, + "id": 174, "name": "to", "nodeType": "VariableDeclaration", - "scope": 62, - "src": "747:10:2", + "scope": 207, + "src": "987:10:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1064,10 +1772,10 @@ "typeString": "address" }, "typeName": { - "id": 45, + "id": 173, "name": "address", "nodeType": "ElementaryTypeName", - "src": "747:7:2", + "src": "987:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1078,11 +1786,11 @@ }, { "constant": false, - "id": 48, + "id": 176, "name": "data", "nodeType": "VariableDeclaration", - "scope": 62, - "src": "759:10:2", + "scope": 207, + "src": "999:10:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1090,10 +1798,10 @@ "typeString": "bytes" }, "typeName": { - "id": 47, + "id": 175, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "759:5:2", + "src": "999:5:4", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1103,27 +1811,27 @@ "visibility": "internal" } ], - "src": "707:63:2" + "src": "947:63:4" }, "payable": false, "returnParameters": { - "id": 50, + "id": 178, "nodeType": "ParameterList", "parameters": [], - "src": "790:0:2" + "src": "1030:0:4" }, - "scope": 63, - "src": "693:303:2", + "scope": 208, + "src": "933:457:4", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 64, - "src": "322:676:2" + "scope": 209, + "src": "322:1070:4" } ], - "src": "0:999:2" + "src": "0:1393:4" }, "compiler": { "name": "solc", @@ -1131,5 +1839,5 @@ }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-06-29T09:01:22.054Z" + "updatedAt": "2018-08-20T07:44:41.084Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/GnosisSafePersonalEdition.json b/safe-contracts/build/contracts/GnosisSafePersonalEdition.json index 4c42670218..cef0a73a00 100644 --- a/safe-contracts/build/contracts/GnosisSafePersonalEdition.json +++ b/safe-contracts/build/contracts/GnosisSafePersonalEdition.json @@ -45,6 +45,20 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "constant": true, + "inputs": [], + "name": "DOMAIN_SEPERATOR_TYPEHASH", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": true, "inputs": [ @@ -221,6 +235,34 @@ "stateMutability": "view", "type": "function" }, + { + "constant": true, + "inputs": [], + "name": "domainSeperator", + "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": [ @@ -474,73 +516,73 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b506140c4806100206000396000f30060806040526004361061011d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063095293341461011f5780630d582f131461025b5780630ec78d9e146102a85780632f54bf6e1461037e578063468721a7146103d9578063610b592514610491578063694e80c3146104d45780637de7edef1461050157806385e332cd146105445780638cff63551461059b578063a0e67e2b146105f2578063a3f4df7e1461065e578063affed0e0146106ee578063b2494df314610719578063ba08ea2414610785578063c4ca3a9c14610889578063e009cfde1461093d578063e318b52b146109a0578063e75235b814610a23578063f8dc5dd914610a4e578063ffa1ad7414610abb575b005b34801561012b57600080fd5b50610241600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610b4b565b604051808215151515815260200191505060405180910390f35b34801561026757600080fd5b506102a6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e51565b005b3480156102b457600080fd5b5061037c6004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611257565b005b34801561038a57600080fd5b506103bf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611271565b604051808215151515815260200191505060405180910390f35b3480156103e557600080fd5b50610477600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291905050506112f3565b604051808215151515815260200191505060405180910390f35b34801561049d57600080fd5b506104d2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061141f565b005b3480156104e057600080fd5b506104ff600480360381019080803590602001909291905050506117fd565b005b34801561050d57600080fd5b50610542600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a0f565b005b34801561055057600080fd5b50610559611bd0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105a757600080fd5b506105b0611bd5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105fe57600080fd5b50610607611bda565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561064a57808201518184015260208101905061062f565b505050509050019250505060405180910390f35b34801561066a57600080fd5b50610673611d75565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106b3578082015181840152602081019050610698565b50505050905090810190601f1680156106e05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156106fa57600080fd5b50610703611dae565b6040518082815260200191505060405180910390f35b34801561072557600080fd5b5061072e611db4565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610771578082015181840152602081019050610756565b505050509050019250505060405180910390f35b34801561079157600080fd5b5061086b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061205b565b60405180826000191660001916815260200191505060405180910390f35b34801561089557600080fd5b50610927600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050612342565b6040518082815260200191505060405180910390f35b34801561094957600080fd5b5061099e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506124f1565b005b3480156109ac57600080fd5b50610a21600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061290a565b005b348015610a2f57600080fd5b50610a38612f57565b6040518082815260200191505060405180910390f35b348015610a5a57600080fd5b50610ab9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612f61565b005b348015610ac757600080fd5b50610ad0613446565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b10578082015181840152602081019050610af5565b50505050905090810190601f168015610b3d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60008060008060005a9350610b698e8e8e8e8e8e8e8e60055461205b565b9250610b75838761347f565b600560008154809291906001019190505550895a10151515610c25576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4e6f7420656e6f7567682067617320746f20657865637574652073616665207481526020017f72616e73616374696f6e0000000000000000000000000000000000000000000081525060400191505060405180910390fd5b610c328e8e8e8e8e613671565b9450841515610c7b577fabfd711ecdd15ae3a6b3ad16ff2e9d81aec026a39d16725ee164be4fbf857a7c8360405180826000191660001916815260200191505060405180910390a15b6000881115610e4057885a85030191508782029050600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415610d99573273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515610d94576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f436f756c64206e6f74207061792067617320636f73747320776974682065746881526020017f657200000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b610e3f565b610da487328361376e565b1515610e3e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f436f756c64206e6f74207061792067617320636f737473207769746820746f6b81526020017f656e00000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5b5b505050509998505050505050505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f1a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015610f6e5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515610fe2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156110cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003600081548092919060010191905055508060045414151561125357611252816117fd565b5b5050565b6112618484613887565b61126b8282613d47565b50505050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515611408576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b611415858585855a613671565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415801561153c5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156115b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561169d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6003548111151515611966576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018110151515611a05576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060048190555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ad8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515611b8d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b600181565b606080600080600354604051908082528060200260200182016040528015611c115781602001602082028038833980820191505090505b5092506000915060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515611d6c57808383815181101515611cc157fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050611c7c565b82935050505090565b6040805190810160405280601c81526020017f476e6f736973205361666520506572736f6e616c2045646974696f6e0000000081525081565b60055481565b606060008060606000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515611ec857600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050611e23565b82604051908082528060200260200182016040528015611ef75781602001602082028038833980820191505090505b5090506000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561205257818184815181101515611fa757fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050611f62565b80935050505090565b600060197f01000000000000000000000000000000000000000000000000000000000000000260007f010000000000000000000000000000000000000000000000000000000000000002308c8c8c8c8c8c8c8c8c604051602001808d7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018c7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140189815260200188805190602001908083835b60208310151561220357805182526020820191506020810190506020830392506121de565b6001836020036101000a03801982511681845116808217855250505050505090500187600281111561223157fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018281526020019c505050505050505050505050506040516020818303038152906040526040518082805190602001908083835b60208310151561230657805182526020820191506020810190506020830392506122e1565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090509998505050505050505050565b60008060003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612410576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b5a9150612420878787875a613671565b151561242b57600080fd5b5a8203905080604051602001808281526020019150506040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156124b657808201518184015260208101905061249b565b50505050905090810190601f1680156124e35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156125ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415801561260e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612682576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156127aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156129d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015612a275750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612a9b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612b88576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015612bdc5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515612c50576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612d78576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000600454905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561302a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600160035403101515156130cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156131215750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515613195576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156132bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360008154809291906001900391905055508060045414151561344157613440816117fd565b5b505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000806000809250600090505b60045481101561366a576134a1858583613f7e565b91506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515613591576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5369676e6174757265206e6f742070726f7669646564206279206f776e65720081525060200191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1611151561365a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f5369676e61747572657320617265206e6f74206f726465726564206279206f7781526020017f6e6572206164647265737300000000000000000000000000000000000000000081525060400191505060405180910390fd5b819250808060010191505061348c565b5050505050565b6000806000600281111561368157fe5b84600281111561368d57fe5b14156136a65761369f87878786614027565b9150613764565b600160028111156136b357fe5b8460028111156136bf57fe5b14156136d7576136d0878685614040565b9150613763565b6136e085614057565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b600060608383604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000808251602084016000896127105a03f16040513d6000823e3d6000811461386a5760208114613872576000945061387c565b82945061387c565b8151158315171594505b505050509392505050565b600080600080600454141515613905576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e657273206861766520616c7265616479206265656e207365747570000081525060200191505060405180910390fd5b845184111515156139a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018410151515613a43576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60019250600091505b8451821015613cb2578482815181101515613a6357fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614158015613ac35750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515613b37576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613c24576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4475706c6963617465206f776e657220616464726573732070726f766964656481525060200191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508092508180600101925050613a4c565b6001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508451600381905550836004819055505050505050565b600060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613e5b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6f64756c6573206861766520616c7265616479206265656e20696e6974696181526020017f6c697a656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff16141515613f7a57613f0582825a614040565b1515613f79576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e0081525060200191505060405180910390fd5b5b5050565b600080600080613f8e8686614069565b809350819450829550505050600187848484604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1158015614011573d6000803e3d6000fd5b5050506020604051035193505050509392505050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f09050919050565b60008060008360410260208101860151925060408101860151915060ff604182018701511693505092509250925600a165627a7a72305820606a4e209e1e90df13cf1902af9e45183ce83535399924987f1a6033df3a4b9d0029", - "deployedBytecode": "0x60806040526004361061011d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063095293341461011f5780630d582f131461025b5780630ec78d9e146102a85780632f54bf6e1461037e578063468721a7146103d9578063610b592514610491578063694e80c3146104d45780637de7edef1461050157806385e332cd146105445780638cff63551461059b578063a0e67e2b146105f2578063a3f4df7e1461065e578063affed0e0146106ee578063b2494df314610719578063ba08ea2414610785578063c4ca3a9c14610889578063e009cfde1461093d578063e318b52b146109a0578063e75235b814610a23578063f8dc5dd914610a4e578063ffa1ad7414610abb575b005b34801561012b57600080fd5b50610241600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610b4b565b604051808215151515815260200191505060405180910390f35b34801561026757600080fd5b506102a6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e51565b005b3480156102b457600080fd5b5061037c6004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611257565b005b34801561038a57600080fd5b506103bf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611271565b604051808215151515815260200191505060405180910390f35b3480156103e557600080fd5b50610477600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291905050506112f3565b604051808215151515815260200191505060405180910390f35b34801561049d57600080fd5b506104d2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061141f565b005b3480156104e057600080fd5b506104ff600480360381019080803590602001909291905050506117fd565b005b34801561050d57600080fd5b50610542600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a0f565b005b34801561055057600080fd5b50610559611bd0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105a757600080fd5b506105b0611bd5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105fe57600080fd5b50610607611bda565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561064a57808201518184015260208101905061062f565b505050509050019250505060405180910390f35b34801561066a57600080fd5b50610673611d75565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106b3578082015181840152602081019050610698565b50505050905090810190601f1680156106e05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156106fa57600080fd5b50610703611dae565b6040518082815260200191505060405180910390f35b34801561072557600080fd5b5061072e611db4565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610771578082015181840152602081019050610756565b505050509050019250505060405180910390f35b34801561079157600080fd5b5061086b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061205b565b60405180826000191660001916815260200191505060405180910390f35b34801561089557600080fd5b50610927600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050612342565b6040518082815260200191505060405180910390f35b34801561094957600080fd5b5061099e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506124f1565b005b3480156109ac57600080fd5b50610a21600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061290a565b005b348015610a2f57600080fd5b50610a38612f57565b6040518082815260200191505060405180910390f35b348015610a5a57600080fd5b50610ab9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612f61565b005b348015610ac757600080fd5b50610ad0613446565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b10578082015181840152602081019050610af5565b50505050905090810190601f168015610b3d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60008060008060005a9350610b698e8e8e8e8e8e8e8e60055461205b565b9250610b75838761347f565b600560008154809291906001019190505550895a10151515610c25576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4e6f7420656e6f7567682067617320746f20657865637574652073616665207481526020017f72616e73616374696f6e0000000000000000000000000000000000000000000081525060400191505060405180910390fd5b610c328e8e8e8e8e613671565b9450841515610c7b577fabfd711ecdd15ae3a6b3ad16ff2e9d81aec026a39d16725ee164be4fbf857a7c8360405180826000191660001916815260200191505060405180910390a15b6000881115610e4057885a85030191508782029050600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415610d99573273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515610d94576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f436f756c64206e6f74207061792067617320636f73747320776974682065746881526020017f657200000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b610e3f565b610da487328361376e565b1515610e3e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f436f756c64206e6f74207061792067617320636f737473207769746820746f6b81526020017f656e00000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5b5b505050509998505050505050505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f1a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015610f6e5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515610fe2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156110cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003600081548092919060010191905055508060045414151561125357611252816117fd565b5b5050565b6112618484613887565b61126b8282613d47565b50505050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515611408576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b611415858585855a613671565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415801561153c5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156115b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561169d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6003548111151515611966576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018110151515611a05576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060048190555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ad8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515611b8d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b600181565b606080600080600354604051908082528060200260200182016040528015611c115781602001602082028038833980820191505090505b5092506000915060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515611d6c57808383815181101515611cc157fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050611c7c565b82935050505090565b6040805190810160405280601c81526020017f476e6f736973205361666520506572736f6e616c2045646974696f6e0000000081525081565b60055481565b606060008060606000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515611ec857600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050611e23565b82604051908082528060200260200182016040528015611ef75781602001602082028038833980820191505090505b5090506000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561205257818184815181101515611fa757fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050611f62565b80935050505090565b600060197f01000000000000000000000000000000000000000000000000000000000000000260007f010000000000000000000000000000000000000000000000000000000000000002308c8c8c8c8c8c8c8c8c604051602001808d7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018c7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140189815260200188805190602001908083835b60208310151561220357805182526020820191506020810190506020830392506121de565b6001836020036101000a03801982511681845116808217855250505050505090500187600281111561223157fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018281526020019c505050505050505050505050506040516020818303038152906040526040518082805190602001908083835b60208310151561230657805182526020820191506020810190506020830392506122e1565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090509998505050505050505050565b60008060003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612410576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b5a9150612420878787875a613671565b151561242b57600080fd5b5a8203905080604051602001808281526020019150506040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156124b657808201518184015260208101905061249b565b50505050905090810190601f1680156124e35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156125ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415801561260e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612682576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156127aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156129d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015612a275750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612a9b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612b88576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015612bdc5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515612c50576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612d78576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000600454905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561302a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600160035403101515156130cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156131215750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515613195576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156132bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360008154809291906001900391905055508060045414151561344157613440816117fd565b5b505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000806000809250600090505b60045481101561366a576134a1858583613f7e565b91506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515613591576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5369676e6174757265206e6f742070726f7669646564206279206f776e65720081525060200191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1611151561365a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f5369676e61747572657320617265206e6f74206f726465726564206279206f7781526020017f6e6572206164647265737300000000000000000000000000000000000000000081525060400191505060405180910390fd5b819250808060010191505061348c565b5050505050565b6000806000600281111561368157fe5b84600281111561368d57fe5b14156136a65761369f87878786614027565b9150613764565b600160028111156136b357fe5b8460028111156136bf57fe5b14156136d7576136d0878685614040565b9150613763565b6136e085614057565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b600060608383604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000808251602084016000896127105a03f16040513d6000823e3d6000811461386a5760208114613872576000945061387c565b82945061387c565b8151158315171594505b505050509392505050565b600080600080600454141515613905576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e657273206861766520616c7265616479206265656e207365747570000081525060200191505060405180910390fd5b845184111515156139a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018410151515613a43576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60019250600091505b8451821015613cb2578482815181101515613a6357fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614158015613ac35750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515613b37576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613c24576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4475706c6963617465206f776e657220616464726573732070726f766964656481525060200191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508092508180600101925050613a4c565b6001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508451600381905550836004819055505050505050565b600060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613e5b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6f64756c6573206861766520616c7265616479206265656e20696e6974696181526020017f6c697a656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff16141515613f7a57613f0582825a614040565b1515613f79576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e0081525060200191505060405180910390fd5b5b5050565b600080600080613f8e8686614069565b809350819450829550505050600187848484604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1158015614011573d6000803e3d6000fd5b5050506020604051035193505050509392505050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f09050919050565b60008060008360410260208101860151925060408101860151915060ff604182018701511693505092509250925600a165627a7a72305820606a4e209e1e90df13cf1902af9e45183ce83535399924987f1a6033df3a4b9d0029", - "sourceMap": "483:5903:3:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;483:5903:3;;;;;;;", - "deployedSourceMap": "483:5903:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1677:1545;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1677:1545:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2093:595:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2093:595:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;693:303:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;693:303:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5613:129:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5613:129:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2841:429:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2841:429:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1311:459;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1311:459:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;5087:399:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5087:399:11;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;499:55:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;499:55:9;;;;;;;;;;;;;;;;;;;;;;;;;;;287:54:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;287:54:11;;;;;;;;;;;;;;;;;;;;;;;;;;;5824:458;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5824:458:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;5824:458:11;;;;;;;;;;;;;;;;;593:60:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;593:60:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;593:60:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;754:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;754:20:3;;;;;;;;;;;;;;;;;;;;;;;4794:738:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4794:738:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;4794:738:9;;;;;;;;;;;;;;;;;5884:500:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5884:500:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4149:523;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4149:523:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2031:474:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2031:474:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4147:751:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4147:751:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5492:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5492:115:11;;;;;;;;;;;;;;;;;;;;;;;3030:783;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3030:783:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;659:40:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;659:40:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;659:40:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1677:1545;1986:12;2014:16;2052:14;2680:16;2745:14;2033:9;2014:28;;2069:93;2088:2;2092:5;2099:4;2105:9;2116;2127:7;2136:8;2146;2156:5;;2069:18;:93::i;:::-;2052:110;;2172:29;2182:6;2190:10;2172:9;:29::i;:::-;2262:5;;:7;;;;;;;;;;;;;2300:9;2287;:22;;2279:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2376:46;2384:2;2388:5;2395:4;2401:9;2412;2376:7;:46::i;:::-;2366:56;;2437:7;2436:8;2432:67;;;2465:23;2481:6;2465:23;;;;;;;;;;;;;;;;;;;;;;;;2432:67;2663:1;2652:8;:12;2648:566;;;2724:7;2711:9;2700:8;:20;2699:32;2680:51;;2773:8;2762;:19;2745:36;;2819:1;2799:22;;:8;:22;;;2795:409;;;2933:9;:14;;:22;2948:6;2933:22;;;;;;;;;;;;;;;;;;;;;;;2925:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2795:409;;;3108:42;3122:8;3132:9;3143:6;3108:13;:42::i;:::-;3100:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2795:409;2648:566;1677:1545;;;;;;;;;;;;;;;:::o;2093:595:11:-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2265:1:11;2256:5;:10;;;;:38;;;;;337:3;2270:24;;:5;:24;;;;2256:38;2248:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2404:1;2387:6;:13;2394:5;2387:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;2379:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2463:6;:23;337:3;2463:23;;;;;;;;;;;;;;;;;;;;;;;;;2447:6;:13;2454:5;2447:13;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2522:5;2496:6;:23;337:3;2496:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2537:10;;:12;;;;;;;;;;;;;2630:10;2617:9;;:23;;2613:68;;;2654:27;2670:10;2654:15;:27::i;:::-;2613:68;2093:595;;:::o;693:303:2:-;800:32;812:7;821:10;800:11;:32::i;:::-;967:22;980:2;984:4;967:12;:22::i;:::-;693:303;;;;:::o;5613:129:11:-;5690:4;5734:1;5717:6;:13;5724:5;5717:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;;5710:25;;5613:129;;;:::o;2841:429:9:-;2973:12;3081:1;3058:7;:19;3066:10;3058:19;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;3050:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3217:46;3225:2;3229:5;3236:4;3242:9;3253;3217:7;:46::i;:::-;3207:56;;2841:429;;;;;;:::o;1311:459::-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1477:1:9;1466:6;1458:20;;;;:59;;;;;550:3;1482:35;;1490:6;1482:35;;;;1458:59;1450:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1631:1;1612:7;:15;1620:6;1612:15;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;1604:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1694:7;:25;550:3;1694:25;;;;;;;;;;;;;;;;;;;;;;;;;1676:7;:15;1684:6;1676:15;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;1757:6;1729:7;:25;550:3;1729:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;1311:459;:::o;5087:399:11:-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5271:10:11;;5257;:24;;5249:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5405:1;5391:10;:15;;5383:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5469:10;5457:9;:22;;;;5087:399;:::o;626:248:5:-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:5;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;499:55:9:-;550:3;499:55;:::o;287:54:11:-;337:3;287:54;:::o;5824:458::-;5890:9;5915:22;6009:13;6036:20;5954:10;;5940: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;5940:25:11;;;;5915:50;;6025:1;6009:17;;6059:6;:23;337:3;6059:23;;;;;;;;;;;;;;;;;;;;;;;;;6036:46;;6092:162;337:3;6098:31;;:12;:31;;;;6092:162;;;6160:12;6145:5;6151;6145:12;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;6201:6;:20;6208:12;6201:20;;;;;;;;;;;;;;;;;;;;;;;;;6186:35;;6235:8;;;;;;;6092:162;;;6270:5;6263:12;;5824:458;;;;:::o;593:60:3:-;;;;;;;;;;;;;;;;;;;;:::o;754:20::-;;;;:::o;4794:738:9:-;4861:9;4920:19;4953:21;5153:22;4942:1;4920:23;;4977:7;:25;550:3;4977:25;;;;;;;;;;;;;;;;;;;;;;;;;4953:49;;5012:132;550:3;5018:33;;:13;:33;;;;5012:132;;;5083:7;:22;5091:13;5083:22;;;;;;;;;;;;;;;;;;;;;;;;;5067:38;;5119:14;;;;;;;5012:132;;;5192:11;5178: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;5178:26:9;;;;5153:51;;5262:1;5248:15;;5289:7;:25;550:3;5289:25;;;;;;;;;;;;;;;;;;;;;;;;;5273:41;;5324:180;550:3;5330:33;;:13;:33;;;;5324:180;;;5400:13;5379:5;5385:11;5379:18;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;5443:7;:22;5451:13;5443:22;;;;;;;;;;;;;;;;;;;;;;;;;5427:38;;5479:14;;;;;;;5324:180;;;5520:5;5513:12;;4794:738;;;;:::o;5884:500:3:-;6195:7;6270:4;6265:10;;6282:1;6277:7;;6286:4;6292:2;6296:5;6303:4;6309:9;6320;6331:7;6340:8;6350;6360:6;6248:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;6248:119:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;6248:119:3;;;6225:152;;;;;;;;;;;;;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;;;6225:152:3;;;;;;;;;;;;;;;;6218:159;;5884:500;;;;;;;;;;;:::o;4149:523::-;4288:7;4311:16;4501:19;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4330:9:3;4311:28;;4444:46;4452:2;4456:5;4463:4;4469:9;4480;4444:7;:46::i;:::-;4436:55;;;;;;;;4534:9;4523:8;:20;4501:42;;4651:11;4634:29;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;4634:29:3;;;4620: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;4620:45:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2031:474:9;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2245:1:9;2234:6;2226:20;;;;:59;;;;;550:3;2250:35;;2258:6;2250:35;;;;2226:59;2218:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2370:6;2339:38;;:7;:19;2347:10;2339:19;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;2331:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2454:7;:15;2462:6;2454:15;;;;;;;;;;;;;;;;;;;;;;;;;2432:7;:19;2440:10;2432:19;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2497:1;2479:7;:15;2487:6;2479:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;2031:474;;:::o;4147:751:11:-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4330:1:11;4318:8;:13;;;;:44;;;;;337:3;4335:27;;:8;:27;;;;4318:44;4310:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4475:1;4455:6;:16;4462:8;4455:16;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;4447:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4621:1;4609:8;:13;;;;:44;;;;;337:3;4626:27;;:8;:27;;;;4609:44;4601:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4727:8;4706:29;;:6;:17;4713:9;4706:17;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4698:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4807:6;:16;4814:8;4807:16;;;;;;;;;;;;;;;;;;;;;;;;;4788:6;:16;4795:8;4788:16;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;4853:8;4833:6;:17;4840:9;4833:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;4890:1;4871:6;:16;4878:8;4871:16;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;4147:751;;;:::o;5492:115::-;5561:7;5591:9;;5584:16;;5492:115;:::o;3030:783::-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3256:10:11;3251:1;3238:10;;:14;:28;;3230:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3431:1;3422:5;:10;;;;:38;;;;;337:3;3436:24;;:5;:24;;;;3422:38;3414:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3534:5;3513:26;;:6;:17;3520:9;3513:17;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;3505:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3612:6;:13;3619:5;3612:13;;;;;;;;;;;;;;;;;;;;;;;;;3592:6;:17;3599:9;3592:17;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;3651:1;3635:6;:13;3642:5;3635:13;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;3662:10;;:12;;;;;;;;;;;;;;3755:10;3742:9;;:23;;3738:68;;;3779:27;3795:10;3779:15;:27::i;:::-;3738:68;3030:783;;;:::o;659:40:3:-;;;;;;;;;;;;;;;;;;;;:::o;4678:606::-;4827:17;4867:20;4897:9;4855:1;4827:30;;4967:1;4963:5;;4958:320;4974:9;;4970:1;:13;4958:320;;;5019:33;5030:6;5038:10;5050:1;5019:10;:33::i;:::-;5004:48;;5098:1;5074:6;:20;5081:12;5074:20;;;;;;;;;;;;;;;;;;;;;;;;;:25;;;;5066:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5172:9;5157:24;;:12;:24;;;5149:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5255:12;5243:24;;4985:3;;;;;;;4958:320;;;4678:606;;;;;:::o;3276:548:9:-;3407:12;3678:19;3452;3439:32;;;;;;;;:9;:32;;;;;;;;;3435:383;;;3495:35;3507:2;3511:5;3518:4;3524:5;3495:11;:35::i;:::-;3485:45;;3435:383;;;3562:27;3549:40;;;;;;;;:9;:40;;;;;;;;;3545:273;;;3613:36;3633:2;3637:4;3643:5;3613:19;:36::i;:::-;3603:46;;3545:273;;;3700:19;3714:4;3700:13;:19::i;:::-;3678:41;;3758:1;3743:11;:16;;;;3733:26;;3778:29;3795:11;3778:29;;;;;;;;;;;;;;;;;;;;;;3545:273;3435:383;3276:548;;;;;;;;:::o;430:752:15:-;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:15;;;;;;;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:15;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;643:1210:11:-;1249:20;1302:9;1401:13;879:1;866:9;;:14;858:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1022:7;:14;1008:10;:28;;1000:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1160:1;1146:10;:15;;1138:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;337:3;1249:38;;1314:1;1302:13;;1297:433;1321:7;:14;1317:1;:18;1297:433;;;1417:7;1425:1;1417:10;;;;;;;;;;;;;;;;;;1401:26;;1458:1;1449:5;:10;;;;:38;;;;;337:3;1463:24;;:5;:24;;;;1449:38;1441:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1605:1;1588:6;:13;1595:5;1588:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;1580:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1680:5;1657:6;:20;1664:12;1657:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;1714:5;1699:20;;1337:3;;;;;;;1297:433;;;337:3;1739:6;:20;1746:12;1739:20;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;1800:7;:14;1787:10;:27;;;;1836:10;1824:9;:22;;;;643:1210;;;;;:::o;735:409:9:-;849:1;820:7;:25;550:3;820:25;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;812:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;550:3;902:7;:25;550:3;902:25;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;966:1;960:2;:7;;;;956:181;;;1061:40;1081:2;1085:4;1091:9;1061:19;:40::i;:::-;1053:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;956:181;735:409;;:::o;477:330:17:-;629:7;653;670:9;689;720:37;735:16;753:3;720:14;:37::i;:::-;708:49;;;;;;;;;;;;774:26;784:6;792:1;795;798;774:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;774:26:17;;;;;;;;767:33;;477:330;;;;;;;;:::o;3830:309:9:-;3939:12;4121:1;4118;4111:4;4105:11;4098:4;4092;4088:15;4081:5;4077:2;4070:5;4065:58;4054:69;;4040:93;;;;;;:::o;4145:303::-;4247:12;4430:1;4427;4420:4;4414:11;4407:4;4401;4397:15;4393:2;4386:5;4373:59;4362:70;;4348:94;;;;;:::o;4454:261::-;4523:19;4693:4;4687:11;4680:4;4674;4670:15;4667:1;4660:39;4645:54;;4631:78;;;:::o;984:914:17:-;1086:7;1095:9;1106;1406:3;1400:4;1396:14;1468:4;1454:12;1450:23;1438:10;1434:40;1428:47;1423:52;;1533:4;1519:12;1515:23;1503:10;1499:40;1493:47;1488:52;;1877:4;1868;1854:12;1850:23;1838:10;1834:40;1828:47;1824:58;1819:63;;1362:530;;;;;;:::o", - "source": "pragma solidity 0.4.24;\nimport \"./GnosisSafe.sol\";\nimport \"./MasterCopy.sol\";\nimport \"./SignatureValidator.sol\";\nimport \"./SecuredTokenTransfer.sol\";\n\n\n/// @title Gnosis Safe Personal Edition - 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 GnosisSafePersonalEdition is MasterCopy, GnosisSafe, SignatureValidator, SecuredTokenTransfer {\n\n string public constant NAME = \"Gnosis Safe Personal Edition\";\n string public constant VERSION = \"0.0.1\";\n \n event ExecutionFailed(bytes32 txHash);\n\n uint256 public nonce;\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 signatures Packed signature data ({bytes32 r}{bytes32 s}{uint8 v})\n function execTransactionAndPaySubmitter(\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 bytes signatures\n )\n public\n returns (bool success)\n {\n uint256 startGas = gasleft();\n bytes32 txHash = getTransactionHash(to, value, data, operation, safeTxGas, dataGas, gasPrice, gasToken, nonce);\n checkHash(txHash, signatures);\n // Increase nonce and execute transaction.\n nonce++;\n require(gasleft() >= safeTxGas, \"Not enough gas to execute safe transaction\");\n success = execute(to, value, data, operation, safeTxGas);\n if (!success) {\n emit ExecutionFailed(txHash);\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 uint256 gasCosts = (startGas - gasleft()) + dataGas;\n uint256 amount = gasCosts * gasPrice;\n if (gasToken == address(0)) {\n // solium-disable-next-line security/no-tx-origin,security/no-send\n require(tx.origin.send(amount), \"Could not pay gas costs with ether\");\n } else {\n // solium-disable-next-line security/no-tx-origin\n require(transferToken(gasToken, tx.origin, amount), \"Could not pay gas costs with token\");\n }\n } \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 `execTransactionAndPaySubmitter`\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 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 function checkHash(bytes32 txHash, 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 // Validate threshold is reached.\n for (i = 0; i < threshold; i++) {\n currentOwner = recoverKey(txHash, signatures, i);\n require(owners[currentOwner] != 0, \"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 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 _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 uint256 _nonce\n )\n public\n view\n returns (bytes32)\n {\n return keccak256(\n abi.encodePacked(byte(0x19), byte(0), this, to, value, data, operation, safeTxGas, dataGas, gasPrice, gasToken, _nonce)\n );\n }\n}\n", + "bytecode": "0x608060405234801561001057600080fd5b506143ab806100206000396000f30060806040526004361061013e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806309529334146101405780630d582f131461027c5780630ec78d9e146102c95780631da5187f1461039f5780632f54bf6e146103d2578063468721a71461042d578063610b5925146104e5578063694e80c3146105285780637de7edef1461055557806385e332cd146105985780638cff6355146105ef578063a0e67e2b14610646578063a3f4df7e146106b2578063affed0e014610742578063b2494df31461076d578063ba08ea24146107d9578063c4ca3a9c146108dd578063cb73ac5614610991578063ccafc387146109c4578063e009cfde146109f7578063e318b52b14610a5a578063e75235b814610add578063f8dc5dd914610b08578063ffa1ad7414610b75575b005b34801561014c57600080fd5b50610262600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610c05565b604051808215151515815260200191505060405180910390f35b34801561028857600080fd5b506102c7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f0b565b005b3480156102d557600080fd5b5061039d6004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611311565b005b3480156103ab57600080fd5b506103b4611497565b60405180826000191660001916815260200191505060405180910390f35b3480156103de57600080fd5b50610413600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114be565b604051808215151515815260200191505060405180910390f35b34801561043957600080fd5b506104cb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050611540565b604051808215151515815260200191505060405180910390f35b3480156104f157600080fd5b50610526600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061166c565b005b34801561053457600080fd5b5061055360048036038101908080359060200190929190505050611a4a565b005b34801561056157600080fd5b50610596600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c5c565b005b3480156105a457600080fd5b506105ad611e1d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105fb57600080fd5b50610604611e22565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561065257600080fd5b5061065b611e27565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561069e578082015181840152602081019050610683565b505050509050019250505060405180910390f35b3480156106be57600080fd5b506106c7611fc2565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107075780820151818401526020810190506106ec565b50505050905090810190601f1680156107345780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561074e57600080fd5b50610757611ffb565b6040518082815260200191505060405180910390f35b34801561077957600080fd5b50610782612001565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156107c55780820151818401526020810190506107aa565b505050509050019250505060405180910390f35b3480156107e557600080fd5b506108bf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506122a8565b60405180826000191660001916815260200191505060405180910390f35b3480156108e957600080fd5b5061097b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291905050506125fc565b6040518082815260200191505060405180910390f35b34801561099d57600080fd5b506109a66127ab565b60405180826000191660001916815260200191505060405180910390f35b3480156109d057600080fd5b506109d96127b1565b60405180826000191660001916815260200191505060405180910390f35b348015610a0357600080fd5b50610a58600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506127d8565b005b348015610a6657600080fd5b50610adb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612bf1565b005b348015610ae957600080fd5b50610af261323e565b6040518082815260200191505060405180910390f35b348015610b1457600080fd5b50610b73600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613248565b005b348015610b8157600080fd5b50610b8a61372d565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610bca578082015181840152602081019050610baf565b50505050905090810190601f168015610bf75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60008060008060005a9350610c238e8e8e8e8e8e8e8e6006546122a8565b9250610c2f8387613766565b600660008154809291906001019190505550895a10151515610cdf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4e6f7420656e6f7567682067617320746f20657865637574652073616665207481526020017f72616e73616374696f6e0000000000000000000000000000000000000000000081525060400191505060405180910390fd5b610cec8e8e8e8e8e613958565b9450841515610d35577fabfd711ecdd15ae3a6b3ad16ff2e9d81aec026a39d16725ee164be4fbf857a7c8360405180826000191660001916815260200191505060405180910390a15b6000881115610efa57885a85030191508782029050600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415610e53573273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515610e4e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f436f756c64206e6f74207061792067617320636f73747320776974682065746881526020017f657200000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b610ef9565b610e5e873283613a55565b1515610ef8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f436f756c64206e6f74207061792067617320636f737473207769746820746f6b81526020017f656e00000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5b5b505050509998505050505050505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fd4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156110285750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561109c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611189576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003600081548092919060010191905055508060045414151561130d5761130c81611a4a565b5b5050565b600060010260055460001916141515611392576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f446f6d61696e20536570657261746f7220616c7265616479207365742100000081525060200191505060405180910390fd5b7f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d4749600102306040516020018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831015156114465780518252602082019150602081019050602083039250611421565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020600581600019169055506114878484613b6e565b611491828261402e565b50505050565b7f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d474960010281565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515611655576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b611662858585855a613958565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611735576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156117895750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156117fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156118ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b13576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6003548111151515611bb3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018110151515611c52576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060048190555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d25576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515611dda576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b600181565b606080600080600354604051908082528060200260200182016040528015611e5e5781602001602082028038833980820191505090505b5092506000915060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515611fb957808383815181101515611f0e57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050611ec9565b82935050505090565b6040805190810160405280601c81526020017f476e6f736973205361666520506572736f6e616c2045646974696f6e0000000081525081565b60065481565b606060008060606000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561211557600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050612070565b826040519080825280602002602001820160405280156121445781602001602082028038833980820191505090505b5090506000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561229f578181848151811015156121f457fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082806001019350506121af565b80935050505090565b6000807f068c3b33cc9bff6dde08209527b62abfb1d4ed576706e2078229623d72374b5b6001028b8b8b6040518082805190602001908083835b60208310151561230757805182526020820191506020810190506020830392506122e2565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390208b8b8b8b8b8b604051602001808b600019166000191681526020018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200189815260200188600019166000191681526020018760028111156123a157fe5b60ff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019a50505050505050505050506040516020818303038152906040526040518082805190602001908083835b602083101515612443578051825260208201915060208101905060208303925061241e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905060197f01000000000000000000000000000000000000000000000000000000000000000260017f0100000000000000000000000000000000000000000000000000000000000000026005548360405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101847effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101836000191660001916815260200182600019166000191681526020019450505050506040516020818303038152906040526040518082805190602001908083835b6020831015156125bf578051825260208201915060208101905060208303925061259a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209150509998505050505050505050565b60008060003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156126ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b5a91506126da878787875a613958565b15156126e557600080fd5b5a8203905080604051602001808281526020019150506040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612770578082015181840152602081019050612755565b50505050905090810190601f16801561279d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60055481565b7f068c3b33cc9bff6dde08209527b62abfb1d4ed576706e2078229623d72374b5b60010281565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156128a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156128f55750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612969576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612a91576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612cba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015612d0e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612d82576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612e6f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015612ec35750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515612f37576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561305f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000600454905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600160035403101515156133b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156134085750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561347c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156135a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060036000815480929190600190039190505550806004541415156137285761372781611a4a565b5b505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000806000809250600090505b60045481101561395157613788858583614265565b91506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515613878576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5369676e6174757265206e6f742070726f7669646564206279206f776e65720081525060200191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16111515613941576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f5369676e61747572657320617265206e6f74206f726465726564206279206f7781526020017f6e6572206164647265737300000000000000000000000000000000000000000081525060400191505060405180910390fd5b8192508080600101915050613773565b5050505050565b6000806000600281111561396857fe5b84600281111561397457fe5b141561398d576139868787878661430e565b9150613a4b565b6001600281111561399a57fe5b8460028111156139a657fe5b14156139be576139b7878685614327565b9150613a4a565b6139c78561433e565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b600060608383604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000808251602084016000896127105a03f16040513d6000823e3d60008114613b515760208114613b595760009450613b63565b829450613b63565b8151158315171594505b505050509392505050565b600080600080600454141515613bec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e657273206861766520616c7265616479206265656e207365747570000081525060200191505060405180910390fd5b84518411151515613c8b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018410151515613d2a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60019250600091505b8451821015613f99578482815181101515613d4a57fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614158015613daa5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515613e1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613f0b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4475706c6963617465206f776e657220616464726573732070726f766964656481525060200191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508092508180600101925050613d33565b6001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508451600381905550836004819055505050505050565b600060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515614142576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6f64756c6573206861766520616c7265616479206265656e20696e6974696181526020017f6c697a656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff16141515614261576141ec82825a614327565b1515614260576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e0081525060200191505060405180910390fd5b5b5050565b6000806000806142758686614350565b809350819450829550505050600187848484604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af11580156142f8573d6000803e3d6000fd5b5050506020604051035193505050509392505050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f09050919050565b60008060008360410260208101860151925060408101860151915060ff604182018701511693505092509250925600a165627a7a7230582040c23eb354c6e039adf686e07858990911a1161d0f33b96fb6d506107fd2b5e30029", + "deployedBytecode": "0x60806040526004361061013e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806309529334146101405780630d582f131461027c5780630ec78d9e146102c95780631da5187f1461039f5780632f54bf6e146103d2578063468721a71461042d578063610b5925146104e5578063694e80c3146105285780637de7edef1461055557806385e332cd146105985780638cff6355146105ef578063a0e67e2b14610646578063a3f4df7e146106b2578063affed0e014610742578063b2494df31461076d578063ba08ea24146107d9578063c4ca3a9c146108dd578063cb73ac5614610991578063ccafc387146109c4578063e009cfde146109f7578063e318b52b14610a5a578063e75235b814610add578063f8dc5dd914610b08578063ffa1ad7414610b75575b005b34801561014c57600080fd5b50610262600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610c05565b604051808215151515815260200191505060405180910390f35b34801561028857600080fd5b506102c7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f0b565b005b3480156102d557600080fd5b5061039d6004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611311565b005b3480156103ab57600080fd5b506103b4611497565b60405180826000191660001916815260200191505060405180910390f35b3480156103de57600080fd5b50610413600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114be565b604051808215151515815260200191505060405180910390f35b34801561043957600080fd5b506104cb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050611540565b604051808215151515815260200191505060405180910390f35b3480156104f157600080fd5b50610526600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061166c565b005b34801561053457600080fd5b5061055360048036038101908080359060200190929190505050611a4a565b005b34801561056157600080fd5b50610596600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c5c565b005b3480156105a457600080fd5b506105ad611e1d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105fb57600080fd5b50610604611e22565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561065257600080fd5b5061065b611e27565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561069e578082015181840152602081019050610683565b505050509050019250505060405180910390f35b3480156106be57600080fd5b506106c7611fc2565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107075780820151818401526020810190506106ec565b50505050905090810190601f1680156107345780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561074e57600080fd5b50610757611ffb565b6040518082815260200191505060405180910390f35b34801561077957600080fd5b50610782612001565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156107c55780820151818401526020810190506107aa565b505050509050019250505060405180910390f35b3480156107e557600080fd5b506108bf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506122a8565b60405180826000191660001916815260200191505060405180910390f35b3480156108e957600080fd5b5061097b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291905050506125fc565b6040518082815260200191505060405180910390f35b34801561099d57600080fd5b506109a66127ab565b60405180826000191660001916815260200191505060405180910390f35b3480156109d057600080fd5b506109d96127b1565b60405180826000191660001916815260200191505060405180910390f35b348015610a0357600080fd5b50610a58600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506127d8565b005b348015610a6657600080fd5b50610adb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612bf1565b005b348015610ae957600080fd5b50610af261323e565b6040518082815260200191505060405180910390f35b348015610b1457600080fd5b50610b73600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613248565b005b348015610b8157600080fd5b50610b8a61372d565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610bca578082015181840152602081019050610baf565b50505050905090810190601f168015610bf75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60008060008060005a9350610c238e8e8e8e8e8e8e8e6006546122a8565b9250610c2f8387613766565b600660008154809291906001019190505550895a10151515610cdf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4e6f7420656e6f7567682067617320746f20657865637574652073616665207481526020017f72616e73616374696f6e0000000000000000000000000000000000000000000081525060400191505060405180910390fd5b610cec8e8e8e8e8e613958565b9450841515610d35577fabfd711ecdd15ae3a6b3ad16ff2e9d81aec026a39d16725ee164be4fbf857a7c8360405180826000191660001916815260200191505060405180910390a15b6000881115610efa57885a85030191508782029050600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415610e53573273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515610e4e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f436f756c64206e6f74207061792067617320636f73747320776974682065746881526020017f657200000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b610ef9565b610e5e873283613a55565b1515610ef8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f436f756c64206e6f74207061792067617320636f737473207769746820746f6b81526020017f656e00000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5b5b505050509998505050505050505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fd4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156110285750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561109c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611189576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003600081548092919060010191905055508060045414151561130d5761130c81611a4a565b5b5050565b600060010260055460001916141515611392576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f446f6d61696e20536570657261746f7220616c7265616479207365742100000081525060200191505060405180910390fd5b7f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d4749600102306040516020018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831015156114465780518252602082019150602081019050602083039250611421565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020600581600019169055506114878484613b6e565b611491828261402e565b50505050565b7f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d474960010281565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515611655576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b611662858585855a613958565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611735576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156117895750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156117fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156118ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b13576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6003548111151515611bb3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018110151515611c52576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060048190555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d25576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515611dda576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b600181565b606080600080600354604051908082528060200260200182016040528015611e5e5781602001602082028038833980820191505090505b5092506000915060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515611fb957808383815181101515611f0e57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050611ec9565b82935050505090565b6040805190810160405280601c81526020017f476e6f736973205361666520506572736f6e616c2045646974696f6e0000000081525081565b60065481565b606060008060606000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561211557600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050612070565b826040519080825280602002602001820160405280156121445781602001602082028038833980820191505090505b5090506000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561229f578181848151811015156121f457fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082806001019350506121af565b80935050505090565b6000807f068c3b33cc9bff6dde08209527b62abfb1d4ed576706e2078229623d72374b5b6001028b8b8b6040518082805190602001908083835b60208310151561230757805182526020820191506020810190506020830392506122e2565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390208b8b8b8b8b8b604051602001808b600019166000191681526020018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200189815260200188600019166000191681526020018760028111156123a157fe5b60ff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019a50505050505050505050506040516020818303038152906040526040518082805190602001908083835b602083101515612443578051825260208201915060208101905060208303925061241e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905060197f01000000000000000000000000000000000000000000000000000000000000000260017f0100000000000000000000000000000000000000000000000000000000000000026005548360405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101847effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101836000191660001916815260200182600019166000191681526020019450505050506040516020818303038152906040526040518082805190602001908083835b6020831015156125bf578051825260208201915060208101905060208303925061259a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209150509998505050505050505050565b60008060003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156126ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b5a91506126da878787875a613958565b15156126e557600080fd5b5a8203905080604051602001808281526020019150506040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612770578082015181840152602081019050612755565b50505050905090810190601f16801561279d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60055481565b7f068c3b33cc9bff6dde08209527b62abfb1d4ed576706e2078229623d72374b5b60010281565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156128a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156128f55750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612969576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612a91576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612cba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015612d0e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612d82576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612e6f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015612ec35750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515612f37576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561305f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000600454905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600160035403101515156133b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156134085750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561347c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156135a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060036000815480929190600190039190505550806004541415156137285761372781611a4a565b5b505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000806000809250600090505b60045481101561395157613788858583614265565b91506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515613878576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5369676e6174757265206e6f742070726f7669646564206279206f776e65720081525060200191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16111515613941576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f5369676e61747572657320617265206e6f74206f726465726564206279206f7781526020017f6e6572206164647265737300000000000000000000000000000000000000000081525060400191505060405180910390fd5b8192508080600101915050613773565b5050505050565b6000806000600281111561396857fe5b84600281111561397457fe5b141561398d576139868787878661430e565b9150613a4b565b6001600281111561399a57fe5b8460028111156139a657fe5b14156139be576139b7878685614327565b9150613a4a565b6139c78561433e565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b600060608383604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000808251602084016000896127105a03f16040513d6000823e3d60008114613b515760208114613b595760009450613b63565b829450613b63565b8151158315171594505b505050509392505050565b600080600080600454141515613bec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e657273206861766520616c7265616479206265656e207365747570000081525060200191505060405180910390fd5b84518411151515613c8b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018410151515613d2a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60019250600091505b8451821015613f99578482815181101515613d4a57fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614158015613daa5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515613e1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613f0b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4475706c6963617465206f776e657220616464726573732070726f766964656481525060200191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508092508180600101925050613d33565b6001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508451600381905550836004819055505050505050565b600060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515614142576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6f64756c6573206861766520616c7265616479206265656e20696e6974696181526020017f6c697a656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff16141515614261576141ec82825a614327565b1515614260576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e0081525060200191505060405180910390fd5b5b5050565b6000806000806142758686614350565b809350819450829550505050600187848484604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af11580156142f8573d6000803e3d6000fd5b5050506020604051035193505050509392505050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f09050919050565b60008060008360410260208101860151925060408101860151915060ff604182018701511693505092509250925600a165627a7a7230582040c23eb354c6e039adf686e07858990911a1161d0f33b96fb6d506107fd2b5e30029", + "sourceMap": "483:6332:5:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;483:6332:5;;;;;;;", + "deployedSourceMap": "483:6332:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1980:1545;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1980:1545:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2093:595:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2093:595:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;933:457:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;933:457:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;458:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;458:118:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5613:129:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5613:129:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2712:429:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2712:429:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1182:459;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1182:459:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;5087:399:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5087:399:11;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;488:55:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;488:55:10;;;;;;;;;;;;;;;;;;;;;;;;;;;287:54:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;287:54:11;;;;;;;;;;;;;;;;;;;;;;;;;;;5824:458;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5824:458:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;5824:458:11;;;;;;;;;;;;;;;;;593:60:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;593:60: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;593:60:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1057:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1057:20:5;;;;;;;;;;;;;;;;;;;;;;;3220:738:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3220:738:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;3220:738:10;;;;;;;;;;;;;;;;;6187:626:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6187:626:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4452:523;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4452:523:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;583:30:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;583:30:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;893:109:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;893:109:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1902:474:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1902:474:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4147:751:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4147:751:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5492:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5492:115:11;;;;;;;;;;;;;;;;;;;;;;;3030:783;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3030:783:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;659:40:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;659:40: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;659:40:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1980:1545;2289:12;2317:16;2355:14;2983:16;3048:14;2336:9;2317:28;;2372:93;2391:2;2395:5;2402:4;2408:9;2419;2430:7;2439:8;2449;2459:5;;2372:18;:93::i;:::-;2355:110;;2475:29;2485:6;2493:10;2475:9;:29::i;:::-;2565:5;;:7;;;;;;;;;;;;;2603:9;2590;:22;;2582:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2679:46;2687:2;2691:5;2698:4;2704:9;2715;2679:7;:46::i;:::-;2669:56;;2740:7;2739:8;2735:67;;;2768:23;2784:6;2768:23;;;;;;;;;;;;;;;;;;;;;;;;2735:67;2966:1;2955:8;:12;2951:566;;;3027:7;3014:9;3003:8;:20;3002:32;2983:51;;3076:8;3065;:19;3048:36;;3122:1;3102:22;;:8;:22;;;3098:409;;;3236:9;:14;;:22;3251:6;3236:22;;;;;;;;;;;;;;;;;;;;;;;3228:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3098:409;;;3411:42;3425:8;3435:9;3446:6;3411:13;:42::i;:::-;3403:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3098:409;2951:566;1980:1545;;;;;;;;;;;;;;;:::o;2093:595:11:-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2265:1:11;2256:5;:10;;;;:38;;;;;337:3;2270:24;;:5;:24;;;;2256:38;2248:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2404:1;2387:6;:13;2394:5;2387:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;2379:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2463:6;:23;337:3;2463:23;;;;;;;;;;;;;;;;;;;;;;;;;2447:6;:13;2454:5;2447:13;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2522:5;2496:6;:23;337:3;2496:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2537:10;;:12;;;;;;;;;;;;;2630:10;2617:9;;:23;;2613:68;;;2654:27;2670:10;2654:15;:27::i;:::-;2613:68;2093:595;;:::o;933:457:4:-;1067:1;1048:20;;:15;;:20;;;;1040:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;510:66;1151:25;;1178:4;1140:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1140:43:4;;;1130: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;;;1130:54:4;;;;;;;;;;;;;;;;1112:15;:72;;;;;;;1194:32;1206:7;1215:10;1194:11;:32::i;:::-;1361:22;1374:2;1378:4;1361:12;:22::i;:::-;933:457;;;;:::o;458:118::-;510:66;458:118;;;:::o;5613:129:11:-;5690:4;5734:1;5717:6;:13;5724:5;5717:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;;5710:25;;5613:129;;;:::o;2712:429:10:-;2844:12;2952:1;2929:7;:19;2937:10;2929:19;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;2921:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3088:46;3096:2;3100:5;3107:4;3113:9;3124;3088:7;:46::i;:::-;3078:56;;2712:429;;;;;;:::o;1182:459::-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1348:1:10;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;;;;;;;;;;;;;;;;;;1182:459;:::o;5087:399:11:-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5271:10:11;;5257;:24;;5249:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5405:1;5391:10;:15;;5383:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5469:10;5457:9;:22;;;;5087:399;:::o;626:248:7:-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:7;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;488:55:10:-;539:3;488:55;:::o;287:54:11:-;337:3;287:54;:::o;5824:458::-;5890:9;5915:22;6009:13;6036:20;5954:10;;5940: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;5940:25:11;;;;5915:50;;6025:1;6009:17;;6059:6;:23;337:3;6059:23;;;;;;;;;;;;;;;;;;;;;;;;;6036:46;;6092:162;337:3;6098:31;;:12;:31;;;;6092:162;;;6160:12;6145:5;6151;6145:12;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;6201:6;:20;6208:12;6201:20;;;;;;;;;;;;;;;;;;;;;;;;;6186:35;;6235:8;;;;;;;6092:162;;;6270:5;6263:12;;5824:458;;;;:::o;593:60:5:-;;;;;;;;;;;;;;;;;;;;:::o;1057:20::-;;;;:::o;3220:738:10:-;3287:9;3346:19;3379:21;3579:22;3368:1;3346:23;;3403:7;:25;539:3;3403:25;;;;;;;;;;;;;;;;;;;;;;;;;3379:49;;3438:132;539:3;3444:33;;:13;:33;;;;3438:132;;;3509:7;:22;3517:13;3509:22;;;;;;;;;;;;;;;;;;;;;;;;;3493:38;;3545:14;;;;;;;3438:132;;;3618:11;3604: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;3604:26:10;;;;3579:51;;3688:1;3674:15;;3715:7;:25;539:3;3715:25;;;;;;;;;;;;;;;;;;;;;;;;;3699:41;;3750:180;539:3;3756:33;;:13;:33;;;;3750:180;;;3826:13;3805:5;3811:11;3805:18;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;3869:7;:22;3877:13;3869:22;;;;;;;;;;;;;;;;;;;;;;;;;3853:38;;3905:14;;;;;;;3750:180;;;3946:5;3939:12;;3220:738;;;;:::o;6187:626:5:-;6498:7;6521:18;936:66;6576:16;;6594:2;6598:5;6615:4;6605: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;;;6605:15:5;;;;;;;;;;;;;;;;6622:9;6633;6644:7;6653:8;6663;6673:6;6565:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;6565:115:5;;;6542:148;;;;;;;;;;;;;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;;;6542:148:5;;;;;;;;;;;;;;;;6521:169;;6752:4;6747:10;;6764:1;6759:7;;6768:15;;6785:10;6730:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;6730:66:5;;;6707:99;;;;;;;;;;;;;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;;;6707:99:5;;;;;;;;;;;;;;;;6700:106;;6187:626;;;;;;;;;;;;:::o;4452:523::-;4591:7;4614:16;4804:19;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4633:9:5;4614:28;;4747:46;4755:2;4759:5;4766:4;4772:9;4783;4747:7;:46::i;:::-;4739:55;;;;;;;;4837:9;4826:8;:20;4804:42;;4954:11;4937:29;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;4937:29:5;;;4923: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;4923:45:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;583:30:4;;;;:::o;893:109:5:-;936:66;893:109;;;:::o;1902:474:10:-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2116:1:10;2105:6;2097:20;;;;:59;;;;;539:3;2121:35;;2129:6;2121:35;;;;2097:59;2089:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2241:6;2210:38;;:7;:19;2218:10;2210:19;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;2202:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2325:7;:15;2333:6;2325:15;;;;;;;;;;;;;;;;;;;;;;;;;2303:7;:19;2311:10;2303:19;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2368:1;2350:7;:15;2358:6;2350:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;1902:474;;:::o;4147:751:11:-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4330:1:11;4318:8;:13;;;;:44;;;;;337:3;4335:27;;:8;:27;;;;4318:44;4310:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4475:1;4455:6;:16;4462:8;4455:16;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;4447:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4621:1;4609:8;:13;;;;:44;;;;;337:3;4626:27;;:8;:27;;;;4609:44;4601:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4727:8;4706:29;;:6;:17;4713:9;4706:17;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4698:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4807:6;:16;4814:8;4807:16;;;;;;;;;;;;;;;;;;;;;;;;;4788:6;:16;4795:8;4788:16;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;4853:8;4833:6;:17;4840:9;4833:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;4890:1;4871:6;:16;4878:8;4871:16;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;4147:751;;;:::o;5492:115::-;5561:7;5591:9;;5584:16;;5492:115;:::o;3030:783::-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3256:10:11;3251:1;3238:10;;:14;:28;;3230:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3431:1;3422:5;:10;;;;:38;;;;;337:3;3436:24;;:5;:24;;;;3422:38;3414:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3534:5;3513:26;;:6;:17;3520:9;3513:17;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;3505:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3612:6;:13;3619:5;3612:13;;;;;;;;;;;;;;;;;;;;;;;;;3592:6;:17;3599:9;3592:17;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;3651:1;3635:6;:13;3642:5;3635:13;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;3662:10;;:12;;;;;;;;;;;;;;3755:10;3742:9;;:23;;3738:68;;;3779:27;3795:10;3779:15;:27::i;:::-;3738:68;3030:783;;;:::o;659:40:5:-;;;;;;;;;;;;;;;;;;;;:::o;4981:606::-;5130:17;5170:20;5200:9;5158:1;5130:30;;5270:1;5266:5;;5261:320;5277:9;;5273:1;:13;5261:320;;;5322:33;5333:6;5341:10;5353:1;5322:10;:33::i;:::-;5307:48;;5401:1;5377:6;:20;5384:12;5377:20;;;;;;;;;;;;;;;;;;;;;;;;;:25;;;;5369:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5475:9;5460:24;;:12;:24;;;5452:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5558:12;5546:24;;5288:3;;;;;;;5261:320;;;4981:606;;;;;:::o;390:548:3:-;521:12;792:19;566;553:32;;;;;;;;:9;:32;;;;;;;;;549:383;;;609:35;621:2;625:5;632:4;638:5;609:11;:35::i;:::-;599:45;;549:383;;;676:27;663:40;;;;;;;;:9;:40;;;;;;;;;659:273;;;727:36;747:2;751:4;757:5;727:19;:36::i;:::-;717:46;;659:273;;;814:19;828:4;814:13;:19::i;:::-;792:41;;872:1;857:11;:16;;;;847:26;;892:29;909:11;892:29;;;;;;;;;;;;;;;;;;;;;;659:273;549:383;390:548;;;;;;;;:::o;430:752:15:-;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:15;;;;;;;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:15;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;643:1210:11:-;1249:20;1302:9;1401:13;879:1;866:9;;:14;858:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1022:7;:14;1008:10;:28;;1000:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1160:1;1146:10;:15;;1138:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;337:3;1249:38;;1314:1;1302:13;;1297:433;1321:7;:14;1317:1;:18;1297:433;;;1417:7;1425:1;1417:10;;;;;;;;;;;;;;;;;;1401:26;;1458:1;1449:5;:10;;;;:38;;;;;337:3;1463:24;;:5;:24;;;;1449:38;1441:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1605:1;1588:6;:13;1595:5;1588:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;1580:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1680:5;1657:6;:20;1664:12;1657:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;1714:5;1699:20;;1337:3;;;;;;;1297:433;;;337:3;1739:6;:20;1746:12;1739:20;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;1800:7;:14;1787:10;:27;;;;1836:10;1824:9;:22;;;;643:1210;;;;;:::o;606:409:10:-;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;477:330:17:-;629:7;653;670:9;689;720:37;735:16;753:3;720:14;:37::i;:::-;708:49;;;;;;;;;;;;774:26;784:6;792:1;795;798;774:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;774:26:17;;;;;;;;767:33;;477:330;;;;;;;;:::o;944:309:3:-;1053:12;1235:1;1232;1225:4;1219:11;1212:4;1206;1202:15;1195:5;1191:2;1184:5;1179:58;1168:69;;1154:93;;;;;;:::o;1259:303::-;1361:12;1544:1;1541;1534:4;1528:11;1521:4;1515;1511:15;1507:2;1500:5;1487:59;1476:70;;1462:94;;;;;:::o;1568:261::-;1637:19;1807:4;1801:11;1794:4;1788;1784:15;1781:1;1774:39;1759:54;;1745:78;;;:::o;984:914:17:-;1086:7;1095:9;1106;1406:3;1400:4;1396:14;1468:4;1454:12;1450:23;1438:10;1434:40;1428:47;1423:52;;1533:4;1519:12;1515:23;1503:10;1499:40;1493:47;1488:52;;1877:4;1868;1854:12;1850:23;1838:10;1834:40;1828:47;1824:58;1819:63;;1362:530;;;;;;:::o", + "source": "pragma solidity 0.4.24;\nimport \"./GnosisSafe.sol\";\nimport \"./MasterCopy.sol\";\nimport \"./SignatureValidator.sol\";\nimport \"./SecuredTokenTransfer.sol\";\n\n\n/// @title Gnosis Safe Personal Edition - 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 GnosisSafePersonalEdition is MasterCopy, GnosisSafe, SignatureValidator, SecuredTokenTransfer {\n\n string public constant NAME = \"Gnosis Safe Personal Edition\";\n string public constant VERSION = \"0.0.1\";\n //keccak256(\n // \"PersonalSafeTx(address to,uint256 value,bytes data,uint8 operation,uint256 safeTxGas,uint256 dataGas,uint256 gasPrice,address gasToken,uint256 nonce)\"\n //);\n bytes32 public constant SAFE_TX_TYPEHASH = 0x068c3b33cc9bff6dde08209527b62abfb1d4ed576706e2078229623d72374b5b;\n \n event ExecutionFailed(bytes32 txHash);\n\n uint256 public nonce;\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 signatures Packed signature data ({bytes32 r}{bytes32 s}{uint8 v})\n function execTransactionAndPaySubmitter(\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 bytes signatures\n )\n public\n returns (bool success)\n {\n uint256 startGas = gasleft();\n bytes32 txHash = getTransactionHash(to, value, data, operation, safeTxGas, dataGas, gasPrice, gasToken, nonce);\n checkHash(txHash, signatures);\n // Increase nonce and execute transaction.\n nonce++;\n require(gasleft() >= safeTxGas, \"Not enough gas to execute safe transaction\");\n success = execute(to, value, data, operation, safeTxGas);\n if (!success) {\n emit ExecutionFailed(txHash);\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 uint256 gasCosts = (startGas - gasleft()) + dataGas;\n uint256 amount = gasCosts * gasPrice;\n if (gasToken == address(0)) {\n // solium-disable-next-line security/no-tx-origin,security/no-send\n require(tx.origin.send(amount), \"Could not pay gas costs with ether\");\n } else {\n // solium-disable-next-line security/no-tx-origin\n require(transferToken(gasToken, tx.origin, amount), \"Could not pay gas costs with token\");\n }\n } \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 `execTransactionAndPaySubmitter`\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 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 function checkHash(bytes32 txHash, 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 // Validate threshold is reached.\n for (i = 0; i < threshold; i++) {\n currentOwner = recoverKey(txHash, signatures, i);\n require(owners[currentOwner] != 0, \"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 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 _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 uint256 _nonce\n )\n public\n view\n returns (bytes32)\n {\n bytes32 safeTxHash = keccak256(\n abi.encode(SAFE_TX_TYPEHASH, to, value, keccak256(data), operation, safeTxGas, dataGas, gasPrice, gasToken, _nonce)\n );\n return keccak256(\n abi.encodePacked(byte(0x19), byte(1), domainSeperator, safeTxHash)\n );\n }\n}\n", "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafePersonalEdition.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafePersonalEdition.sol", "exportedSymbols": { "GnosisSafePersonalEdition": [ - 369 + 529 ] }, - "id": 370, + "id": 530, "nodeType": "SourceUnit", "nodes": [ { - "id": 65, + "id": 210, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:3" + "src": "0:23:5" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafe.sol", "file": "./GnosisSafe.sol", - "id": 66, + "id": 211, "nodeType": "ImportDirective", - "scope": 370, - "sourceUnit": 64, - "src": "24:26:3", + "scope": 530, + "sourceUnit": 209, + "src": "24:26:5", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol", "file": "./MasterCopy.sol", - "id": 67, + "id": 212, "nodeType": "ImportDirective", - "scope": 370, - "sourceUnit": 633, - "src": "51:26:3", + "scope": 530, + "sourceUnit": 814, + "src": "51:26:5", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SignatureValidator.sol", "file": "./SignatureValidator.sol", - "id": 68, + "id": 213, "nodeType": "ImportDirective", - "scope": 370, - "sourceUnit": 3122, - "src": "78:34:3", + "scope": 530, + "sourceUnit": 1822, + "src": "78:34:5", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SecuredTokenTransfer.sol", "file": "./SecuredTokenTransfer.sol", - "id": 69, + "id": 214, "nodeType": "ImportDirective", - "scope": 370, - "sourceUnit": 3049, - "src": "113:36:3", + "scope": 530, + "sourceUnit": 1749, + "src": "113:36:5", "symbolAliases": [], "unitAlias": "" }, @@ -550,108 +592,112 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 70, + "id": 215, "name": "MasterCopy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 632, - "src": "521:10:3", + "referencedDeclaration": 813, + "src": "521:10:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_MasterCopy_$632", + "typeIdentifier": "t_contract$_MasterCopy_$813", "typeString": "contract MasterCopy" } }, - "id": 71, + "id": 216, "nodeType": "InheritanceSpecifier", - "src": "521:10:3" + "src": "521:10:5" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 72, + "id": 217, "name": "GnosisSafe", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 63, - "src": "533:10:3", + "referencedDeclaration": 208, + "src": "533:10:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_GnosisSafe_$63", + "typeIdentifier": "t_contract$_GnosisSafe_$208", "typeString": "contract GnosisSafe" } }, - "id": 73, + "id": 218, "nodeType": "InheritanceSpecifier", - "src": "533:10:3" + "src": "533:10:5" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 74, + "id": 219, "name": "SignatureValidator", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3121, - "src": "545:18:3", + "referencedDeclaration": 1821, + "src": "545:18:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_SignatureValidator_$3121", + "typeIdentifier": "t_contract$_SignatureValidator_$1821", "typeString": "contract SignatureValidator" } }, - "id": 75, + "id": 220, "nodeType": "InheritanceSpecifier", - "src": "545:18:3" + "src": "545:18:5" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 76, + "id": 221, "name": "SecuredTokenTransfer", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3048, - "src": "565:20:3", + "referencedDeclaration": 1748, + "src": "565:20:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_SecuredTokenTransfer_$3048", + "typeIdentifier": "t_contract$_SecuredTokenTransfer_$1748", "typeString": "contract SecuredTokenTransfer" } }, - "id": 77, + "id": 222, "nodeType": "InheritanceSpecifier", - "src": "565:20:3" + "src": "565:20:5" } ], "contractDependencies": [ - 63, - 632, - 2232, - 2888, - 3048, - 3065, - 3121 + 208, + 153, + 37, + 813, + 1180, + 1588, + 1748, + 1765, + 1821 ], "contractKind": "contract", "documentation": "@title Gnosis Safe Personal Edition - 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": 369, + "id": 529, "linearizedBaseContracts": [ - 369, - 3048, - 3121, - 63, - 2888, - 2232, - 632, - 3065 + 529, + 1748, + 1821, + 208, + 1588, + 1180, + 153, + 37, + 813, + 1765 ], "name": "GnosisSafePersonalEdition", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 80, + "id": 225, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 369, - "src": "593:60:3", + "scope": 529, + "src": "593:60:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -659,10 +705,10 @@ "typeString": "string" }, "typeName": { - "id": 78, + "id": 223, "name": "string", "nodeType": "ElementaryTypeName", - "src": "593:6:3", + "src": "593:6:5", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -671,14 +717,14 @@ "value": { "argumentTypes": null, "hexValue": "476e6f736973205361666520506572736f6e616c2045646974696f6e", - "id": 79, + "id": 224, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "623:30:3", + "src": "623:30:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b657d2895d137bf089ce1df776b732639b1ebc2a3aec3bd837e225e9e0965154", @@ -690,11 +736,11 @@ }, { "constant": true, - "id": 83, + "id": 228, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 369, - "src": "659:40:3", + "scope": 529, + "src": "659:40:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -702,10 +748,10 @@ "typeString": "string" }, "typeName": { - "id": 81, + "id": 226, "name": "string", "nodeType": "ElementaryTypeName", - "src": "659:6:3", + "src": "659:6:5", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -714,14 +760,14 @@ "value": { "argumentTypes": null, "hexValue": "302e302e31", - "id": 82, + "id": 227, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "692:7:3", + "src": "692:7:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", @@ -731,24 +777,67 @@ }, "visibility": "public" }, + { + "constant": true, + "id": 231, + "name": "SAFE_TX_TYPEHASH", + "nodeType": "VariableDeclaration", + "scope": 529, + "src": "893:109:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 229, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "893:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307830363863336233336363396266663664646530383230393532376236326162666231643465643537363730366532303738323239363233643732333734623562", + "id": 230, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "936:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2961644280108194065159135409573964622771032650926095796711509007169446431579_by_1", + "typeString": "int_const 2961...(68 digits omitted)...1579" + }, + "value": "0x068c3b33cc9bff6dde08209527b62abfb1d4ed576706e2078229623d72374b5b" + }, + "visibility": "public" + }, { "anonymous": false, "documentation": null, - "id": 87, + "id": 235, "name": "ExecutionFailed", "nodeType": "EventDefinition", "parameters": { - "id": 86, + "id": 234, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 85, + "id": 233, "indexed": false, "name": "txHash", "nodeType": "VariableDeclaration", - "scope": 87, - "src": "732:14:3", + "scope": 235, + "src": "1035:14:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -756,10 +845,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 84, + "id": 232, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "732:7:3", + "src": "1035:7:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -769,17 +858,17 @@ "visibility": "internal" } ], - "src": "731:16:3" + "src": "1034:16:5" }, - "src": "710:38:3" + "src": "1013:38:5" }, { "constant": false, - "id": 89, + "id": 237, "name": "nonce", "nodeType": "VariableDeclaration", - "scope": 369, - "src": "754:20:3", + "scope": 529, + "src": "1057:20:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -787,10 +876,10 @@ "typeString": "uint256" }, "typeName": { - "id": 88, + "id": 236, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "754:7:3", + "src": "1057:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -801,22 +890,22 @@ }, { "body": { - "id": 213, + "id": 361, "nodeType": "Block", - "src": "2004:1218:3", + "src": "2307:1218:5", "statements": [ { "assignments": [ - 113 + 261 ], "declarations": [ { "constant": false, - "id": 113, + "id": 261, "name": "startGas", "nodeType": "VariableDeclaration", - "scope": 214, - "src": "2014:16:3", + "scope": 362, + "src": "2317:16:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -824,10 +913,10 @@ "typeString": "uint256" }, "typeName": { - "id": 112, + "id": 260, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2014:7:3", + "src": "2317:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -837,24 +926,24 @@ "visibility": "internal" } ], - "id": 116, + "id": 264, "initialValue": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 114, + "id": 262, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4029, - "src": "2033:7:3", + "referencedDeclaration": 3821, + "src": "2336:7:5", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 115, + "id": 263, "isConstant": false, "isLValue": false, "isPure": false, @@ -862,27 +951,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2033:9:3", + "src": "2336:9:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "2014:28:3" + "src": "2317:28:5" }, { "assignments": [ - 118 + 266 ], "declarations": [ { "constant": false, - "id": 118, + "id": 266, "name": "txHash", "nodeType": "VariableDeclaration", - "scope": 214, - "src": "2052:14:3", + "scope": 362, + "src": "2355:14:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -890,10 +979,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 117, + "id": 265, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2052:7:3", + "src": "2355:7:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -903,18 +992,18 @@ "visibility": "internal" } ], - "id": 130, + "id": 278, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 120, + "id": 268, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "2088:2:3", + "referencedDeclaration": 239, + "src": "2391:2:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -922,12 +1011,12 @@ }, { "argumentTypes": null, - "id": 121, + "id": 269, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 93, - "src": "2092:5:3", + "referencedDeclaration": 241, + "src": "2395:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -935,12 +1024,12 @@ }, { "argumentTypes": null, - "id": 122, + "id": 270, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 95, - "src": "2099:4:3", + "referencedDeclaration": 243, + "src": "2402:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -948,12 +1037,12 @@ }, { "argumentTypes": null, - "id": 123, + "id": 271, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 97, - "src": "2105:9:3", + "referencedDeclaration": 245, + "src": "2408:9:5", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" @@ -961,12 +1050,12 @@ }, { "argumentTypes": null, - "id": 124, + "id": 272, "name": "safeTxGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 99, - "src": "2116:9:3", + "referencedDeclaration": 247, + "src": "2419:9:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -974,12 +1063,12 @@ }, { "argumentTypes": null, - "id": 125, + "id": 273, "name": "dataGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "2127:7:3", + "referencedDeclaration": 249, + "src": "2430:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -987,12 +1076,12 @@ }, { "argumentTypes": null, - "id": 126, + "id": 274, "name": "gasPrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 103, - "src": "2136:8:3", + "referencedDeclaration": 251, + "src": "2439:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1000,12 +1089,12 @@ }, { "argumentTypes": null, - "id": 127, + "id": 275, "name": "gasToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 105, - "src": "2146:8:3", + "referencedDeclaration": 253, + "src": "2449:8:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1013,12 +1102,12 @@ }, { "argumentTypes": null, - "id": 128, + "id": 276, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 89, - "src": "2156:5:3", + "referencedDeclaration": 237, + "src": "2459:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1064,18 +1153,18 @@ "typeString": "uint256" } ], - "id": 119, + "id": 267, "name": "getTransactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "2069:18:3", + "referencedDeclaration": 528, + "src": "2372:18:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$returns$_t_bytes32_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256,uint256,uint256,address,uint256) view returns (bytes32)" } }, - "id": 129, + "id": 277, "isConstant": false, "isLValue": false, "isPure": false, @@ -1083,14 +1172,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2069:93:3", + "src": "2372:93:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "2052:110:3" + "src": "2355:110:5" }, { "expression": { @@ -1098,12 +1187,12 @@ "arguments": [ { "argumentTypes": null, - "id": 132, + "id": 280, "name": "txHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 118, - "src": "2182:6:3", + "referencedDeclaration": 266, + "src": "2485:6:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1111,12 +1200,12 @@ }, { "argumentTypes": null, - "id": 133, + "id": 281, "name": "signatures", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 107, - "src": "2190:10:3", + "referencedDeclaration": 255, + "src": "2493:10:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -1134,18 +1223,18 @@ "typeString": "bytes memory" } ], - "id": 131, + "id": 279, "name": "checkHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 322, - "src": "2172:9:3", + "referencedDeclaration": 470, + "src": "2475:9:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes32,bytes memory) view" } }, - "id": 134, + "id": 282, "isConstant": false, "isLValue": false, "isPure": false, @@ -1153,20 +1242,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2172:29:3", + "src": "2475:29:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 135, + "id": 283, "nodeType": "ExpressionStatement", - "src": "2172:29:3" + "src": "2475:29:5" }, { "expression": { "argumentTypes": null, - "id": 137, + "id": 285, "isConstant": false, "isLValue": false, "isPure": false, @@ -1174,15 +1263,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "2262:7:3", + "src": "2565:7:5", "subExpression": { "argumentTypes": null, - "id": 136, + "id": 284, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 89, - "src": "2262:5:3", + "referencedDeclaration": 237, + "src": "2565:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1193,9 +1282,9 @@ "typeString": "uint256" } }, - "id": 138, + "id": 286, "nodeType": "ExpressionStatement", - "src": "2262:7:3" + "src": "2565:7:5" }, { "expression": { @@ -1207,7 +1296,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 143, + "id": 291, "isConstant": false, "isLValue": false, "isPure": false, @@ -1217,18 +1306,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 140, + "id": 288, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4029, - "src": "2287:7:3", + "referencedDeclaration": 3821, + "src": "2590:7:5", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 141, + "id": 289, "isConstant": false, "isLValue": false, "isPure": false, @@ -1236,7 +1325,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2287:9:3", + "src": "2590:9:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1246,18 +1335,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 142, + "id": 290, "name": "safeTxGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 99, - "src": "2300:9:3", + "referencedDeclaration": 247, + "src": "2603:9:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2287:22:3", + "src": "2590:22:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1266,14 +1355,14 @@ { "argumentTypes": null, "hexValue": "4e6f7420656e6f7567682067617320746f20657865637574652073616665207472616e73616374696f6e", - "id": 144, + "id": 292, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2311:44:3", + "src": "2614:44:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e7ccb05a0f2c66d12451cdfc6bbab488c38ab704d0f6af9ad18763542e9e5f18", @@ -1293,21 +1382,21 @@ "typeString": "literal_string \"Not enough gas to execute safe transaction\"" } ], - "id": 139, + "id": 287, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, - "src": "2279:7:3", + "referencedDeclaration": 3832, + "src": "2582:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 145, + "id": 293, "isConstant": false, "isLValue": false, "isPure": false, @@ -1315,32 +1404,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2279:77:3", + "src": "2582:77:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 146, + "id": 294, "nodeType": "ExpressionStatement", - "src": "2279:77:3" + "src": "2582:77:5" }, { "expression": { "argumentTypes": null, - "id": 155, + "id": 303, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 147, + "id": 295, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 110, - "src": "2366:7:3", + "referencedDeclaration": 258, + "src": "2669:7:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1353,12 +1442,12 @@ "arguments": [ { "argumentTypes": null, - "id": 149, + "id": 297, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "2384:2:3", + "referencedDeclaration": 239, + "src": "2687:2:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1366,12 +1455,12 @@ }, { "argumentTypes": null, - "id": 150, + "id": 298, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 93, - "src": "2388:5:3", + "referencedDeclaration": 241, + "src": "2691:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1379,12 +1468,12 @@ }, { "argumentTypes": null, - "id": 151, + "id": 299, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 95, - "src": "2395:4:3", + "referencedDeclaration": 243, + "src": "2698:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -1392,12 +1481,12 @@ }, { "argumentTypes": null, - "id": 152, + "id": 300, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 97, - "src": "2401:9:3", + "referencedDeclaration": 245, + "src": "2704:9:5", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" @@ -1405,12 +1494,12 @@ }, { "argumentTypes": null, - "id": 153, + "id": 301, "name": "safeTxGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 99, - "src": "2412:9:3", + "referencedDeclaration": 247, + "src": "2715:9:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1440,18 +1529,18 @@ "typeString": "uint256" } ], - "id": 148, + "id": 296, "name": "execute", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2121, - "src": "2376:7:3", + "referencedDeclaration": 115, + "src": "2679:7:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)" } }, - "id": 154, + "id": 302, "isConstant": false, "isLValue": false, "isPure": false, @@ -1459,26 +1548,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2376:46:3", + "src": "2679:46:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2366:56:3", + "src": "2669:56:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 156, + "id": 304, "nodeType": "ExpressionStatement", - "src": "2366:56:3" + "src": "2669:56:5" }, { "condition": { "argumentTypes": null, - "id": 158, + "id": 306, "isConstant": false, "isLValue": false, "isPure": false, @@ -1486,15 +1575,15 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2436:8:3", + "src": "2739:8:5", "subExpression": { "argumentTypes": null, - "id": 157, + "id": 305, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 110, - "src": "2437:7:3", + "referencedDeclaration": 258, + "src": "2740:7:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1506,13 +1595,13 @@ } }, "falseBody": null, - "id": 164, + "id": 312, "nodeType": "IfStatement", - "src": "2432:67:3", + "src": "2735:67:5", "trueBody": { - "id": 163, + "id": 311, "nodeType": "Block", - "src": "2446:53:3", + "src": "2749:53:5", "statements": [ { "eventCall": { @@ -1520,12 +1609,12 @@ "arguments": [ { "argumentTypes": null, - "id": 160, + "id": 308, "name": "txHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 118, - "src": "2481:6:3", + "referencedDeclaration": 266, + "src": "2784:6:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1539,18 +1628,18 @@ "typeString": "bytes32" } ], - "id": 159, + "id": 307, "name": "ExecutionFailed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 87, - "src": "2465:15:3", + "referencedDeclaration": 235, + "src": "2768:15:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$returns$__$", "typeString": "function (bytes32)" } }, - "id": 161, + "id": 309, "isConstant": false, "isLValue": false, "isPure": false, @@ -1558,15 +1647,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2465:23:3", + "src": "2768:23:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 162, + "id": 310, "nodeType": "EmitStatement", - "src": "2460:28:3" + "src": "2763:28:5" } ] } @@ -1578,19 +1667,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 167, + "id": 315, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 165, + "id": 313, "name": "gasPrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 103, - "src": "2652:8:3", + "referencedDeclaration": 251, + "src": "2955:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1601,14 +1690,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 166, + "id": 314, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2663:1:3", + "src": "2966:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1616,33 +1705,33 @@ }, "value": "0" }, - "src": "2652:12:3", + "src": "2955:12:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 212, + "id": 360, "nodeType": "IfStatement", - "src": "2648:566:3", + "src": "2951:566:5", "trueBody": { - "id": 211, + "id": 359, "nodeType": "Block", - "src": "2666:548:3", + "src": "2969:548:5", "statements": [ { "assignments": [ - 169 + 317 ], "declarations": [ { "constant": false, - "id": 169, + "id": 317, "name": "gasCosts", "nodeType": "VariableDeclaration", - "scope": 214, - "src": "2680:16:3", + "scope": 362, + "src": "2983:16:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1650,10 +1739,10 @@ "typeString": "uint256" }, "typeName": { - "id": 168, + "id": 316, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2680:7:3", + "src": "2983:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1663,14 +1752,14 @@ "visibility": "internal" } ], - "id": 177, + "id": 325, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 176, + "id": 324, "isConstant": false, "isLValue": false, "isPure": false, @@ -1684,19 +1773,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 173, + "id": 321, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 170, + "id": 318, "name": "startGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 113, - "src": "2700:8:3", + "referencedDeclaration": 261, + "src": "3003:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1709,18 +1798,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 171, + "id": 319, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4029, - "src": "2711:7:3", + "referencedDeclaration": 3821, + "src": "3014:7:5", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 172, + "id": 320, "isConstant": false, "isLValue": false, "isPure": false, @@ -1728,27 +1817,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2711:9:3", + "src": "3014:9:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2700:20:3", + "src": "3003:20:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 174, + "id": 322, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2699:22:3", + "src": "3002:22:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1758,38 +1847,38 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 175, + "id": 323, "name": "dataGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "2724:7:3", + "referencedDeclaration": 249, + "src": "3027:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2699:32:3", + "src": "3002:32:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "2680:51:3" + "src": "2983:51:5" }, { "assignments": [ - 179 + 327 ], "declarations": [ { "constant": false, - "id": 179, + "id": 327, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 214, - "src": "2745:14:3", + "scope": 362, + "src": "3048:14:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1797,10 +1886,10 @@ "typeString": "uint256" }, "typeName": { - "id": 178, + "id": 326, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2745:7:3", + "src": "3048:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1810,26 +1899,26 @@ "visibility": "internal" } ], - "id": 183, + "id": 331, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 182, + "id": 330, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 180, + "id": 328, "name": "gasCosts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "2762:8:3", + "referencedDeclaration": 317, + "src": "3065:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1839,25 +1928,25 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 181, + "id": 329, "name": "gasPrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 103, - "src": "2773:8:3", + "referencedDeclaration": 251, + "src": "3076:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2762:19:3", + "src": "3065:19:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "2745:36:3" + "src": "3048:36:5" }, { "condition": { @@ -1866,19 +1955,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 188, + "id": 336, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 184, + "id": 332, "name": "gasToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 105, - "src": "2799:8:3", + "referencedDeclaration": 253, + "src": "3102:8:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1892,14 +1981,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 186, + "id": 334, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2819:1:3", + "src": "3122:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1915,20 +2004,20 @@ "typeString": "int_const 0" } ], - "id": 185, + "id": 333, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2811:7:3", + "src": "3114:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 187, + "id": 335, "isConstant": false, "isLValue": false, "isPure": true, @@ -1936,22 +2025,22 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2811:10:3", + "src": "3114:10:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2799:22:3", + "src": "3102:22:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 209, + "id": 357, "nodeType": "Block", - "src": "3015:189:3", + "src": "3318:189:5", "statements": [ { "expression": { @@ -1962,12 +2051,12 @@ "arguments": [ { "argumentTypes": null, - "id": 201, + "id": 349, "name": "gasToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 105, - "src": "3122:8:3", + "referencedDeclaration": 253, + "src": "3425:8:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1977,18 +2066,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 202, + "id": 350, "name": "tx", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4048, - "src": "3132:2:3", + "referencedDeclaration": 3840, + "src": "3435:2:5", "typeDescriptions": { "typeIdentifier": "t_magic_transaction", "typeString": "tx" } }, - "id": 203, + "id": 351, "isConstant": false, "isLValue": false, "isPure": false, @@ -1996,7 +2085,7 @@ "memberName": "origin", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3132:9:3", + "src": "3435:9:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2004,12 +2093,12 @@ }, { "argumentTypes": null, - "id": 204, + "id": 352, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 179, - "src": "3143:6:3", + "referencedDeclaration": 327, + "src": "3446:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2031,18 +2120,18 @@ "typeString": "uint256" } ], - "id": 200, + "id": 348, "name": "transferToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3047, - "src": "3108:13:3", + "referencedDeclaration": 1747, + "src": "3411:13:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) returns (bool)" } }, - "id": 205, + "id": 353, "isConstant": false, "isLValue": false, "isPure": false, @@ -2050,7 +2139,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3108:42:3", + "src": "3411:42:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2059,14 +2148,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f74207061792067617320636f737473207769746820746f6b656e", - "id": 206, + "id": 354, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3152:36:3", + "src": "3455:36:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_8560a13547eca5648355c8db1a9f8653b6f657d31d476c36bca25e47b45b08f4", @@ -2086,21 +2175,21 @@ "typeString": "literal_string \"Could not pay gas costs with token\"" } ], - "id": 199, + "id": 347, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, - "src": "3100:7:3", + "referencedDeclaration": 3832, + "src": "3403:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 207, + "id": 355, "isConstant": false, "isLValue": false, "isPure": false, @@ -2108,25 +2197,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3100:89:3", + "src": "3403:89:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 208, + "id": 356, "nodeType": "ExpressionStatement", - "src": "3100:89:3" + "src": "3403:89:5" } ] }, - "id": 210, + "id": 358, "nodeType": "IfStatement", - "src": "2795:409:3", + "src": "3098:409:5", "trueBody": { - "id": 198, + "id": 346, "nodeType": "Block", - "src": "2823:186:3", + "src": "3126:186:5", "statements": [ { "expression": { @@ -2137,12 +2226,12 @@ "arguments": [ { "argumentTypes": null, - "id": 193, + "id": 341, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 179, - "src": "2948:6:3", + "referencedDeclaration": 327, + "src": "3251:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2160,18 +2249,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 190, + "id": 338, "name": "tx", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4048, - "src": "2933:2:3", + "referencedDeclaration": 3840, + "src": "3236:2:5", "typeDescriptions": { "typeIdentifier": "t_magic_transaction", "typeString": "tx" } }, - "id": 191, + "id": 339, "isConstant": false, "isLValue": false, "isPure": false, @@ -2179,13 +2268,13 @@ "memberName": "origin", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2933:9:3", + "src": "3236:9:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 192, + "id": 340, "isConstant": false, "isLValue": false, "isPure": false, @@ -2193,13 +2282,13 @@ "memberName": "send", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2933:14:3", + "src": "3236:14:5", "typeDescriptions": { "typeIdentifier": "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) returns (bool)" } }, - "id": 194, + "id": 342, "isConstant": false, "isLValue": false, "isPure": false, @@ -2207,7 +2296,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2933:22:3", + "src": "3236:22:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2216,14 +2305,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f74207061792067617320636f7374732077697468206574686572", - "id": 195, + "id": 343, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2957:36:3", + "src": "3260:36:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e2a11e15f7be1214c1340779ad55027af8aa33aee6cb521776a28a0a44aea377", @@ -2243,21 +2332,21 @@ "typeString": "literal_string \"Could not pay gas costs with ether\"" } ], - "id": 189, + "id": 337, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, - "src": "2925:7:3", + "referencedDeclaration": 3832, + "src": "3228:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 196, + "id": 344, "isConstant": false, "isLValue": false, "isPure": false, @@ -2265,15 +2354,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2925:69:3", + "src": "3228:69:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 197, + "id": 345, "nodeType": "ExpressionStatement", - "src": "2925:69:3" + "src": "3228:69:5" } ] } @@ -2284,7 +2373,7 @@ ] }, "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 signatures Packed signature data ({bytes32 r}{bytes32 s}{uint8 v})", - "id": 214, + "id": 362, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2292,16 +2381,16 @@ "name": "execTransactionAndPaySubmitter", "nodeType": "FunctionDefinition", "parameters": { - "id": 108, + "id": 256, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 91, + "id": 239, "name": "to", "nodeType": "VariableDeclaration", - "scope": 214, - "src": "1726:10:3", + "scope": 362, + "src": "2029:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2309,10 +2398,10 @@ "typeString": "address" }, "typeName": { - "id": 90, + "id": 238, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1726:7:3", + "src": "2029:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2323,11 +2412,11 @@ }, { "constant": false, - "id": 93, + "id": 241, "name": "value", "nodeType": "VariableDeclaration", - "scope": 214, - "src": "1747:13:3", + "scope": 362, + "src": "2050:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2335,10 +2424,10 @@ "typeString": "uint256" }, "typeName": { - "id": 92, + "id": 240, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1747:7:3", + "src": "2050:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2349,11 +2438,11 @@ }, { "constant": false, - "id": 95, + "id": 243, "name": "data", "nodeType": "VariableDeclaration", - "scope": 214, - "src": "1771:10:3", + "scope": 362, + "src": "2074:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2361,10 +2450,10 @@ "typeString": "bytes" }, "typeName": { - "id": 94, + "id": 242, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1771:5:3", + "src": "2074:5:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2375,11 +2464,11 @@ }, { "constant": false, - "id": 97, + "id": 245, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 214, - "src": "1792:24:3", + "scope": 362, + "src": "2095:24:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2388,11 +2477,11 @@ }, "typeName": { "contractScope": null, - "id": 96, + "id": 244, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 29, - "src": "1792:14:3", + "src": "2095:14:5", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" @@ -2403,11 +2492,11 @@ }, { "constant": false, - "id": 99, + "id": 247, "name": "safeTxGas", "nodeType": "VariableDeclaration", - "scope": 214, - "src": "1827:17:3", + "scope": 362, + "src": "2130:17:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2415,10 +2504,10 @@ "typeString": "uint256" }, "typeName": { - "id": 98, + "id": 246, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1827:7:3", + "src": "2130:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2429,11 +2518,11 @@ }, { "constant": false, - "id": 101, + "id": 249, "name": "dataGas", "nodeType": "VariableDeclaration", - "scope": 214, - "src": "1854:15:3", + "scope": 362, + "src": "2157:15:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2441,10 +2530,10 @@ "typeString": "uint256" }, "typeName": { - "id": 100, + "id": 248, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1854:7:3", + "src": "2157:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2455,11 +2544,11 @@ }, { "constant": false, - "id": 103, + "id": 251, "name": "gasPrice", "nodeType": "VariableDeclaration", - "scope": 214, - "src": "1879:16:3", + "scope": 362, + "src": "2182:16:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2467,10 +2556,10 @@ "typeString": "uint256" }, "typeName": { - "id": 102, + "id": 250, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1879:7:3", + "src": "2182:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2481,11 +2570,11 @@ }, { "constant": false, - "id": 105, + "id": 253, "name": "gasToken", "nodeType": "VariableDeclaration", - "scope": 214, - "src": "1905:16:3", + "scope": 362, + "src": "2208:16:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2493,10 +2582,10 @@ "typeString": "address" }, "typeName": { - "id": 104, + "id": 252, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1905:7:3", + "src": "2208:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2507,11 +2596,11 @@ }, { "constant": false, - "id": 107, + "id": 255, "name": "signatures", "nodeType": "VariableDeclaration", - "scope": 214, - "src": "1931:16:3", + "scope": 362, + "src": "2234:16:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2519,10 +2608,10 @@ "typeString": "bytes" }, "typeName": { - "id": 106, + "id": 254, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1931:5:3", + "src": "2234:5:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2532,20 +2621,20 @@ "visibility": "internal" } ], - "src": "1716:237:3" + "src": "2019:237:5" }, "payable": false, "returnParameters": { - "id": 111, + "id": 259, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 110, + "id": 258, "name": "success", "nodeType": "VariableDeclaration", - "scope": 214, - "src": "1986:12:3", + "scope": 362, + "src": "2289:12:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2553,10 +2642,10 @@ "typeString": "bool" }, "typeName": { - "id": 109, + "id": 257, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1986:4:3", + "src": "2289:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2566,32 +2655,32 @@ "visibility": "internal" } ], - "src": "1985:14:3" + "src": "2288:14:5" }, - "scope": 369, - "src": "1677:1545:3", + "scope": 529, + "src": "1980:1545:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 261, + "id": 409, "nodeType": "Block", - "src": "4301:371:3", + "src": "4604:371:5", "statements": [ { "assignments": [ - 230 + 378 ], "declarations": [ { "constant": false, - "id": 230, + "id": 378, "name": "startGas", "nodeType": "VariableDeclaration", - "scope": 262, - "src": "4311:16:3", + "scope": 410, + "src": "4614:16:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2599,10 +2688,10 @@ "typeString": "uint256" }, "typeName": { - "id": 229, + "id": 377, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4311:7:3", + "src": "4614:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2612,24 +2701,24 @@ "visibility": "internal" } ], - "id": 233, + "id": 381, "initialValue": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 231, + "id": 379, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4029, - "src": "4330:7:3", + "referencedDeclaration": 3821, + "src": "4633:7:5", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 232, + "id": 380, "isConstant": false, "isLValue": false, "isPure": false, @@ -2637,14 +2726,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4330:9:3", + "src": "4633:9:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "4311:28:3" + "src": "4614:28:5" }, { "expression": { @@ -2655,12 +2744,12 @@ "arguments": [ { "argumentTypes": null, - "id": 236, + "id": 384, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 216, - "src": "4452:2:3", + "referencedDeclaration": 364, + "src": "4755:2:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2668,12 +2757,12 @@ }, { "argumentTypes": null, - "id": 237, + "id": 385, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 218, - "src": "4456:5:3", + "referencedDeclaration": 366, + "src": "4759:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2681,12 +2770,12 @@ }, { "argumentTypes": null, - "id": 238, + "id": 386, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 220, - "src": "4463:4:3", + "referencedDeclaration": 368, + "src": "4766:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -2694,12 +2783,12 @@ }, { "argumentTypes": null, - "id": 239, + "id": 387, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 222, - "src": "4469:9:3", + "referencedDeclaration": 370, + "src": "4772:9:5", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" @@ -2710,18 +2799,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 240, + "id": 388, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4029, - "src": "4480:7:3", + "referencedDeclaration": 3821, + "src": "4783:7:5", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 241, + "id": 389, "isConstant": false, "isLValue": false, "isPure": false, @@ -2729,7 +2818,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4480:9:3", + "src": "4783:9:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2759,18 +2848,18 @@ "typeString": "uint256" } ], - "id": 235, + "id": 383, "name": "execute", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2121, - "src": "4444:7:3", + "referencedDeclaration": 115, + "src": "4747:7:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)" } }, - "id": 242, + "id": 390, "isConstant": false, "isLValue": false, "isPure": false, @@ -2778,7 +2867,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4444:46:3", + "src": "4747:46:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2792,21 +2881,21 @@ "typeString": "bool" } ], - "id": 234, + "id": 382, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4039, - "src": "4436:7:3", + "referencedDeclaration": 3831, + "src": "4739:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 243, + "id": 391, "isConstant": false, "isLValue": false, "isPure": false, @@ -2814,28 +2903,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4436:55:3", + "src": "4739:55:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 244, + "id": 392, "nodeType": "ExpressionStatement", - "src": "4436:55:3" + "src": "4739:55:5" }, { "assignments": [ - 246 + 394 ], "declarations": [ { "constant": false, - "id": 246, + "id": 394, "name": "requiredGas", "nodeType": "VariableDeclaration", - "scope": 262, - "src": "4501:19:3", + "scope": 410, + "src": "4804:19:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2843,10 +2932,10 @@ "typeString": "uint256" }, "typeName": { - "id": 245, + "id": 393, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4501:7:3", + "src": "4804:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2856,26 +2945,26 @@ "visibility": "internal" } ], - "id": 251, + "id": 399, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 250, + "id": 398, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 247, + "id": 395, "name": "startGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 230, - "src": "4523:8:3", + "referencedDeclaration": 378, + "src": "4826:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2888,18 +2977,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 248, + "id": 396, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4029, - "src": "4534:7:3", + "referencedDeclaration": 3821, + "src": "4837:7:5", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 249, + "id": 397, "isConstant": false, "isLValue": false, "isPure": false, @@ -2907,20 +2996,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4534:9:3", + "src": "4837:9:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4523:20:3", + "src": "4826:20:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "4501:42:3" + "src": "4804:42:5" }, { "expression": { @@ -2934,12 +3023,12 @@ "arguments": [ { "argumentTypes": null, - "id": 256, + "id": 404, "name": "requiredGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 246, - "src": "4651:11:3", + "referencedDeclaration": 394, + "src": "4954:11:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2955,18 +3044,18 @@ ], "expression": { "argumentTypes": null, - "id": 254, + "id": 402, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4023, - "src": "4634:3:3", + "referencedDeclaration": 3815, + "src": "4937:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 255, + "id": 403, "isConstant": false, "isLValue": false, "isPure": true, @@ -2974,13 +3063,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4634:16:3", + "src": "4937:16:5", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 257, + "id": 405, "isConstant": false, "isLValue": false, "isPure": false, @@ -2988,7 +3077,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4634:29:3", + "src": "4937:29:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -3002,20 +3091,20 @@ "typeString": "bytes memory" } ], - "id": 253, + "id": 401, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4627:6:3", + "src": "4930:6:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_string_storage_ptr_$", "typeString": "type(string storage pointer)" }, "typeName": "string" }, - "id": 258, + "id": 406, "isConstant": false, "isLValue": false, "isPure": false, @@ -3023,7 +3112,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4627:37:3", + "src": "4930:37:5", "typeDescriptions": { "typeIdentifier": "t_string_memory", "typeString": "string memory" @@ -3037,21 +3126,21 @@ "typeString": "string memory" } ], - "id": 252, + "id": 400, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 4041, - 4042 + 3833, + 3834 ], - "referencedDeclaration": 4042, - "src": "4620:6:3", + "referencedDeclaration": 3834, + "src": "4923:6:5", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 259, + "id": 407, "isConstant": false, "isLValue": false, "isPure": false, @@ -3059,57 +3148,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4620:45:3", + "src": "4923:45:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 260, + "id": 408, "nodeType": "ExpressionStatement", - "src": "4620:45:3" + "src": "4923:45:5" } ] }, "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 `execTransactionAndPaySubmitter`\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": 262, + "id": 410, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 225, + "id": 373, "modifierName": { "argumentTypes": null, - "id": 224, + "id": 372, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3064, - "src": "4260:10:3", + "referencedDeclaration": 1764, + "src": "4563:10:5", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4260:10:3" + "src": "4563:10:5" } ], "name": "requiredTxGas", "nodeType": "FunctionDefinition", "parameters": { - "id": 223, + "id": 371, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 216, + "id": 364, "name": "to", "nodeType": "VariableDeclaration", - "scope": 262, - "src": "4172:10:3", + "scope": 410, + "src": "4475:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3117,10 +3206,10 @@ "typeString": "address" }, "typeName": { - "id": 215, + "id": 363, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4172:7:3", + "src": "4475:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3131,11 +3220,11 @@ }, { "constant": false, - "id": 218, + "id": 366, "name": "value", "nodeType": "VariableDeclaration", - "scope": 262, - "src": "4184:13:3", + "scope": 410, + "src": "4487:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3143,10 +3232,10 @@ "typeString": "uint256" }, "typeName": { - "id": 217, + "id": 365, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4184:7:3", + "src": "4487:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3157,11 +3246,11 @@ }, { "constant": false, - "id": 220, + "id": 368, "name": "data", "nodeType": "VariableDeclaration", - "scope": 262, - "src": "4199:10:3", + "scope": 410, + "src": "4502:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3169,10 +3258,10 @@ "typeString": "bytes" }, "typeName": { - "id": 219, + "id": 367, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "4199:5:3", + "src": "4502:5:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3183,11 +3272,11 @@ }, { "constant": false, - "id": 222, + "id": 370, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 262, - "src": "4211:24:3", + "scope": 410, + "src": "4514:24:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3196,11 +3285,11 @@ }, "typeName": { "contractScope": null, - "id": 221, + "id": 369, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 29, - "src": "4211:14:3", + "src": "4514:14:5", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" @@ -3210,20 +3299,20 @@ "visibility": "internal" } ], - "src": "4171:65:3" + "src": "4474:65:5" }, "payable": false, "returnParameters": { - "id": 228, + "id": 376, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 227, + "id": 375, "name": "", "nodeType": "VariableDeclaration", - "scope": 262, - "src": "4288:7:3", + "scope": 410, + "src": "4591:7:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3231,10 +3320,10 @@ "typeString": "uint256" }, "typeName": { - "id": 226, + "id": 374, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4288:7:3", + "src": "4591:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3244,32 +3333,32 @@ "visibility": "internal" } ], - "src": "4287:9:3" + "src": "4590:9:5" }, - "scope": 369, - "src": "4149:523:3", + "scope": 529, + "src": "4452:523:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 321, + "id": 469, "nodeType": "Block", - "src": "4765:519:3", + "src": "5068:519:5", "statements": [ { "assignments": [ - 270 + 418 ], "declarations": [ { "constant": false, - "id": 270, + "id": 418, "name": "lastOwner", "nodeType": "VariableDeclaration", - "scope": 322, - "src": "4827:17:3", + "scope": 470, + "src": "5130:17:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3277,10 +3366,10 @@ "typeString": "address" }, "typeName": { - "id": 269, + "id": 417, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4827:7:3", + "src": "5130:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3290,21 +3379,21 @@ "visibility": "internal" } ], - "id": 274, + "id": 422, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 272, + "id": 420, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4855:1:3", + "src": "5158:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3320,20 +3409,20 @@ "typeString": "int_const 0" } ], - "id": 271, + "id": 419, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4847:7:3", + "src": "5150:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 273, + "id": 421, "isConstant": false, "isLValue": false, "isPure": true, @@ -3341,25 +3430,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4847:10:3", + "src": "5150:10:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "4827:30:3" + "src": "5130:30:5" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 276, + "id": 424, "name": "currentOwner", "nodeType": "VariableDeclaration", - "scope": 322, - "src": "4867:20:3", + "scope": 470, + "src": "5170:20:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3367,10 +3456,10 @@ "typeString": "address" }, "typeName": { - "id": 275, + "id": 423, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4867:7:3", + "src": "5170:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3380,21 +3469,21 @@ "visibility": "internal" } ], - "id": 277, + "id": 425, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "4867:20:3" + "src": "5170:20:5" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 279, + "id": 427, "name": "i", "nodeType": "VariableDeclaration", - "scope": 322, - "src": "4897:9:3", + "scope": 470, + "src": "5200:9:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3402,10 +3491,10 @@ "typeString": "uint256" }, "typeName": { - "id": 278, + "id": 426, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4897:7:3", + "src": "5200:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3415,33 +3504,33 @@ "visibility": "internal" } ], - "id": 280, + "id": 428, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "4897:9:3" + "src": "5200:9:5" }, { "body": { - "id": 319, + "id": 467, "nodeType": "Block", - "src": "4990:288:3", + "src": "5293:288:5", "statements": [ { "expression": { "argumentTypes": null, - "id": 297, + "id": 445, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 291, + "id": 439, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 276, - "src": "5004:12:3", + "referencedDeclaration": 424, + "src": "5307:12:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3454,12 +3543,12 @@ "arguments": [ { "argumentTypes": null, - "id": 293, + "id": 441, "name": "txHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 264, - "src": "5030:6:3", + "referencedDeclaration": 412, + "src": "5333:6:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3467,12 +3556,12 @@ }, { "argumentTypes": null, - "id": 294, + "id": 442, "name": "signatures", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 266, - "src": "5038:10:3", + "referencedDeclaration": 414, + "src": "5341:10:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -3480,12 +3569,12 @@ }, { "argumentTypes": null, - "id": 295, + "id": 443, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "5050:1:3", + "referencedDeclaration": 427, + "src": "5353:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3507,18 +3596,18 @@ "typeString": "uint256" } ], - "id": 292, + "id": 440, "name": "recoverKey", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3105, - "src": "5019:10:3", + "referencedDeclaration": 1805, + "src": "5322:10:5", "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": 296, + "id": 444, "isConstant": false, "isLValue": false, "isPure": false, @@ -3526,21 +3615,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5019:33:3", + "src": "5322:33:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5004:48:3", + "src": "5307:48:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 298, + "id": 446, "nodeType": "ExpressionStatement", - "src": "5004:48:3" + "src": "5307:48:5" }, { "expression": { @@ -3552,7 +3641,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 304, + "id": 452, "isConstant": false, "isLValue": false, "isPure": false, @@ -3561,26 +3650,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 300, + "id": 448, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, - "src": "5074:6:3", + "referencedDeclaration": 1194, + "src": "5377:6:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 302, + "id": 450, "indexExpression": { "argumentTypes": null, - "id": 301, + "id": 449, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 276, - "src": "5081:12:3", + "referencedDeclaration": 424, + "src": "5384:12:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3591,7 +3680,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5074:20:3", + "src": "5377:20:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3602,14 +3691,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 303, + "id": 451, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5098:1:3", + "src": "5401:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3617,7 +3706,7 @@ }, "value": "0" }, - "src": "5074:25:3", + "src": "5377:25:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3626,14 +3715,14 @@ { "argumentTypes": null, "hexValue": "5369676e6174757265206e6f742070726f7669646564206279206f776e6572", - "id": 305, + "id": 453, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5101:33:3", + "src": "5404:33:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_09247dae670daab7cf1923d3334eea07c14df3c0a8f5233960935c63f47104a9", @@ -3653,21 +3742,21 @@ "typeString": "literal_string \"Signature not provided by owner\"" } ], - "id": 299, + "id": 447, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, - "src": "5066:7:3", + "referencedDeclaration": 3832, + "src": "5369:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 306, + "id": 454, "isConstant": false, "isLValue": false, "isPure": false, @@ -3675,15 +3764,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5066:69:3", + "src": "5369:69:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 307, + "id": 455, "nodeType": "ExpressionStatement", - "src": "5066:69:3" + "src": "5369:69:5" }, { "expression": { @@ -3695,19 +3784,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 311, + "id": 459, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 309, + "id": 457, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 276, - "src": "5157:12:3", + "referencedDeclaration": 424, + "src": "5460:12:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3717,18 +3806,18 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 310, + "id": 458, "name": "lastOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 270, - "src": "5172:9:3", + "referencedDeclaration": 418, + "src": "5475:9:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5157:24:3", + "src": "5460:24:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3737,14 +3826,14 @@ { "argumentTypes": null, "hexValue": "5369676e61747572657320617265206e6f74206f726465726564206279206f776e65722061646472657373", - "id": 312, + "id": 460, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5183:45:3", + "src": "5486:45:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_597a123a1bc14bc9690387ae0fec99721cc18eefa85fa2531a7593a762444235", @@ -3764,21 +3853,21 @@ "typeString": "literal_string \"Signatures are not ordered by owner address\"" } ], - "id": 308, + "id": 456, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, - "src": "5149:7:3", + "referencedDeclaration": 3832, + "src": "5452:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 313, + "id": 461, "isConstant": false, "isLValue": false, "isPure": false, @@ -3786,32 +3875,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5149:80:3", + "src": "5452:80:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 314, + "id": 462, "nodeType": "ExpressionStatement", - "src": "5149:80:3" + "src": "5452:80:5" }, { "expression": { "argumentTypes": null, - "id": 317, + "id": 465, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 315, + "id": 463, "name": "lastOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 270, - "src": "5243:9:3", + "referencedDeclaration": 418, + "src": "5546:9:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3821,26 +3910,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 316, + "id": 464, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 276, - "src": "5255:12:3", + "referencedDeclaration": 424, + "src": "5558:12:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5243:24:3", + "src": "5546:24:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 318, + "id": 466, "nodeType": "ExpressionStatement", - "src": "5243:24:3" + "src": "5546:24:5" } ] }, @@ -3850,19 +3939,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 287, + "id": 435, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 285, + "id": 433, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4970:1:3", + "referencedDeclaration": 427, + "src": "5273:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3872,40 +3961,40 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 286, + "id": 434, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2498, - "src": "4974:9:3", + "referencedDeclaration": 1198, + "src": "5277:9:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4970:13:3", + "src": "5273:13:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 320, + "id": 468, "initializationExpression": { "expression": { "argumentTypes": null, - "id": 283, + "id": 431, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 281, + "id": 429, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4963:1:3", + "referencedDeclaration": 427, + "src": "5266:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3916,14 +4005,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 282, + "id": 430, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4967:1:3", + "src": "5270:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3931,20 +4020,20 @@ }, "value": "0" }, - "src": "4963:5:3", + "src": "5266:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 284, + "id": 432, "nodeType": "ExpressionStatement", - "src": "4963:5:3" + "src": "5266:5:5" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 289, + "id": 437, "isConstant": false, "isLValue": false, "isPure": false, @@ -3952,15 +4041,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "4985:3:3", + "src": "5288:3:5", "subExpression": { "argumentTypes": null, - "id": 288, + "id": 436, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4985:1:3", + "referencedDeclaration": 427, + "src": "5288:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3971,17 +4060,17 @@ "typeString": "uint256" } }, - "id": 290, + "id": 438, "nodeType": "ExpressionStatement", - "src": "4985:3:3" + "src": "5288:3:5" }, "nodeType": "ForStatement", - "src": "4958:320:3" + "src": "5261:320:5" } ] }, "documentation": null, - "id": 322, + "id": 470, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3989,16 +4078,16 @@ "name": "checkHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 267, + "id": 415, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 264, + "id": 412, "name": "txHash", "nodeType": "VariableDeclaration", - "scope": 322, - "src": "4697:14:3", + "scope": 470, + "src": "5000:14:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4006,10 +4095,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 263, + "id": 411, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4697:7:3", + "src": "5000:7:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4020,11 +4109,11 @@ }, { "constant": false, - "id": 266, + "id": 414, "name": "signatures", "nodeType": "VariableDeclaration", - "scope": 322, - "src": "4713:16:3", + "scope": 470, + "src": "5016:16:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4032,10 +4121,10 @@ "typeString": "bytes" }, "typeName": { - "id": 265, + "id": 413, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "4713:5:3", + "src": "5016:5:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -4045,29 +4134,61 @@ "visibility": "internal" } ], - "src": "4696:34:3" + "src": "4999:34:5" }, "payable": false, "returnParameters": { - "id": 268, + "id": 416, "nodeType": "ParameterList", "parameters": [], - "src": "4765:0:3" + "src": "5068:0:5" }, - "scope": 369, - "src": "4678:606:3", + "scope": 529, + "src": "4981:606:5", "stateMutability": "view", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 367, + "id": 527, "nodeType": "Block", - "src": "6208:176:3", + "src": "6511:302:5", "statements": [ { - "expression": { + "assignments": [ + 494 + ], + "declarations": [ + { + "constant": false, + "id": 494, + "name": "safeTxHash", + "nodeType": "VariableDeclaration", + "scope": 528, + "src": "6521:18:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 493, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6521:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 512, + "initialValue": { "argumentTypes": null, "arguments": [ { @@ -4075,137 +4196,25 @@ "arguments": [ { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30783139", - "id": 349, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6270:4:3", - "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": 348, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6265:4:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 350, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6265:10:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 352, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6282:1:3", - "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": 351, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6277:4:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 353, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6277:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "id": 354, - "name": "this", + "id": 498, + "name": "SAFE_TX_TYPEHASH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4071, - "src": "6286:4:3", + "referencedDeclaration": 231, + "src": "6576:16:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_GnosisSafePersonalEdition_$369", - "typeString": "contract GnosisSafePersonalEdition" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, { "argumentTypes": null, - "id": 355, + "id": 499, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 324, - "src": "6292:2:3", + "referencedDeclaration": 472, + "src": "6594:2:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4213,12 +4222,12 @@ }, { "argumentTypes": null, - "id": 356, + "id": 500, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 326, - "src": "6296:5:3", + "referencedDeclaration": 474, + "src": "6598:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4226,25 +4235,61 @@ }, { "argumentTypes": null, - "id": 357, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 328, - "src": "6303:4:3", + "arguments": [ + { + "argumentTypes": null, + "id": 502, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 476, + "src": "6615:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 501, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3822, + "src": "6605:9:5", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6605:15:5", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, { "argumentTypes": null, - "id": 358, + "id": 504, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 330, - "src": "6309:9:3", + "referencedDeclaration": 478, + "src": "6622:9:5", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" @@ -4252,12 +4297,12 @@ }, { "argumentTypes": null, - "id": 359, + "id": 505, "name": "safeTxGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 332, - "src": "6320:9:3", + "referencedDeclaration": 480, + "src": "6633:9:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4265,12 +4310,12 @@ }, { "argumentTypes": null, - "id": 360, + "id": 506, "name": "dataGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 334, - "src": "6331:7:3", + "referencedDeclaration": 482, + "src": "6644:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4278,12 +4323,12 @@ }, { "argumentTypes": null, - "id": 361, + "id": 507, "name": "gasPrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 336, - "src": "6340:8:3", + "referencedDeclaration": 484, + "src": "6653:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4291,12 +4336,12 @@ }, { "argumentTypes": null, - "id": 362, + "id": 508, "name": "gasToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 338, - "src": "6350:8:3", + "referencedDeclaration": 486, + "src": "6663:8:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4304,12 +4349,12 @@ }, { "argumentTypes": null, - "id": 363, + "id": 509, "name": "_nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 340, - "src": "6360:6:3", + "referencedDeclaration": 488, + "src": "6673:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4319,16 +4364,8 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_contract$_GnosisSafePersonalEdition_$369", - "typeString": "contract GnosisSafePersonalEdition" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" }, { "typeIdentifier": "t_address", @@ -4339,8 +4376,8 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" }, { "typeIdentifier": "t_enum$_Operation_$29", @@ -4369,18 +4406,260 @@ ], "expression": { "argumentTypes": null, - "id": 346, + "id": 496, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3815, + "src": "6565:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 497, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6565:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6565:115:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 495, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3822, + "src": "6542:9:5", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6542:148:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6521:169:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30783139", + "id": 517, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6752:4:5", + "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": 516, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6747:4:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": "byte" + }, + "id": 518, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6747:10:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 520, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6764:1:5", + "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": 519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6759:4:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": "byte" + }, + "id": 521, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6759:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + { + "argumentTypes": null, + "id": 522, + "name": "domainSeperator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "6768:15:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 523, + "name": "safeTxHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 494, + "src": "6785:10:5", + "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": 514, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4023, - "src": "6248:3:3", + "referencedDeclaration": 3815, + "src": "6730:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 347, + "id": 515, "isConstant": false, "isLValue": false, "isPure": true, @@ -4388,13 +4667,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6248:16:3", + "src": "6730:16:5", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 364, + "id": 524, "isConstant": false, "isLValue": false, "isPure": false, @@ -4402,7 +4681,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6248:119:3", + "src": "6730:66:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -4416,18 +4695,18 @@ "typeString": "bytes memory" } ], - "id": 345, + "id": 513, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4030, - "src": "6225:9:3", + "referencedDeclaration": 3822, + "src": "6707:9:5", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 365, + "id": 525, "isConstant": false, "isLValue": false, "isPure": false, @@ -4435,21 +4714,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6225:152:3", + "src": "6707:99:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 344, - "id": 366, + "functionReturnParameters": 492, + "id": 526, "nodeType": "Return", - "src": "6218:159:3" + "src": "6700:106:5" } ] }, "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 _nonce Transaction nonce.\n @return Transaction hash.", - "id": 368, + "id": 528, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4457,16 +4736,16 @@ "name": "getTransactionHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 341, + "id": 489, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 324, + "id": 472, "name": "to", "nodeType": "VariableDeclaration", - "scope": 368, - "src": "5921:10:3", + "scope": 528, + "src": "6224:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4474,10 +4753,10 @@ "typeString": "address" }, "typeName": { - "id": 323, + "id": 471, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5921:7:3", + "src": "6224:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4488,11 +4767,11 @@ }, { "constant": false, - "id": 326, + "id": 474, "name": "value", "nodeType": "VariableDeclaration", - "scope": 368, - "src": "5942:13:3", + "scope": 528, + "src": "6245:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4500,10 +4779,10 @@ "typeString": "uint256" }, "typeName": { - "id": 325, + "id": 473, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5942:7:3", + "src": "6245:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4514,11 +4793,11 @@ }, { "constant": false, - "id": 328, + "id": 476, "name": "data", "nodeType": "VariableDeclaration", - "scope": 368, - "src": "5966:10:3", + "scope": 528, + "src": "6269:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4526,10 +4805,10 @@ "typeString": "bytes" }, "typeName": { - "id": 327, + "id": 475, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "5966:5:3", + "src": "6269:5:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -4540,11 +4819,11 @@ }, { "constant": false, - "id": 330, + "id": 478, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 368, - "src": "5987:24:3", + "scope": 528, + "src": "6290:24:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4553,11 +4832,11 @@ }, "typeName": { "contractScope": null, - "id": 329, + "id": 477, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 29, - "src": "5987:14:3", + "src": "6290:14:5", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" @@ -4568,11 +4847,11 @@ }, { "constant": false, - "id": 332, + "id": 480, "name": "safeTxGas", "nodeType": "VariableDeclaration", - "scope": 368, - "src": "6022:17:3", + "scope": 528, + "src": "6325:17:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4580,10 +4859,10 @@ "typeString": "uint256" }, "typeName": { - "id": 331, + "id": 479, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6022:7:3", + "src": "6325:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4594,11 +4873,11 @@ }, { "constant": false, - "id": 334, + "id": 482, "name": "dataGas", "nodeType": "VariableDeclaration", - "scope": 368, - "src": "6050:15:3", + "scope": 528, + "src": "6353:15:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4606,10 +4885,10 @@ "typeString": "uint256" }, "typeName": { - "id": 333, + "id": 481, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6050:7:3", + "src": "6353:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4620,11 +4899,11 @@ }, { "constant": false, - "id": 336, + "id": 484, "name": "gasPrice", "nodeType": "VariableDeclaration", - "scope": 368, - "src": "6076:16:3", + "scope": 528, + "src": "6379:16:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4632,10 +4911,10 @@ "typeString": "uint256" }, "typeName": { - "id": 335, + "id": 483, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6076:7:3", + "src": "6379:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4646,11 +4925,11 @@ }, { "constant": false, - "id": 338, + "id": 486, "name": "gasToken", "nodeType": "VariableDeclaration", - "scope": 368, - "src": "6103:16:3", + "scope": 528, + "src": "6406:16:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4658,10 +4937,10 @@ "typeString": "address" }, "typeName": { - "id": 337, + "id": 485, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6103:7:3", + "src": "6406:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4672,11 +4951,11 @@ }, { "constant": false, - "id": 340, + "id": 488, "name": "_nonce", "nodeType": "VariableDeclaration", - "scope": 368, - "src": "6129:14:3", + "scope": 528, + "src": "6432:14:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4684,10 +4963,10 @@ "typeString": "uint256" }, "typeName": { - "id": 339, + "id": 487, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6129:7:3", + "src": "6432:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4697,20 +4976,20 @@ "visibility": "internal" } ], - "src": "5911:238:3" + "src": "6214:238:5" }, "payable": false, "returnParameters": { - "id": 344, + "id": 492, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 343, + "id": 491, "name": "", "nodeType": "VariableDeclaration", - "scope": 368, - "src": "6195:7:3", + "scope": 528, + "src": "6498:7:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4718,10 +4997,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 342, + "id": 490, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6195:7:3", + "src": "6498:7:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4731,82 +5010,82 @@ "visibility": "internal" } ], - "src": "6194:9:3" + "src": "6497:9:5" }, - "scope": 369, - "src": "5884:500:3", + "scope": 529, + "src": "6187:626:5", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 370, - "src": "483:5903:3" + "scope": 530, + "src": "483:6332:5" } ], - "src": "0:6387:3" + "src": "0:6816:5" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafePersonalEdition.sol", "exportedSymbols": { "GnosisSafePersonalEdition": [ - 369 + 529 ] }, - "id": 370, + "id": 530, "nodeType": "SourceUnit", "nodes": [ { - "id": 65, + "id": 210, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:3" + "src": "0:23:5" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafe.sol", "file": "./GnosisSafe.sol", - "id": 66, + "id": 211, "nodeType": "ImportDirective", - "scope": 370, - "sourceUnit": 64, - "src": "24:26:3", + "scope": 530, + "sourceUnit": 209, + "src": "24:26:5", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol", "file": "./MasterCopy.sol", - "id": 67, + "id": 212, "nodeType": "ImportDirective", - "scope": 370, - "sourceUnit": 633, - "src": "51:26:3", + "scope": 530, + "sourceUnit": 814, + "src": "51:26:5", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SignatureValidator.sol", "file": "./SignatureValidator.sol", - "id": 68, + "id": 213, "nodeType": "ImportDirective", - "scope": 370, - "sourceUnit": 3122, - "src": "78:34:3", + "scope": 530, + "sourceUnit": 1822, + "src": "78:34:5", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SecuredTokenTransfer.sol", "file": "./SecuredTokenTransfer.sol", - "id": 69, + "id": 214, "nodeType": "ImportDirective", - "scope": 370, - "sourceUnit": 3049, - "src": "113:36:3", + "scope": 530, + "sourceUnit": 1749, + "src": "113:36:5", "symbolAliases": [], "unitAlias": "" }, @@ -4816,108 +5095,112 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 70, + "id": 215, "name": "MasterCopy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 632, - "src": "521:10:3", + "referencedDeclaration": 813, + "src": "521:10:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_MasterCopy_$632", + "typeIdentifier": "t_contract$_MasterCopy_$813", "typeString": "contract MasterCopy" } }, - "id": 71, + "id": 216, "nodeType": "InheritanceSpecifier", - "src": "521:10:3" + "src": "521:10:5" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 72, + "id": 217, "name": "GnosisSafe", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 63, - "src": "533:10:3", + "referencedDeclaration": 208, + "src": "533:10:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_GnosisSafe_$63", + "typeIdentifier": "t_contract$_GnosisSafe_$208", "typeString": "contract GnosisSafe" } }, - "id": 73, + "id": 218, "nodeType": "InheritanceSpecifier", - "src": "533:10:3" + "src": "533:10:5" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 74, + "id": 219, "name": "SignatureValidator", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3121, - "src": "545:18:3", + "referencedDeclaration": 1821, + "src": "545:18:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_SignatureValidator_$3121", + "typeIdentifier": "t_contract$_SignatureValidator_$1821", "typeString": "contract SignatureValidator" } }, - "id": 75, + "id": 220, "nodeType": "InheritanceSpecifier", - "src": "545:18:3" + "src": "545:18:5" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 76, + "id": 221, "name": "SecuredTokenTransfer", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3048, - "src": "565:20:3", + "referencedDeclaration": 1748, + "src": "565:20:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_SecuredTokenTransfer_$3048", + "typeIdentifier": "t_contract$_SecuredTokenTransfer_$1748", "typeString": "contract SecuredTokenTransfer" } }, - "id": 77, + "id": 222, "nodeType": "InheritanceSpecifier", - "src": "565:20:3" + "src": "565:20:5" } ], "contractDependencies": [ - 63, - 632, - 2232, - 2888, - 3048, - 3065, - 3121 + 208, + 153, + 37, + 813, + 1180, + 1588, + 1748, + 1765, + 1821 ], "contractKind": "contract", "documentation": "@title Gnosis Safe Personal Edition - 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": 369, + "id": 529, "linearizedBaseContracts": [ - 369, - 3048, - 3121, - 63, - 2888, - 2232, - 632, - 3065 + 529, + 1748, + 1821, + 208, + 1588, + 1180, + 153, + 37, + 813, + 1765 ], "name": "GnosisSafePersonalEdition", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 80, + "id": 225, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 369, - "src": "593:60:3", + "scope": 529, + "src": "593:60:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -4925,10 +5208,10 @@ "typeString": "string" }, "typeName": { - "id": 78, + "id": 223, "name": "string", "nodeType": "ElementaryTypeName", - "src": "593:6:3", + "src": "593:6:5", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -4937,14 +5220,14 @@ "value": { "argumentTypes": null, "hexValue": "476e6f736973205361666520506572736f6e616c2045646974696f6e", - "id": 79, + "id": 224, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "623:30:3", + "src": "623:30:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b657d2895d137bf089ce1df776b732639b1ebc2a3aec3bd837e225e9e0965154", @@ -4956,11 +5239,11 @@ }, { "constant": true, - "id": 83, + "id": 228, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 369, - "src": "659:40:3", + "scope": 529, + "src": "659:40:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -4968,10 +5251,10 @@ "typeString": "string" }, "typeName": { - "id": 81, + "id": 226, "name": "string", "nodeType": "ElementaryTypeName", - "src": "659:6:3", + "src": "659:6:5", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -4980,14 +5263,14 @@ "value": { "argumentTypes": null, "hexValue": "302e302e31", - "id": 82, + "id": 227, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "692:7:3", + "src": "692:7:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", @@ -4997,24 +5280,67 @@ }, "visibility": "public" }, + { + "constant": true, + "id": 231, + "name": "SAFE_TX_TYPEHASH", + "nodeType": "VariableDeclaration", + "scope": 529, + "src": "893:109:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 229, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "893:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307830363863336233336363396266663664646530383230393532376236326162666231643465643537363730366532303738323239363233643732333734623562", + "id": 230, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "936:66:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2961644280108194065159135409573964622771032650926095796711509007169446431579_by_1", + "typeString": "int_const 2961...(68 digits omitted)...1579" + }, + "value": "0x068c3b33cc9bff6dde08209527b62abfb1d4ed576706e2078229623d72374b5b" + }, + "visibility": "public" + }, { "anonymous": false, "documentation": null, - "id": 87, + "id": 235, "name": "ExecutionFailed", "nodeType": "EventDefinition", "parameters": { - "id": 86, + "id": 234, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 85, + "id": 233, "indexed": false, "name": "txHash", "nodeType": "VariableDeclaration", - "scope": 87, - "src": "732:14:3", + "scope": 235, + "src": "1035:14:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5022,10 +5348,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 84, + "id": 232, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "732:7:3", + "src": "1035:7:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5035,17 +5361,17 @@ "visibility": "internal" } ], - "src": "731:16:3" + "src": "1034:16:5" }, - "src": "710:38:3" + "src": "1013:38:5" }, { "constant": false, - "id": 89, + "id": 237, "name": "nonce", "nodeType": "VariableDeclaration", - "scope": 369, - "src": "754:20:3", + "scope": 529, + "src": "1057:20:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -5053,10 +5379,10 @@ "typeString": "uint256" }, "typeName": { - "id": 88, + "id": 236, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "754:7:3", + "src": "1057:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5067,22 +5393,22 @@ }, { "body": { - "id": 213, + "id": 361, "nodeType": "Block", - "src": "2004:1218:3", + "src": "2307:1218:5", "statements": [ { "assignments": [ - 113 + 261 ], "declarations": [ { "constant": false, - "id": 113, + "id": 261, "name": "startGas", "nodeType": "VariableDeclaration", - "scope": 214, - "src": "2014:16:3", + "scope": 362, + "src": "2317:16:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5090,10 +5416,10 @@ "typeString": "uint256" }, "typeName": { - "id": 112, + "id": 260, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2014:7:3", + "src": "2317:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5103,24 +5429,24 @@ "visibility": "internal" } ], - "id": 116, + "id": 264, "initialValue": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 114, + "id": 262, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4029, - "src": "2033:7:3", + "referencedDeclaration": 3821, + "src": "2336:7:5", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 115, + "id": 263, "isConstant": false, "isLValue": false, "isPure": false, @@ -5128,27 +5454,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2033:9:3", + "src": "2336:9:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "2014:28:3" + "src": "2317:28:5" }, { "assignments": [ - 118 + 266 ], "declarations": [ { "constant": false, - "id": 118, + "id": 266, "name": "txHash", "nodeType": "VariableDeclaration", - "scope": 214, - "src": "2052:14:3", + "scope": 362, + "src": "2355:14:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5156,10 +5482,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 117, + "id": 265, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2052:7:3", + "src": "2355:7:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5169,18 +5495,18 @@ "visibility": "internal" } ], - "id": 130, + "id": 278, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 120, + "id": 268, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "2088:2:3", + "referencedDeclaration": 239, + "src": "2391:2:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5188,12 +5514,12 @@ }, { "argumentTypes": null, - "id": 121, + "id": 269, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 93, - "src": "2092:5:3", + "referencedDeclaration": 241, + "src": "2395:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5201,12 +5527,12 @@ }, { "argumentTypes": null, - "id": 122, + "id": 270, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 95, - "src": "2099:4:3", + "referencedDeclaration": 243, + "src": "2402:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -5214,12 +5540,12 @@ }, { "argumentTypes": null, - "id": 123, + "id": 271, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 97, - "src": "2105:9:3", + "referencedDeclaration": 245, + "src": "2408:9:5", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" @@ -5227,12 +5553,12 @@ }, { "argumentTypes": null, - "id": 124, + "id": 272, "name": "safeTxGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 99, - "src": "2116:9:3", + "referencedDeclaration": 247, + "src": "2419:9:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5240,12 +5566,12 @@ }, { "argumentTypes": null, - "id": 125, + "id": 273, "name": "dataGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "2127:7:3", + "referencedDeclaration": 249, + "src": "2430:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5253,12 +5579,12 @@ }, { "argumentTypes": null, - "id": 126, + "id": 274, "name": "gasPrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 103, - "src": "2136:8:3", + "referencedDeclaration": 251, + "src": "2439:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5266,12 +5592,12 @@ }, { "argumentTypes": null, - "id": 127, + "id": 275, "name": "gasToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 105, - "src": "2146:8:3", + "referencedDeclaration": 253, + "src": "2449:8:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5279,12 +5605,12 @@ }, { "argumentTypes": null, - "id": 128, + "id": 276, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 89, - "src": "2156:5:3", + "referencedDeclaration": 237, + "src": "2459:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5330,18 +5656,18 @@ "typeString": "uint256" } ], - "id": 119, + "id": 267, "name": "getTransactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "2069:18:3", + "referencedDeclaration": 528, + "src": "2372:18:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$returns$_t_bytes32_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256,uint256,uint256,address,uint256) view returns (bytes32)" } }, - "id": 129, + "id": 277, "isConstant": false, "isLValue": false, "isPure": false, @@ -5349,14 +5675,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2069:93:3", + "src": "2372:93:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "2052:110:3" + "src": "2355:110:5" }, { "expression": { @@ -5364,12 +5690,12 @@ "arguments": [ { "argumentTypes": null, - "id": 132, + "id": 280, "name": "txHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 118, - "src": "2182:6:3", + "referencedDeclaration": 266, + "src": "2485:6:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5377,12 +5703,12 @@ }, { "argumentTypes": null, - "id": 133, + "id": 281, "name": "signatures", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 107, - "src": "2190:10:3", + "referencedDeclaration": 255, + "src": "2493:10:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -5400,18 +5726,18 @@ "typeString": "bytes memory" } ], - "id": 131, + "id": 279, "name": "checkHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 322, - "src": "2172:9:3", + "referencedDeclaration": 470, + "src": "2475:9:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes32,bytes memory) view" } }, - "id": 134, + "id": 282, "isConstant": false, "isLValue": false, "isPure": false, @@ -5419,20 +5745,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2172:29:3", + "src": "2475:29:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 135, + "id": 283, "nodeType": "ExpressionStatement", - "src": "2172:29:3" + "src": "2475:29:5" }, { "expression": { "argumentTypes": null, - "id": 137, + "id": 285, "isConstant": false, "isLValue": false, "isPure": false, @@ -5440,15 +5766,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "2262:7:3", + "src": "2565:7:5", "subExpression": { "argumentTypes": null, - "id": 136, + "id": 284, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 89, - "src": "2262:5:3", + "referencedDeclaration": 237, + "src": "2565:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5459,9 +5785,9 @@ "typeString": "uint256" } }, - "id": 138, + "id": 286, "nodeType": "ExpressionStatement", - "src": "2262:7:3" + "src": "2565:7:5" }, { "expression": { @@ -5473,7 +5799,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 143, + "id": 291, "isConstant": false, "isLValue": false, "isPure": false, @@ -5483,18 +5809,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 140, + "id": 288, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4029, - "src": "2287:7:3", + "referencedDeclaration": 3821, + "src": "2590:7:5", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 141, + "id": 289, "isConstant": false, "isLValue": false, "isPure": false, @@ -5502,7 +5828,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2287:9:3", + "src": "2590:9:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5512,18 +5838,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 142, + "id": 290, "name": "safeTxGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 99, - "src": "2300:9:3", + "referencedDeclaration": 247, + "src": "2603:9:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2287:22:3", + "src": "2590:22:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5532,14 +5858,14 @@ { "argumentTypes": null, "hexValue": "4e6f7420656e6f7567682067617320746f20657865637574652073616665207472616e73616374696f6e", - "id": 144, + "id": 292, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2311:44:3", + "src": "2614:44:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e7ccb05a0f2c66d12451cdfc6bbab488c38ab704d0f6af9ad18763542e9e5f18", @@ -5559,21 +5885,21 @@ "typeString": "literal_string \"Not enough gas to execute safe transaction\"" } ], - "id": 139, + "id": 287, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, - "src": "2279:7:3", + "referencedDeclaration": 3832, + "src": "2582:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 145, + "id": 293, "isConstant": false, "isLValue": false, "isPure": false, @@ -5581,32 +5907,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2279:77:3", + "src": "2582:77:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 146, + "id": 294, "nodeType": "ExpressionStatement", - "src": "2279:77:3" + "src": "2582:77:5" }, { "expression": { "argumentTypes": null, - "id": 155, + "id": 303, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 147, + "id": 295, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 110, - "src": "2366:7:3", + "referencedDeclaration": 258, + "src": "2669:7:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5619,12 +5945,12 @@ "arguments": [ { "argumentTypes": null, - "id": 149, + "id": 297, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "2384:2:3", + "referencedDeclaration": 239, + "src": "2687:2:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5632,12 +5958,12 @@ }, { "argumentTypes": null, - "id": 150, + "id": 298, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 93, - "src": "2388:5:3", + "referencedDeclaration": 241, + "src": "2691:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5645,12 +5971,12 @@ }, { "argumentTypes": null, - "id": 151, + "id": 299, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 95, - "src": "2395:4:3", + "referencedDeclaration": 243, + "src": "2698:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -5658,12 +5984,12 @@ }, { "argumentTypes": null, - "id": 152, + "id": 300, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 97, - "src": "2401:9:3", + "referencedDeclaration": 245, + "src": "2704:9:5", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" @@ -5671,12 +5997,12 @@ }, { "argumentTypes": null, - "id": 153, + "id": 301, "name": "safeTxGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 99, - "src": "2412:9:3", + "referencedDeclaration": 247, + "src": "2715:9:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5706,18 +6032,18 @@ "typeString": "uint256" } ], - "id": 148, + "id": 296, "name": "execute", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2121, - "src": "2376:7:3", + "referencedDeclaration": 115, + "src": "2679:7:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)" } }, - "id": 154, + "id": 302, "isConstant": false, "isLValue": false, "isPure": false, @@ -5725,26 +6051,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2376:46:3", + "src": "2679:46:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2366:56:3", + "src": "2669:56:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 156, + "id": 304, "nodeType": "ExpressionStatement", - "src": "2366:56:3" + "src": "2669:56:5" }, { "condition": { "argumentTypes": null, - "id": 158, + "id": 306, "isConstant": false, "isLValue": false, "isPure": false, @@ -5752,15 +6078,15 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2436:8:3", + "src": "2739:8:5", "subExpression": { "argumentTypes": null, - "id": 157, + "id": 305, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 110, - "src": "2437:7:3", + "referencedDeclaration": 258, + "src": "2740:7:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5772,13 +6098,13 @@ } }, "falseBody": null, - "id": 164, + "id": 312, "nodeType": "IfStatement", - "src": "2432:67:3", + "src": "2735:67:5", "trueBody": { - "id": 163, + "id": 311, "nodeType": "Block", - "src": "2446:53:3", + "src": "2749:53:5", "statements": [ { "eventCall": { @@ -5786,12 +6112,12 @@ "arguments": [ { "argumentTypes": null, - "id": 160, + "id": 308, "name": "txHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 118, - "src": "2481:6:3", + "referencedDeclaration": 266, + "src": "2784:6:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5805,18 +6131,18 @@ "typeString": "bytes32" } ], - "id": 159, + "id": 307, "name": "ExecutionFailed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 87, - "src": "2465:15:3", + "referencedDeclaration": 235, + "src": "2768:15:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$returns$__$", "typeString": "function (bytes32)" } }, - "id": 161, + "id": 309, "isConstant": false, "isLValue": false, "isPure": false, @@ -5824,15 +6150,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2465:23:3", + "src": "2768:23:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 162, + "id": 310, "nodeType": "EmitStatement", - "src": "2460:28:3" + "src": "2763:28:5" } ] } @@ -5844,19 +6170,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 167, + "id": 315, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 165, + "id": 313, "name": "gasPrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 103, - "src": "2652:8:3", + "referencedDeclaration": 251, + "src": "2955:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5867,14 +6193,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 166, + "id": 314, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2663:1:3", + "src": "2966:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5882,33 +6208,33 @@ }, "value": "0" }, - "src": "2652:12:3", + "src": "2955:12:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 212, + "id": 360, "nodeType": "IfStatement", - "src": "2648:566:3", + "src": "2951:566:5", "trueBody": { - "id": 211, + "id": 359, "nodeType": "Block", - "src": "2666:548:3", + "src": "2969:548:5", "statements": [ { "assignments": [ - 169 + 317 ], "declarations": [ { "constant": false, - "id": 169, + "id": 317, "name": "gasCosts", "nodeType": "VariableDeclaration", - "scope": 214, - "src": "2680:16:3", + "scope": 362, + "src": "2983:16:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5916,10 +6242,10 @@ "typeString": "uint256" }, "typeName": { - "id": 168, + "id": 316, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2680:7:3", + "src": "2983:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5929,14 +6255,14 @@ "visibility": "internal" } ], - "id": 177, + "id": 325, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 176, + "id": 324, "isConstant": false, "isLValue": false, "isPure": false, @@ -5950,19 +6276,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 173, + "id": 321, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 170, + "id": 318, "name": "startGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 113, - "src": "2700:8:3", + "referencedDeclaration": 261, + "src": "3003:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5975,18 +6301,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 171, + "id": 319, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4029, - "src": "2711:7:3", + "referencedDeclaration": 3821, + "src": "3014:7:5", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 172, + "id": 320, "isConstant": false, "isLValue": false, "isPure": false, @@ -5994,27 +6320,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2711:9:3", + "src": "3014:9:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2700:20:3", + "src": "3003:20:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 174, + "id": 322, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2699:22:3", + "src": "3002:22:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6024,38 +6350,38 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 175, + "id": 323, "name": "dataGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "2724:7:3", + "referencedDeclaration": 249, + "src": "3027:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2699:32:3", + "src": "3002:32:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "2680:51:3" + "src": "2983:51:5" }, { "assignments": [ - 179 + 327 ], "declarations": [ { "constant": false, - "id": 179, + "id": 327, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 214, - "src": "2745:14:3", + "scope": 362, + "src": "3048:14:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6063,10 +6389,10 @@ "typeString": "uint256" }, "typeName": { - "id": 178, + "id": 326, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2745:7:3", + "src": "3048:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6076,26 +6402,26 @@ "visibility": "internal" } ], - "id": 183, + "id": 331, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 182, + "id": 330, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 180, + "id": 328, "name": "gasCosts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "2762:8:3", + "referencedDeclaration": 317, + "src": "3065:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6105,25 +6431,25 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 181, + "id": 329, "name": "gasPrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 103, - "src": "2773:8:3", + "referencedDeclaration": 251, + "src": "3076:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2762:19:3", + "src": "3065:19:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "2745:36:3" + "src": "3048:36:5" }, { "condition": { @@ -6132,19 +6458,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 188, + "id": 336, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 184, + "id": 332, "name": "gasToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 105, - "src": "2799:8:3", + "referencedDeclaration": 253, + "src": "3102:8:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6158,14 +6484,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 186, + "id": 334, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2819:1:3", + "src": "3122:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6181,20 +6507,20 @@ "typeString": "int_const 0" } ], - "id": 185, + "id": 333, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2811:7:3", + "src": "3114:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 187, + "id": 335, "isConstant": false, "isLValue": false, "isPure": true, @@ -6202,22 +6528,22 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2811:10:3", + "src": "3114:10:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2799:22:3", + "src": "3102:22:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 209, + "id": 357, "nodeType": "Block", - "src": "3015:189:3", + "src": "3318:189:5", "statements": [ { "expression": { @@ -6228,12 +6554,12 @@ "arguments": [ { "argumentTypes": null, - "id": 201, + "id": 349, "name": "gasToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 105, - "src": "3122:8:3", + "referencedDeclaration": 253, + "src": "3425:8:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6243,18 +6569,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 202, + "id": 350, "name": "tx", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4048, - "src": "3132:2:3", + "referencedDeclaration": 3840, + "src": "3435:2:5", "typeDescriptions": { "typeIdentifier": "t_magic_transaction", "typeString": "tx" } }, - "id": 203, + "id": 351, "isConstant": false, "isLValue": false, "isPure": false, @@ -6262,7 +6588,7 @@ "memberName": "origin", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3132:9:3", + "src": "3435:9:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6270,12 +6596,12 @@ }, { "argumentTypes": null, - "id": 204, + "id": 352, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 179, - "src": "3143:6:3", + "referencedDeclaration": 327, + "src": "3446:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6297,18 +6623,18 @@ "typeString": "uint256" } ], - "id": 200, + "id": 348, "name": "transferToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3047, - "src": "3108:13:3", + "referencedDeclaration": 1747, + "src": "3411:13:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) returns (bool)" } }, - "id": 205, + "id": 353, "isConstant": false, "isLValue": false, "isPure": false, @@ -6316,7 +6642,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3108:42:3", + "src": "3411:42:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6325,14 +6651,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f74207061792067617320636f737473207769746820746f6b656e", - "id": 206, + "id": 354, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3152:36:3", + "src": "3455:36:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_8560a13547eca5648355c8db1a9f8653b6f657d31d476c36bca25e47b45b08f4", @@ -6352,21 +6678,21 @@ "typeString": "literal_string \"Could not pay gas costs with token\"" } ], - "id": 199, + "id": 347, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, - "src": "3100:7:3", + "referencedDeclaration": 3832, + "src": "3403:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 207, + "id": 355, "isConstant": false, "isLValue": false, "isPure": false, @@ -6374,25 +6700,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3100:89:3", + "src": "3403:89:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 208, + "id": 356, "nodeType": "ExpressionStatement", - "src": "3100:89:3" + "src": "3403:89:5" } ] }, - "id": 210, + "id": 358, "nodeType": "IfStatement", - "src": "2795:409:3", + "src": "3098:409:5", "trueBody": { - "id": 198, + "id": 346, "nodeType": "Block", - "src": "2823:186:3", + "src": "3126:186:5", "statements": [ { "expression": { @@ -6403,12 +6729,12 @@ "arguments": [ { "argumentTypes": null, - "id": 193, + "id": 341, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 179, - "src": "2948:6:3", + "referencedDeclaration": 327, + "src": "3251:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6426,18 +6752,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 190, + "id": 338, "name": "tx", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4048, - "src": "2933:2:3", + "referencedDeclaration": 3840, + "src": "3236:2:5", "typeDescriptions": { "typeIdentifier": "t_magic_transaction", "typeString": "tx" } }, - "id": 191, + "id": 339, "isConstant": false, "isLValue": false, "isPure": false, @@ -6445,13 +6771,13 @@ "memberName": "origin", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2933:9:3", + "src": "3236:9:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 192, + "id": 340, "isConstant": false, "isLValue": false, "isPure": false, @@ -6459,13 +6785,13 @@ "memberName": "send", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2933:14:3", + "src": "3236:14:5", "typeDescriptions": { "typeIdentifier": "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) returns (bool)" } }, - "id": 194, + "id": 342, "isConstant": false, "isLValue": false, "isPure": false, @@ -6473,7 +6799,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2933:22:3", + "src": "3236:22:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6482,14 +6808,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f74207061792067617320636f7374732077697468206574686572", - "id": 195, + "id": 343, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2957:36:3", + "src": "3260:36:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e2a11e15f7be1214c1340779ad55027af8aa33aee6cb521776a28a0a44aea377", @@ -6509,21 +6835,21 @@ "typeString": "literal_string \"Could not pay gas costs with ether\"" } ], - "id": 189, + "id": 337, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, - "src": "2925:7:3", + "referencedDeclaration": 3832, + "src": "3228:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 196, + "id": 344, "isConstant": false, "isLValue": false, "isPure": false, @@ -6531,15 +6857,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2925:69:3", + "src": "3228:69:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 197, + "id": 345, "nodeType": "ExpressionStatement", - "src": "2925:69:3" + "src": "3228:69:5" } ] } @@ -6550,7 +6876,7 @@ ] }, "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 signatures Packed signature data ({bytes32 r}{bytes32 s}{uint8 v})", - "id": 214, + "id": 362, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -6558,16 +6884,16 @@ "name": "execTransactionAndPaySubmitter", "nodeType": "FunctionDefinition", "parameters": { - "id": 108, + "id": 256, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 91, + "id": 239, "name": "to", "nodeType": "VariableDeclaration", - "scope": 214, - "src": "1726:10:3", + "scope": 362, + "src": "2029:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6575,10 +6901,10 @@ "typeString": "address" }, "typeName": { - "id": 90, + "id": 238, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1726:7:3", + "src": "2029:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6589,11 +6915,11 @@ }, { "constant": false, - "id": 93, + "id": 241, "name": "value", "nodeType": "VariableDeclaration", - "scope": 214, - "src": "1747:13:3", + "scope": 362, + "src": "2050:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6601,10 +6927,10 @@ "typeString": "uint256" }, "typeName": { - "id": 92, + "id": 240, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1747:7:3", + "src": "2050:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6615,11 +6941,11 @@ }, { "constant": false, - "id": 95, + "id": 243, "name": "data", "nodeType": "VariableDeclaration", - "scope": 214, - "src": "1771:10:3", + "scope": 362, + "src": "2074:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6627,10 +6953,10 @@ "typeString": "bytes" }, "typeName": { - "id": 94, + "id": 242, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1771:5:3", + "src": "2074:5:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -6641,11 +6967,11 @@ }, { "constant": false, - "id": 97, + "id": 245, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 214, - "src": "1792:24:3", + "scope": 362, + "src": "2095:24:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6654,11 +6980,11 @@ }, "typeName": { "contractScope": null, - "id": 96, + "id": 244, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 29, - "src": "1792:14:3", + "src": "2095:14:5", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" @@ -6669,11 +6995,11 @@ }, { "constant": false, - "id": 99, + "id": 247, "name": "safeTxGas", "nodeType": "VariableDeclaration", - "scope": 214, - "src": "1827:17:3", + "scope": 362, + "src": "2130:17:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6681,10 +7007,10 @@ "typeString": "uint256" }, "typeName": { - "id": 98, + "id": 246, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1827:7:3", + "src": "2130:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6695,11 +7021,11 @@ }, { "constant": false, - "id": 101, + "id": 249, "name": "dataGas", "nodeType": "VariableDeclaration", - "scope": 214, - "src": "1854:15:3", + "scope": 362, + "src": "2157:15:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6707,10 +7033,10 @@ "typeString": "uint256" }, "typeName": { - "id": 100, + "id": 248, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1854:7:3", + "src": "2157:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6721,11 +7047,11 @@ }, { "constant": false, - "id": 103, + "id": 251, "name": "gasPrice", "nodeType": "VariableDeclaration", - "scope": 214, - "src": "1879:16:3", + "scope": 362, + "src": "2182:16:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6733,10 +7059,10 @@ "typeString": "uint256" }, "typeName": { - "id": 102, + "id": 250, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1879:7:3", + "src": "2182:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6747,11 +7073,11 @@ }, { "constant": false, - "id": 105, + "id": 253, "name": "gasToken", "nodeType": "VariableDeclaration", - "scope": 214, - "src": "1905:16:3", + "scope": 362, + "src": "2208:16:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6759,10 +7085,10 @@ "typeString": "address" }, "typeName": { - "id": 104, + "id": 252, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1905:7:3", + "src": "2208:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6773,11 +7099,11 @@ }, { "constant": false, - "id": 107, + "id": 255, "name": "signatures", "nodeType": "VariableDeclaration", - "scope": 214, - "src": "1931:16:3", + "scope": 362, + "src": "2234:16:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6785,10 +7111,10 @@ "typeString": "bytes" }, "typeName": { - "id": 106, + "id": 254, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1931:5:3", + "src": "2234:5:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -6798,20 +7124,20 @@ "visibility": "internal" } ], - "src": "1716:237:3" + "src": "2019:237:5" }, "payable": false, "returnParameters": { - "id": 111, + "id": 259, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 110, + "id": 258, "name": "success", "nodeType": "VariableDeclaration", - "scope": 214, - "src": "1986:12:3", + "scope": 362, + "src": "2289:12:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6819,10 +7145,10 @@ "typeString": "bool" }, "typeName": { - "id": 109, + "id": 257, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1986:4:3", + "src": "2289:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6832,32 +7158,32 @@ "visibility": "internal" } ], - "src": "1985:14:3" + "src": "2288:14:5" }, - "scope": 369, - "src": "1677:1545:3", + "scope": 529, + "src": "1980:1545:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 261, + "id": 409, "nodeType": "Block", - "src": "4301:371:3", + "src": "4604:371:5", "statements": [ { "assignments": [ - 230 + 378 ], "declarations": [ { "constant": false, - "id": 230, + "id": 378, "name": "startGas", "nodeType": "VariableDeclaration", - "scope": 262, - "src": "4311:16:3", + "scope": 410, + "src": "4614:16:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6865,10 +7191,10 @@ "typeString": "uint256" }, "typeName": { - "id": 229, + "id": 377, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4311:7:3", + "src": "4614:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6878,24 +7204,24 @@ "visibility": "internal" } ], - "id": 233, + "id": 381, "initialValue": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 231, + "id": 379, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4029, - "src": "4330:7:3", + "referencedDeclaration": 3821, + "src": "4633:7:5", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 232, + "id": 380, "isConstant": false, "isLValue": false, "isPure": false, @@ -6903,14 +7229,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4330:9:3", + "src": "4633:9:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "4311:28:3" + "src": "4614:28:5" }, { "expression": { @@ -6921,12 +7247,12 @@ "arguments": [ { "argumentTypes": null, - "id": 236, + "id": 384, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 216, - "src": "4452:2:3", + "referencedDeclaration": 364, + "src": "4755:2:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6934,12 +7260,12 @@ }, { "argumentTypes": null, - "id": 237, + "id": 385, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 218, - "src": "4456:5:3", + "referencedDeclaration": 366, + "src": "4759:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6947,12 +7273,12 @@ }, { "argumentTypes": null, - "id": 238, + "id": 386, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 220, - "src": "4463:4:3", + "referencedDeclaration": 368, + "src": "4766:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -6960,12 +7286,12 @@ }, { "argumentTypes": null, - "id": 239, + "id": 387, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 222, - "src": "4469:9:3", + "referencedDeclaration": 370, + "src": "4772:9:5", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" @@ -6976,18 +7302,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 240, + "id": 388, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4029, - "src": "4480:7:3", + "referencedDeclaration": 3821, + "src": "4783:7:5", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 241, + "id": 389, "isConstant": false, "isLValue": false, "isPure": false, @@ -6995,7 +7321,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4480:9:3", + "src": "4783:9:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7025,18 +7351,18 @@ "typeString": "uint256" } ], - "id": 235, + "id": 383, "name": "execute", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2121, - "src": "4444:7:3", + "referencedDeclaration": 115, + "src": "4747:7:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)" } }, - "id": 242, + "id": 390, "isConstant": false, "isLValue": false, "isPure": false, @@ -7044,7 +7370,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4444:46:3", + "src": "4747:46:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7058,21 +7384,21 @@ "typeString": "bool" } ], - "id": 234, + "id": 382, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4039, - "src": "4436:7:3", + "referencedDeclaration": 3831, + "src": "4739:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 243, + "id": 391, "isConstant": false, "isLValue": false, "isPure": false, @@ -7080,28 +7406,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4436:55:3", + "src": "4739:55:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 244, + "id": 392, "nodeType": "ExpressionStatement", - "src": "4436:55:3" + "src": "4739:55:5" }, { "assignments": [ - 246 + 394 ], "declarations": [ { "constant": false, - "id": 246, + "id": 394, "name": "requiredGas", "nodeType": "VariableDeclaration", - "scope": 262, - "src": "4501:19:3", + "scope": 410, + "src": "4804:19:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7109,10 +7435,10 @@ "typeString": "uint256" }, "typeName": { - "id": 245, + "id": 393, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4501:7:3", + "src": "4804:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7122,26 +7448,26 @@ "visibility": "internal" } ], - "id": 251, + "id": 399, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 250, + "id": 398, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 247, + "id": 395, "name": "startGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 230, - "src": "4523:8:3", + "referencedDeclaration": 378, + "src": "4826:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7154,18 +7480,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 248, + "id": 396, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4029, - "src": "4534:7:3", + "referencedDeclaration": 3821, + "src": "4837:7:5", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 249, + "id": 397, "isConstant": false, "isLValue": false, "isPure": false, @@ -7173,20 +7499,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4534:9:3", + "src": "4837:9:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4523:20:3", + "src": "4826:20:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "4501:42:3" + "src": "4804:42:5" }, { "expression": { @@ -7200,12 +7526,12 @@ "arguments": [ { "argumentTypes": null, - "id": 256, + "id": 404, "name": "requiredGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 246, - "src": "4651:11:3", + "referencedDeclaration": 394, + "src": "4954:11:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7221,18 +7547,18 @@ ], "expression": { "argumentTypes": null, - "id": 254, + "id": 402, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4023, - "src": "4634:3:3", + "referencedDeclaration": 3815, + "src": "4937:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 255, + "id": 403, "isConstant": false, "isLValue": false, "isPure": true, @@ -7240,13 +7566,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4634:16:3", + "src": "4937:16:5", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 257, + "id": 405, "isConstant": false, "isLValue": false, "isPure": false, @@ -7254,7 +7580,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4634:29:3", + "src": "4937:29:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -7268,20 +7594,20 @@ "typeString": "bytes memory" } ], - "id": 253, + "id": 401, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4627:6:3", + "src": "4930:6:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_string_storage_ptr_$", "typeString": "type(string storage pointer)" }, "typeName": "string" }, - "id": 258, + "id": 406, "isConstant": false, "isLValue": false, "isPure": false, @@ -7289,7 +7615,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4627:37:3", + "src": "4930:37:5", "typeDescriptions": { "typeIdentifier": "t_string_memory", "typeString": "string memory" @@ -7303,21 +7629,21 @@ "typeString": "string memory" } ], - "id": 252, + "id": 400, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 4041, - 4042 + 3833, + 3834 ], - "referencedDeclaration": 4042, - "src": "4620:6:3", + "referencedDeclaration": 3834, + "src": "4923:6:5", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 259, + "id": 407, "isConstant": false, "isLValue": false, "isPure": false, @@ -7325,57 +7651,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4620:45:3", + "src": "4923:45:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 260, + "id": 408, "nodeType": "ExpressionStatement", - "src": "4620:45:3" + "src": "4923:45:5" } ] }, "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 `execTransactionAndPaySubmitter`\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": 262, + "id": 410, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 225, + "id": 373, "modifierName": { "argumentTypes": null, - "id": 224, + "id": 372, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3064, - "src": "4260:10:3", + "referencedDeclaration": 1764, + "src": "4563:10:5", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4260:10:3" + "src": "4563:10:5" } ], "name": "requiredTxGas", "nodeType": "FunctionDefinition", "parameters": { - "id": 223, + "id": 371, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 216, + "id": 364, "name": "to", "nodeType": "VariableDeclaration", - "scope": 262, - "src": "4172:10:3", + "scope": 410, + "src": "4475:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7383,10 +7709,10 @@ "typeString": "address" }, "typeName": { - "id": 215, + "id": 363, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4172:7:3", + "src": "4475:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7397,11 +7723,11 @@ }, { "constant": false, - "id": 218, + "id": 366, "name": "value", "nodeType": "VariableDeclaration", - "scope": 262, - "src": "4184:13:3", + "scope": 410, + "src": "4487:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7409,10 +7735,10 @@ "typeString": "uint256" }, "typeName": { - "id": 217, + "id": 365, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4184:7:3", + "src": "4487:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7423,11 +7749,11 @@ }, { "constant": false, - "id": 220, + "id": 368, "name": "data", "nodeType": "VariableDeclaration", - "scope": 262, - "src": "4199:10:3", + "scope": 410, + "src": "4502:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7435,10 +7761,10 @@ "typeString": "bytes" }, "typeName": { - "id": 219, + "id": 367, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "4199:5:3", + "src": "4502:5:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -7449,11 +7775,11 @@ }, { "constant": false, - "id": 222, + "id": 370, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 262, - "src": "4211:24:3", + "scope": 410, + "src": "4514:24:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7462,11 +7788,11 @@ }, "typeName": { "contractScope": null, - "id": 221, + "id": 369, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 29, - "src": "4211:14:3", + "src": "4514:14:5", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" @@ -7476,20 +7802,20 @@ "visibility": "internal" } ], - "src": "4171:65:3" + "src": "4474:65:5" }, "payable": false, "returnParameters": { - "id": 228, + "id": 376, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 227, + "id": 375, "name": "", "nodeType": "VariableDeclaration", - "scope": 262, - "src": "4288:7:3", + "scope": 410, + "src": "4591:7:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7497,10 +7823,10 @@ "typeString": "uint256" }, "typeName": { - "id": 226, + "id": 374, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4288:7:3", + "src": "4591:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7510,32 +7836,32 @@ "visibility": "internal" } ], - "src": "4287:9:3" + "src": "4590:9:5" }, - "scope": 369, - "src": "4149:523:3", + "scope": 529, + "src": "4452:523:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 321, + "id": 469, "nodeType": "Block", - "src": "4765:519:3", + "src": "5068:519:5", "statements": [ { "assignments": [ - 270 + 418 ], "declarations": [ { "constant": false, - "id": 270, + "id": 418, "name": "lastOwner", "nodeType": "VariableDeclaration", - "scope": 322, - "src": "4827:17:3", + "scope": 470, + "src": "5130:17:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7543,10 +7869,10 @@ "typeString": "address" }, "typeName": { - "id": 269, + "id": 417, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4827:7:3", + "src": "5130:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7556,21 +7882,21 @@ "visibility": "internal" } ], - "id": 274, + "id": 422, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 272, + "id": 420, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4855:1:3", + "src": "5158:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7586,20 +7912,20 @@ "typeString": "int_const 0" } ], - "id": 271, + "id": 419, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4847:7:3", + "src": "5150:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 273, + "id": 421, "isConstant": false, "isLValue": false, "isPure": true, @@ -7607,25 +7933,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4847:10:3", + "src": "5150:10:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "4827:30:3" + "src": "5130:30:5" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 276, + "id": 424, "name": "currentOwner", "nodeType": "VariableDeclaration", - "scope": 322, - "src": "4867:20:3", + "scope": 470, + "src": "5170:20:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7633,10 +7959,10 @@ "typeString": "address" }, "typeName": { - "id": 275, + "id": 423, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4867:7:3", + "src": "5170:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7646,21 +7972,21 @@ "visibility": "internal" } ], - "id": 277, + "id": 425, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "4867:20:3" + "src": "5170:20:5" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 279, + "id": 427, "name": "i", "nodeType": "VariableDeclaration", - "scope": 322, - "src": "4897:9:3", + "scope": 470, + "src": "5200:9:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7668,10 +7994,10 @@ "typeString": "uint256" }, "typeName": { - "id": 278, + "id": 426, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4897:7:3", + "src": "5200:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7681,33 +8007,33 @@ "visibility": "internal" } ], - "id": 280, + "id": 428, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "4897:9:3" + "src": "5200:9:5" }, { "body": { - "id": 319, + "id": 467, "nodeType": "Block", - "src": "4990:288:3", + "src": "5293:288:5", "statements": [ { "expression": { "argumentTypes": null, - "id": 297, + "id": 445, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 291, + "id": 439, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 276, - "src": "5004:12:3", + "referencedDeclaration": 424, + "src": "5307:12:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7720,12 +8046,12 @@ "arguments": [ { "argumentTypes": null, - "id": 293, + "id": 441, "name": "txHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 264, - "src": "5030:6:3", + "referencedDeclaration": 412, + "src": "5333:6:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7733,12 +8059,12 @@ }, { "argumentTypes": null, - "id": 294, + "id": 442, "name": "signatures", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 266, - "src": "5038:10:3", + "referencedDeclaration": 414, + "src": "5341:10:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -7746,12 +8072,12 @@ }, { "argumentTypes": null, - "id": 295, + "id": 443, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "5050:1:3", + "referencedDeclaration": 427, + "src": "5353:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7773,18 +8099,18 @@ "typeString": "uint256" } ], - "id": 292, + "id": 440, "name": "recoverKey", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3105, - "src": "5019:10:3", + "referencedDeclaration": 1805, + "src": "5322:10:5", "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": 296, + "id": 444, "isConstant": false, "isLValue": false, "isPure": false, @@ -7792,21 +8118,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5019:33:3", + "src": "5322:33:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5004:48:3", + "src": "5307:48:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 298, + "id": 446, "nodeType": "ExpressionStatement", - "src": "5004:48:3" + "src": "5307:48:5" }, { "expression": { @@ -7818,7 +8144,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 304, + "id": 452, "isConstant": false, "isLValue": false, "isPure": false, @@ -7827,26 +8153,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 300, + "id": 448, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, - "src": "5074:6:3", + "referencedDeclaration": 1194, + "src": "5377:6:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 302, + "id": 450, "indexExpression": { "argumentTypes": null, - "id": 301, + "id": 449, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 276, - "src": "5081:12:3", + "referencedDeclaration": 424, + "src": "5384:12:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7857,7 +8183,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5074:20:3", + "src": "5377:20:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7868,14 +8194,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 303, + "id": 451, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5098:1:3", + "src": "5401:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7883,7 +8209,7 @@ }, "value": "0" }, - "src": "5074:25:3", + "src": "5377:25:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7892,14 +8218,14 @@ { "argumentTypes": null, "hexValue": "5369676e6174757265206e6f742070726f7669646564206279206f776e6572", - "id": 305, + "id": 453, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5101:33:3", + "src": "5404:33:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_09247dae670daab7cf1923d3334eea07c14df3c0a8f5233960935c63f47104a9", @@ -7919,21 +8245,21 @@ "typeString": "literal_string \"Signature not provided by owner\"" } ], - "id": 299, + "id": 447, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, - "src": "5066:7:3", + "referencedDeclaration": 3832, + "src": "5369:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 306, + "id": 454, "isConstant": false, "isLValue": false, "isPure": false, @@ -7941,15 +8267,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5066:69:3", + "src": "5369:69:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 307, + "id": 455, "nodeType": "ExpressionStatement", - "src": "5066:69:3" + "src": "5369:69:5" }, { "expression": { @@ -7961,19 +8287,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 311, + "id": 459, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 309, + "id": 457, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 276, - "src": "5157:12:3", + "referencedDeclaration": 424, + "src": "5460:12:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7983,18 +8309,18 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 310, + "id": 458, "name": "lastOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 270, - "src": "5172:9:3", + "referencedDeclaration": 418, + "src": "5475:9:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5157:24:3", + "src": "5460:24:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8003,14 +8329,14 @@ { "argumentTypes": null, "hexValue": "5369676e61747572657320617265206e6f74206f726465726564206279206f776e65722061646472657373", - "id": 312, + "id": 460, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5183:45:3", + "src": "5486:45:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_597a123a1bc14bc9690387ae0fec99721cc18eefa85fa2531a7593a762444235", @@ -8030,21 +8356,21 @@ "typeString": "literal_string \"Signatures are not ordered by owner address\"" } ], - "id": 308, + "id": 456, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, - "src": "5149:7:3", + "referencedDeclaration": 3832, + "src": "5452:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 313, + "id": 461, "isConstant": false, "isLValue": false, "isPure": false, @@ -8052,32 +8378,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5149:80:3", + "src": "5452:80:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 314, + "id": 462, "nodeType": "ExpressionStatement", - "src": "5149:80:3" + "src": "5452:80:5" }, { "expression": { "argumentTypes": null, - "id": 317, + "id": 465, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 315, + "id": 463, "name": "lastOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 270, - "src": "5243:9:3", + "referencedDeclaration": 418, + "src": "5546:9:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8087,26 +8413,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 316, + "id": 464, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 276, - "src": "5255:12:3", + "referencedDeclaration": 424, + "src": "5558:12:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5243:24:3", + "src": "5546:24:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 318, + "id": 466, "nodeType": "ExpressionStatement", - "src": "5243:24:3" + "src": "5546:24:5" } ] }, @@ -8116,19 +8442,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 287, + "id": 435, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 285, + "id": 433, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4970:1:3", + "referencedDeclaration": 427, + "src": "5273:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8138,40 +8464,40 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 286, + "id": 434, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2498, - "src": "4974:9:3", + "referencedDeclaration": 1198, + "src": "5277:9:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4970:13:3", + "src": "5273:13:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 320, + "id": 468, "initializationExpression": { "expression": { "argumentTypes": null, - "id": 283, + "id": 431, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 281, + "id": 429, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4963:1:3", + "referencedDeclaration": 427, + "src": "5266:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8182,14 +8508,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 282, + "id": 430, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4967:1:3", + "src": "5270:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -8197,20 +8523,20 @@ }, "value": "0" }, - "src": "4963:5:3", + "src": "5266:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 284, + "id": 432, "nodeType": "ExpressionStatement", - "src": "4963:5:3" + "src": "5266:5:5" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 289, + "id": 437, "isConstant": false, "isLValue": false, "isPure": false, @@ -8218,15 +8544,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "4985:3:3", + "src": "5288:3:5", "subExpression": { "argumentTypes": null, - "id": 288, + "id": 436, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4985:1:3", + "referencedDeclaration": 427, + "src": "5288:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8237,17 +8563,17 @@ "typeString": "uint256" } }, - "id": 290, + "id": 438, "nodeType": "ExpressionStatement", - "src": "4985:3:3" + "src": "5288:3:5" }, "nodeType": "ForStatement", - "src": "4958:320:3" + "src": "5261:320:5" } ] }, "documentation": null, - "id": 322, + "id": 470, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -8255,16 +8581,16 @@ "name": "checkHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 267, + "id": 415, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 264, + "id": 412, "name": "txHash", "nodeType": "VariableDeclaration", - "scope": 322, - "src": "4697:14:3", + "scope": 470, + "src": "5000:14:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8272,10 +8598,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 263, + "id": 411, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4697:7:3", + "src": "5000:7:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -8286,11 +8612,11 @@ }, { "constant": false, - "id": 266, + "id": 414, "name": "signatures", "nodeType": "VariableDeclaration", - "scope": 322, - "src": "4713:16:3", + "scope": 470, + "src": "5016:16:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8298,10 +8624,10 @@ "typeString": "bytes" }, "typeName": { - "id": 265, + "id": 413, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "4713:5:3", + "src": "5016:5:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -8311,29 +8637,61 @@ "visibility": "internal" } ], - "src": "4696:34:3" + "src": "4999:34:5" }, "payable": false, "returnParameters": { - "id": 268, + "id": 416, "nodeType": "ParameterList", "parameters": [], - "src": "4765:0:3" + "src": "5068:0:5" }, - "scope": 369, - "src": "4678:606:3", + "scope": 529, + "src": "4981:606:5", "stateMutability": "view", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 367, + "id": 527, "nodeType": "Block", - "src": "6208:176:3", + "src": "6511:302:5", "statements": [ { - "expression": { + "assignments": [ + 494 + ], + "declarations": [ + { + "constant": false, + "id": 494, + "name": "safeTxHash", + "nodeType": "VariableDeclaration", + "scope": 528, + "src": "6521:18:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 493, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6521:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 512, + "initialValue": { "argumentTypes": null, "arguments": [ { @@ -8341,137 +8699,25 @@ "arguments": [ { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30783139", - "id": 349, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6270:4:3", - "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": 348, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6265:4:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 350, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6265:10:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 352, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6282:1:3", - "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": 351, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6277:4:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 353, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6277:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "id": 354, - "name": "this", + "id": 498, + "name": "SAFE_TX_TYPEHASH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4071, - "src": "6286:4:3", + "referencedDeclaration": 231, + "src": "6576:16:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_GnosisSafePersonalEdition_$369", - "typeString": "contract GnosisSafePersonalEdition" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, { "argumentTypes": null, - "id": 355, + "id": 499, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 324, - "src": "6292:2:3", + "referencedDeclaration": 472, + "src": "6594:2:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8479,12 +8725,12 @@ }, { "argumentTypes": null, - "id": 356, + "id": 500, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 326, - "src": "6296:5:3", + "referencedDeclaration": 474, + "src": "6598:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8492,25 +8738,61 @@ }, { "argumentTypes": null, - "id": 357, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 328, - "src": "6303:4:3", + "arguments": [ + { + "argumentTypes": null, + "id": 502, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 476, + "src": "6615:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 501, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3822, + "src": "6605:9:5", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6605:15:5", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, { "argumentTypes": null, - "id": 358, + "id": 504, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 330, - "src": "6309:9:3", + "referencedDeclaration": 478, + "src": "6622:9:5", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" @@ -8518,12 +8800,12 @@ }, { "argumentTypes": null, - "id": 359, + "id": 505, "name": "safeTxGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 332, - "src": "6320:9:3", + "referencedDeclaration": 480, + "src": "6633:9:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8531,12 +8813,12 @@ }, { "argumentTypes": null, - "id": 360, + "id": 506, "name": "dataGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 334, - "src": "6331:7:3", + "referencedDeclaration": 482, + "src": "6644:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8544,12 +8826,12 @@ }, { "argumentTypes": null, - "id": 361, + "id": 507, "name": "gasPrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 336, - "src": "6340:8:3", + "referencedDeclaration": 484, + "src": "6653:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8557,12 +8839,12 @@ }, { "argumentTypes": null, - "id": 362, + "id": 508, "name": "gasToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 338, - "src": "6350:8:3", + "referencedDeclaration": 486, + "src": "6663:8:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8570,12 +8852,12 @@ }, { "argumentTypes": null, - "id": 363, + "id": 509, "name": "_nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 340, - "src": "6360:6:3", + "referencedDeclaration": 488, + "src": "6673:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8585,16 +8867,8 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_contract$_GnosisSafePersonalEdition_$369", - "typeString": "contract GnosisSafePersonalEdition" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" }, { "typeIdentifier": "t_address", @@ -8605,8 +8879,8 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" }, { "typeIdentifier": "t_enum$_Operation_$29", @@ -8635,18 +8909,260 @@ ], "expression": { "argumentTypes": null, - "id": 346, + "id": 496, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4023, - "src": "6248:3:3", + "referencedDeclaration": 3815, + "src": "6565:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 347, + "id": 497, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6565:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6565:115:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 495, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3822, + "src": "6542:9:5", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6542:148:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6521:169:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30783139", + "id": 517, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6752:4:5", + "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": 516, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6747:4:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": "byte" + }, + "id": 518, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6747:10:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 520, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6764:1:5", + "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": 519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6759:4:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": "byte" + }, + "id": 521, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6759:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + { + "argumentTypes": null, + "id": 522, + "name": "domainSeperator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "6768:15:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 523, + "name": "safeTxHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 494, + "src": "6785:10:5", + "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": 514, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3815, + "src": "6730:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 515, "isConstant": false, "isLValue": false, "isPure": true, @@ -8654,13 +9170,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6248:16:3", + "src": "6730:16:5", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 364, + "id": 524, "isConstant": false, "isLValue": false, "isPure": false, @@ -8668,7 +9184,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6248:119:3", + "src": "6730:66:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -8682,18 +9198,18 @@ "typeString": "bytes memory" } ], - "id": 345, + "id": 513, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4030, - "src": "6225:9:3", + "referencedDeclaration": 3822, + "src": "6707:9:5", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 365, + "id": 525, "isConstant": false, "isLValue": false, "isPure": false, @@ -8701,21 +9217,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6225:152:3", + "src": "6707:99:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 344, - "id": 366, + "functionReturnParameters": 492, + "id": 526, "nodeType": "Return", - "src": "6218:159:3" + "src": "6700:106:5" } ] }, "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 _nonce Transaction nonce.\n @return Transaction hash.", - "id": 368, + "id": 528, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -8723,16 +9239,16 @@ "name": "getTransactionHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 341, + "id": 489, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 324, + "id": 472, "name": "to", "nodeType": "VariableDeclaration", - "scope": 368, - "src": "5921:10:3", + "scope": 528, + "src": "6224:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8740,10 +9256,10 @@ "typeString": "address" }, "typeName": { - "id": 323, + "id": 471, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5921:7:3", + "src": "6224:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8754,11 +9270,11 @@ }, { "constant": false, - "id": 326, + "id": 474, "name": "value", "nodeType": "VariableDeclaration", - "scope": 368, - "src": "5942:13:3", + "scope": 528, + "src": "6245:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8766,10 +9282,10 @@ "typeString": "uint256" }, "typeName": { - "id": 325, + "id": 473, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5942:7:3", + "src": "6245:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8780,11 +9296,11 @@ }, { "constant": false, - "id": 328, + "id": 476, "name": "data", "nodeType": "VariableDeclaration", - "scope": 368, - "src": "5966:10:3", + "scope": 528, + "src": "6269:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8792,10 +9308,10 @@ "typeString": "bytes" }, "typeName": { - "id": 327, + "id": 475, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "5966:5:3", + "src": "6269:5:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -8806,11 +9322,11 @@ }, { "constant": false, - "id": 330, + "id": 478, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 368, - "src": "5987:24:3", + "scope": 528, + "src": "6290:24:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8819,11 +9335,11 @@ }, "typeName": { "contractScope": null, - "id": 329, + "id": 477, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 29, - "src": "5987:14:3", + "src": "6290:14:5", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" @@ -8834,11 +9350,11 @@ }, { "constant": false, - "id": 332, + "id": 480, "name": "safeTxGas", "nodeType": "VariableDeclaration", - "scope": 368, - "src": "6022:17:3", + "scope": 528, + "src": "6325:17:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8846,10 +9362,10 @@ "typeString": "uint256" }, "typeName": { - "id": 331, + "id": 479, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6022:7:3", + "src": "6325:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8860,11 +9376,11 @@ }, { "constant": false, - "id": 334, + "id": 482, "name": "dataGas", "nodeType": "VariableDeclaration", - "scope": 368, - "src": "6050:15:3", + "scope": 528, + "src": "6353:15:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8872,10 +9388,10 @@ "typeString": "uint256" }, "typeName": { - "id": 333, + "id": 481, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6050:7:3", + "src": "6353:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8886,11 +9402,11 @@ }, { "constant": false, - "id": 336, + "id": 484, "name": "gasPrice", "nodeType": "VariableDeclaration", - "scope": 368, - "src": "6076:16:3", + "scope": 528, + "src": "6379:16:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8898,10 +9414,10 @@ "typeString": "uint256" }, "typeName": { - "id": 335, + "id": 483, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6076:7:3", + "src": "6379:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8912,11 +9428,11 @@ }, { "constant": false, - "id": 338, + "id": 486, "name": "gasToken", "nodeType": "VariableDeclaration", - "scope": 368, - "src": "6103:16:3", + "scope": 528, + "src": "6406:16:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8924,10 +9440,10 @@ "typeString": "address" }, "typeName": { - "id": 337, + "id": 485, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6103:7:3", + "src": "6406:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8938,11 +9454,11 @@ }, { "constant": false, - "id": 340, + "id": 488, "name": "_nonce", "nodeType": "VariableDeclaration", - "scope": 368, - "src": "6129:14:3", + "scope": 528, + "src": "6432:14:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8950,10 +9466,10 @@ "typeString": "uint256" }, "typeName": { - "id": 339, + "id": 487, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6129:7:3", + "src": "6432:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8963,20 +9479,20 @@ "visibility": "internal" } ], - "src": "5911:238:3" + "src": "6214:238:5" }, "payable": false, "returnParameters": { - "id": 344, + "id": 492, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 343, + "id": 491, "name": "", "nodeType": "VariableDeclaration", - "scope": 368, - "src": "6195:7:3", + "scope": 528, + "src": "6498:7:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8984,10 +9500,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 342, + "id": 490, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6195:7:3", + "src": "6498:7:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -8997,20 +9513,20 @@ "visibility": "internal" } ], - "src": "6194:9:3" + "src": "6497:9:5" }, - "scope": 369, - "src": "5884:500:3", + "scope": 529, + "src": "6187:626:5", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 370, - "src": "483:5903:3" + "scope": 530, + "src": "483:6332:5" } ], - "src": "0:6387:3" + "src": "0:6816:5" }, "compiler": { "name": "solc", @@ -9020,28 +9536,16 @@ "4": { "events": {}, "links": {}, - "address": "0x98391eab1d6e8c85c67b4ccf5629f4a9b8e10308", - "transactionHash": "0x029e76547c83fd8850d0ee1715c77e6ba1119369730d79da11d67d934aa0303c" - }, - "1530013596495": { - "events": {}, - "links": {}, - "address": "0x7da3d9eca8ee137a1305991016c1d482b6c96413", - "transactionHash": "0x77553eb255575092672bf623f08e784bed37dd5796b08a0afd13b96e9f4d8319" - }, - "1530525742205": { - "events": {}, - "links": {}, - "address": "0xb4a74cb6e8e414e43c61c82a533808e6ae48acee", - "transactionHash": "0x0a073b410fe8dc426e2147e8e256a537c770de9d895a3bf2c2680ad39db4dc19" + "address": "0xaaccf4196ff4fe89da8251a9dfedd40400fb4cbc", + "transactionHash": "0x19ffaf24e1f95232c9cc086d410e35eafa280967778800a1bbffcd5e99f085a8" }, - "1530611935189": { + "1534750848541": { "events": {}, "links": {}, - "address": "0x5bc52159f8c6c9e2d02c811c0ca0a9b7cf376f6d", - "transactionHash": "0x0a073b410fe8dc426e2147e8e256a537c770de9d895a3bf2c2680ad39db4dc19" + "address": "0xfc628dd79137395f3c9744e33b1c5de554d94882", + "transactionHash": "0xb3bdadd14f16f8ed80bbef04d5c539f7b41fc170a1356d295290d04cf62f2c2a" } }, "schemaVersion": "2.0.0", - "updatedAt": "2018-07-03T09:59:18.547Z" + "updatedAt": "2018-08-20T07:50:29.713Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/GnosisSafeTeamEdition.json b/safe-contracts/build/contracts/GnosisSafeTeamEdition.json index ed2345af11..c24ac47074 100644 --- a/safe-contracts/build/contracts/GnosisSafeTeamEdition.json +++ b/safe-contracts/build/contracts/GnosisSafeTeamEdition.json @@ -45,6 +45,20 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "constant": true, + "inputs": [], + "name": "DOMAIN_SEPERATOR_TYPEHASH", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": true, "inputs": [ @@ -230,6 +244,34 @@ "stateMutability": "view", "type": "function" }, + { + "constant": true, + "inputs": [], + "name": "domainSeperator", + "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": [ @@ -356,6 +398,20 @@ "name": "ContractCreation", "type": "event" }, + { + "constant": false, + "inputs": [ + { + "name": "transactionHash", + "type": "bytes32" + } + ], + "name": "approveTransactionByHash", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": false, "inputs": [ @@ -452,51 +508,51 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50613df2806100206000396000f300608060405260043610610128576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630d582f131461012a5780630ec78d9e14610177578063153414fa1461024d57806324cd131f146102f75780632b500041146103a15780632f54bf6e14610467578063468721a7146104c2578063610b59251461057a578063694e80c3146105bd5780637de7edef146105ea57806385e332cd1461062d5780638cff635514610684578063a09e89f5146106db578063a0e67e2b14610740578063a3f4df7e146107ac578063b2494df31461083c578063e009cfde146108a8578063e318b52b1461090b578063e52cb36a1461098e578063e75235b8146109d3578063f8dc5dd9146109fe578063ffa1ad7414610a6b575b005b34801561013657600080fd5b50610175600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610afb565b005b34801561018357600080fd5b5061024b6004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610f01565b005b34801561025957600080fd5b506102f5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190505050610f1b565b005b34801561030357600080fd5b5061039f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190505050611138565b005b3480156103ad57600080fd5b50610449600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291905050506112db565b60405180826000191660001916815260200191505060405180910390f35b34801561047357600080fd5b506104a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611563565b604051808215151515815260200191505060405180910390f35b3480156104ce57600080fd5b50610560600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291905050506115e5565b604051808215151515815260200191505060405180910390f35b34801561058657600080fd5b506105bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611711565b005b3480156105c957600080fd5b506105e860048036038101908080359060200190929190505050611aef565b005b3480156105f657600080fd5b5061062b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d01565b005b34801561063957600080fd5b50610642611ec2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561069057600080fd5b50610699611ec7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106e757600080fd5b5061072a6004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ecc565b6040518082815260200191505060405180910390f35b34801561074c57600080fd5b50610755611ef1565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561079857808201518184015260208101905061077d565b505050509050019250505060405180910390f35b3480156107b857600080fd5b506107c161208c565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108015780820151818401526020810190506107e6565b50505050905090810190601f16801561082e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561084857600080fd5b506108516120c5565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610894578082015181840152602081019050610879565b505050509050019250505060405180910390f35b3480156108b457600080fd5b50610909600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061236c565b005b34801561091757600080fd5b5061098c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612785565b005b34801561099a57600080fd5b506109bd6004803603810190808035600019169060200190929190505050612dd2565b6040518082815260200191505060405180910390f35b3480156109df57600080fd5b506109e8612dea565b6040518082815260200191505060405180910390f35b348015610a0a57600080fd5b50610a69600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612df4565b005b348015610a7757600080fd5b50610a806132d9565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610ac0578082015181840152602081019050610aa5565b50505050905090810190601f168015610aed5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bc4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015610c185750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515610c8c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610d79576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060036000815480929190600101919050555080600454141515610efd57610efc81611aef565b5b5050565b610f0b8484613312565b610f1582826137d2565b50505050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561100a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206973206e6f7420616e206f776e65720000000000000000000081525060200191505060405180910390fd5b61101786868686866112db565b90506000600560008360001916600019168152602001908152602001600020541415156110d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f53616665207472616e73616374696f6e20616c7265616479206578656375746581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160066000836000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050505050565b600061114786868686866112db565b9050600060056000836000191660001916815260200190815260200160002054141515611202576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f53616665207472616e73616374696f6e20616c7265616479206578656375746581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61120b81613a09565b600160056000836000191660001916815260200190815260200160002081905550611239868686865a613c87565b15156112d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f436f756c64206e6f7420657865637574652073616665207472616e736163746981526020017f6f6e00000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b505050505050565b600060197f01000000000000000000000000000000000000000000000000000000000000000260007f01000000000000000000000000000000000000000000000000000000000000000230888888888860405160200180897effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101887effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140185815260200184805190602001908083835b60208310151561147f578051825260208201915060208101905060208303925061145a565b6001836020036101000a0380198251168184511680821785525050505050509050018360028111156114ad57fe5b60ff167f0100000000000000000000000000000000000000000000000000000000000000028152600101828152602001985050505050505050506040516020818303038152906040526040518082805190602001908083835b60208310151561152b5780518252602082019150602081019050602083039250611506565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905095945050505050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156116fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b611707858585855a613c87565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415801561182e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156118a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561198f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bb8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6003548111151515611c58576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018110151515611cf7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060048190555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611dca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515611e7f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b600181565b6006602052816000526040600020602052806000526040600020600091509150505481565b606080600080600354604051908082528060200260200182016040528015611f285781602001602082028038833980820191505090505b5092506000915060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151561208357808383815181101515611fd857fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050611f93565b82935050505090565b6040805190810160405280601881526020017f476e6f7369732053616665205465616d2045646974696f6e000000000000000081525081565b606060008060606000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156121d957600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050612134565b826040519080825280602002602001820160405280156122085781602001602082028038833980820191505090505b5090506000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515612363578181848151811015156122b857fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050612273565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612435576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156124895750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156124fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612625576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561284e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156128a25750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612916576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612a03576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015612a575750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515612acb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612bf3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b60056020528060005260406000206000915090505481565b6000600454905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612ebd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060016003540310151515612f60576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015612fb45750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515613028576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613150576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060036000815480929190600190039190505550806004541415156132d4576132d381611aef565b5b505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b600080600080600454141515613390576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e657273206861766520616c7265616479206265656e207365747570000081525060200191505060405180910390fd5b8451841115151561342f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600184101515156134ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60019250600091505b845182101561373d5784828151811015156134ee57fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff161415801561354e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156135c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156136af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4475706c6963617465206f776e657220616464726573732070726f766964656481525060200191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080925081806001019250506134d7565b6001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508451600381905550836004819055505050505050565b600060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156138e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6f64756c6573206861766520616c7265616479206265656e20696e6974696181526020017f6c697a656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff16141515613a055761399082825a613d84565b1515613a04576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e0081525060200191505060405180910390fd5b5b5050565b60008060008060066000866000191660001916815260200190815260200160002093506000925060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515613c065760008460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141590503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480613b465750805b15613b9f578015613b965760008460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b82806001019350505b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150613a94565b6004548310151515613c80576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4e6f7420656e6f75676820636f6e6669726d6174696f6e73000000000000000081525060200191505060405180910390fd5b5050505050565b60008060006002811115613c9757fe5b846002811115613ca357fe5b1415613cbc57613cb587878786613d9b565b9150613d7a565b60016002811115613cc957fe5b846002811115613cd557fe5b1415613ced57613ce6878685613d84565b9150613d79565b613cf685613db4565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b60008060008451602086018786f490509392505050565b6000806000845160208601878987f19050949350505050565b60008151602083016000f090509190505600a165627a7a72305820036a0afc03b39a75ef4535ed6b885910efa5f56561fc0f07e63f7cbe5494b4c60029", - "deployedBytecode": "0x608060405260043610610128576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630d582f131461012a5780630ec78d9e14610177578063153414fa1461024d57806324cd131f146102f75780632b500041146103a15780632f54bf6e14610467578063468721a7146104c2578063610b59251461057a578063694e80c3146105bd5780637de7edef146105ea57806385e332cd1461062d5780638cff635514610684578063a09e89f5146106db578063a0e67e2b14610740578063a3f4df7e146107ac578063b2494df31461083c578063e009cfde146108a8578063e318b52b1461090b578063e52cb36a1461098e578063e75235b8146109d3578063f8dc5dd9146109fe578063ffa1ad7414610a6b575b005b34801561013657600080fd5b50610175600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610afb565b005b34801561018357600080fd5b5061024b6004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610f01565b005b34801561025957600080fd5b506102f5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190505050610f1b565b005b34801561030357600080fd5b5061039f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190505050611138565b005b3480156103ad57600080fd5b50610449600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291905050506112db565b60405180826000191660001916815260200191505060405180910390f35b34801561047357600080fd5b506104a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611563565b604051808215151515815260200191505060405180910390f35b3480156104ce57600080fd5b50610560600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291905050506115e5565b604051808215151515815260200191505060405180910390f35b34801561058657600080fd5b506105bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611711565b005b3480156105c957600080fd5b506105e860048036038101908080359060200190929190505050611aef565b005b3480156105f657600080fd5b5061062b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d01565b005b34801561063957600080fd5b50610642611ec2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561069057600080fd5b50610699611ec7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106e757600080fd5b5061072a6004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ecc565b6040518082815260200191505060405180910390f35b34801561074c57600080fd5b50610755611ef1565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561079857808201518184015260208101905061077d565b505050509050019250505060405180910390f35b3480156107b857600080fd5b506107c161208c565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108015780820151818401526020810190506107e6565b50505050905090810190601f16801561082e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561084857600080fd5b506108516120c5565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610894578082015181840152602081019050610879565b505050509050019250505060405180910390f35b3480156108b457600080fd5b50610909600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061236c565b005b34801561091757600080fd5b5061098c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612785565b005b34801561099a57600080fd5b506109bd6004803603810190808035600019169060200190929190505050612dd2565b6040518082815260200191505060405180910390f35b3480156109df57600080fd5b506109e8612dea565b6040518082815260200191505060405180910390f35b348015610a0a57600080fd5b50610a69600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612df4565b005b348015610a7757600080fd5b50610a806132d9565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610ac0578082015181840152602081019050610aa5565b50505050905090810190601f168015610aed5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bc4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015610c185750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515610c8c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610d79576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060036000815480929190600101919050555080600454141515610efd57610efc81611aef565b5b5050565b610f0b8484613312565b610f1582826137d2565b50505050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561100a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206973206e6f7420616e206f776e65720000000000000000000081525060200191505060405180910390fd5b61101786868686866112db565b90506000600560008360001916600019168152602001908152602001600020541415156110d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f53616665207472616e73616374696f6e20616c7265616479206578656375746581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160066000836000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050505050565b600061114786868686866112db565b9050600060056000836000191660001916815260200190815260200160002054141515611202576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f53616665207472616e73616374696f6e20616c7265616479206578656375746581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61120b81613a09565b600160056000836000191660001916815260200190815260200160002081905550611239868686865a613c87565b15156112d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f436f756c64206e6f7420657865637574652073616665207472616e736163746981526020017f6f6e00000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b505050505050565b600060197f01000000000000000000000000000000000000000000000000000000000000000260007f01000000000000000000000000000000000000000000000000000000000000000230888888888860405160200180897effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101887effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140185815260200184805190602001908083835b60208310151561147f578051825260208201915060208101905060208303925061145a565b6001836020036101000a0380198251168184511680821785525050505050509050018360028111156114ad57fe5b60ff167f0100000000000000000000000000000000000000000000000000000000000000028152600101828152602001985050505050505050506040516020818303038152906040526040518082805190602001908083835b60208310151561152b5780518252602082019150602081019050602083039250611506565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905095945050505050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156116fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b611707858585855a613c87565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415801561182e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156118a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561198f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bb8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6003548111151515611c58576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018110151515611cf7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060048190555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611dca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515611e7f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b600181565b6006602052816000526040600020602052806000526040600020600091509150505481565b606080600080600354604051908082528060200260200182016040528015611f285781602001602082028038833980820191505090505b5092506000915060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151561208357808383815181101515611fd857fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050611f93565b82935050505090565b6040805190810160405280601881526020017f476e6f7369732053616665205465616d2045646974696f6e000000000000000081525081565b606060008060606000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156121d957600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050612134565b826040519080825280602002602001820160405280156122085781602001602082028038833980820191505090505b5090506000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515612363578181848151811015156122b857fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050612273565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612435576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156124895750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156124fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612625576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561284e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156128a25750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612916576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612a03576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015612a575750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515612acb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612bf3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b60056020528060005260406000206000915090505481565b6000600454905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612ebd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060016003540310151515612f60576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015612fb45750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515613028576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613150576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060036000815480929190600190039190505550806004541415156132d4576132d381611aef565b5b505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b600080600080600454141515613390576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e657273206861766520616c7265616479206265656e207365747570000081525060200191505060405180910390fd5b8451841115151561342f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600184101515156134ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60019250600091505b845182101561373d5784828151811015156134ee57fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff161415801561354e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156135c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156136af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4475706c6963617465206f776e657220616464726573732070726f766964656481525060200191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080925081806001019250506134d7565b6001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508451600381905550836004819055505050505050565b600060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156138e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6f64756c6573206861766520616c7265616479206265656e20696e6974696181526020017f6c697a656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff16141515613a055761399082825a613d84565b1515613a04576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e0081525060200191505060405180910390fd5b5b5050565b60008060008060066000866000191660001916815260200190815260200160002093506000925060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515613c065760008460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141590503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480613b465750805b15613b9f578015613b965760008460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b82806001019350505b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150613a94565b6004548310151515613c80576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4e6f7420656e6f75676820636f6e6669726d6174696f6e73000000000000000081525060200191505060405180910390fd5b5050505050565b60008060006002811115613c9757fe5b846002811115613ca357fe5b1415613cbc57613cb587878786613d9b565b9150613d7a565b60016002811115613cc957fe5b846002811115613cd557fe5b1415613ced57613ce6878685613d84565b9150613d79565b613cf685613db4565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b60008060008451602086018786f490509392505050565b6000806000845160208601878987f19050949350505050565b60008151602083016000f090509190505600a165627a7a72305820036a0afc03b39a75ef4535ed6b885910efa5f56561fc0f07e63f7cbe5494b4c60029", - "sourceMap": "272:4068:4:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;272:4068:4;;;;;;;", - "deployedSourceMap": "272:4068:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2093:595:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2093:595:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;693:303:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;693:303:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1266:638:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1266:638:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2346:618;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2346:618:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4009:329;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4009:329:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5613:129:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5613:129:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2841:429:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2841:429:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1311:459;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1311:459:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;5087:399:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5087:399:11;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;499:55:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;499:55:9;;;;;;;;;;;;;;;;;;;;;;;;;;;287:54:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;287:54:11;;;;;;;;;;;;;;;;;;;;;;;;;;;770:66:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;770:66:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5824:458:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5824:458:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;5824:458:11;;;;;;;;;;;;;;;;;336:56:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;336:56:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;336:56:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4794:738:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4794:738:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;4794:738:9;;;;;;;;;;;;;;;;;2031:474;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2031:474:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4147:751:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4147:751:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;536:46:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;536:46:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5492:115:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5492:115:11;;;;;;;;;;;;;;;;;;;;;;;3030:783;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3030:783:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;398:40:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;398:40:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;398:40:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2093:595:11;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2265:1:11;2256:5;:10;;;;:38;;;;;337:3;2270:24;;:5;:24;;;;2256:38;2248:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2404:1;2387:6;:13;2394:5;2387:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;2379:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2463:6;:23;337:3;2463:23;;;;;;;;;;;;;;;;;;;;;;;;;2447:6;:13;2454:5;2447:13;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2522:5;2496:6;:23;337:3;2496:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2537:10;;:12;;;;;;;;;;;;;2630:10;2617:9;;:23;;2613:68;;;2654:27;2670:10;2654:15;:27::i;:::-;2613:68;2093:595;;:::o;693:303:2:-;800:32;812:7;821:10;800:11;:32::i;:::-;967:22;980:2;984:4;967:12;:22::i;:::-;693:303;;;;:::o;1266:638:4:-;1605:23;1567:1;1545:6;:18;1552:10;1545:18;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;;1537:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1631:53;1650:2;1654:5;1661:4;1667:9;1678:5;1631:18;:53::i;:::-;1605:79;;1805:1;1774:10;:27;1785:15;1774:27;;;;;;;;;;;;;;;;;;:32;1766:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1896:1;1854:10;:27;1865:15;1854:27;;;;;;;;;;;;;;;;;:39;1882:10;1854:39;;;;;;;;;;;;;;;:43;;;;1266:638;;;;;;:::o;2346:618::-;2540:23;2566:53;2585:2;2589:5;2596:4;2602:9;2613:5;2566:18;:53::i;:::-;2540:79;;2668:1;2637:10;:27;2648:15;2637:27;;;;;;;;;;;;;;;;;;:32;2629:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2717:43;2744:15;2717:26;:43::i;:::-;2853:1;2823:10;:27;2834:15;2823:27;;;;;;;;;;;;;;;;;:31;;;;2872:46;2880:2;2884:5;2891:4;2897:9;2908;2872:7;:46::i;:::-;2864:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2346:618;;;;;;:::o;4009:329::-;4212:7;4274:4;4269:10;;4286:1;4281:7;;4290:4;4296:2;4300:5;4307:4;4313:9;4324:5;4252: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;;;4252:78:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;4252:78:4;;;4242: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;;;4242:89:4;;;;;;;;;;;;;;;;4235:96;;4009:329;;;;;;;:::o;5613:129:11:-;5690:4;5734:1;5717:6;:13;5724:5;5717:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;;5710:25;;5613:129;;;:::o;2841:429:9:-;2973:12;3081:1;3058:7;:19;3066:10;3058:19;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;3050:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3217:46;3225:2;3229:5;3236:4;3242:9;3253;3217:7;:46::i;:::-;3207:56;;2841:429;;;;;;:::o;1311:459::-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1477:1:9;1466:6;1458:20;;;;:59;;;;;550:3;1482:35;;1490:6;1482:35;;;;1458:59;1450:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1631:1;1612:7;:15;1620:6;1612:15;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;1604:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1694:7;:25;550:3;1694:25;;;;;;;;;;;;;;;;;;;;;;;;;1676:7;:15;1684:6;1676:15;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;1757:6;1729:7;:25;550:3;1729:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;1311:459;:::o;5087:399:11:-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5271:10:11;;5257;:24;;5249:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5405:1;5391:10;:15;;5383:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5469:10;5457:9;:22;;;;5087:399;:::o;626:248:5:-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:5;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;499:55:9:-;550:3;499:55;:::o;287:54:11:-;337:3;287:54;:::o;770:66:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5824:458:11:-;5890:9;5915:22;6009:13;6036:20;5954:10;;5940: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;5940:25:11;;;;5915:50;;6025:1;6009:17;;6059:6;:23;337:3;6059:23;;;;;;;;;;;;;;;;;;;;;;;;;6036:46;;6092:162;337:3;6098:31;;:12;:31;;;;6092:162;;;6160:12;6145:5;6151;6145:12;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;6201:6;:20;6208:12;6201:20;;;;;;;;;;;;;;;;;;;;;;;;;6186:35;;6235:8;;;;;;;6092:162;;;6270:5;6263:12;;5824:458;;;;:::o;336:56:4:-;;;;;;;;;;;;;;;;;;;;:::o;4794:738:9:-;4861:9;4920:19;4953:21;5153:22;4942:1;4920:23;;4977:7;:25;550:3;4977:25;;;;;;;;;;;;;;;;;;;;;;;;;4953:49;;5012:132;550:3;5018:33;;:13;:33;;;;5012:132;;;5083:7;:22;5091:13;5083:22;;;;;;;;;;;;;;;;;;;;;;;;;5067:38;;5119:14;;;;;;;5012:132;;;5192:11;5178: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;5178:26:9;;;;5153:51;;5262:1;5248:15;;5289:7;:25;550:3;5289:25;;;;;;;;;;;;;;;;;;;;;;;;;5273:41;;5324:180;550:3;5330:33;;:13;:33;;;;5324:180;;;5400:13;5379:5;5385:11;5379:18;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;5443:7;:22;5451:13;5443:22;;;;;;;;;;;;;;;;;;;;;;;;;5427:38;;5479:14;;;;;;;5324:180;;;5520:5;5513:12;;4794:738;;;;:::o;2031:474::-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2245:1:9;2234:6;2226:20;;;;:59;;;;;550:3;2250:35;;2258:6;2250:35;;;;2226:59;2218:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2370:6;2339:38;;:7;:19;2347:10;2339:19;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;2331:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2454:7;:15;2462:6;2454:15;;;;;;;;;;;;;;;;;;;;;;;;;2432:7;:19;2440:10;2432:19;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2497:1;2479:7;:15;2487:6;2479:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;2031:474;;:::o;4147:751:11:-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4330:1:11;4318:8;:13;;;;:44;;;;;337:3;4335:27;;:8;:27;;;;4318:44;4310:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4475:1;4455:6;:16;4462:8;4455:16;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;4447:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4621:1;4609:8;:13;;;;:44;;;;;337:3;4626:27;;:8;:27;;;;4609:44;4601:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4727:8;4706:29;;:6;:17;4713:9;4706:17;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4698:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4807:6;:16;4814:8;4807:16;;;;;;;;;;;;;;;;;;;;;;;;;4788:6;:16;4795:8;4788:16;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;4853:8;4833:6;:17;4840:9;4833:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;4890:1;4871:6;:16;4878:8;4871:16;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;4147:751;;;:::o;536:46:4:-;;;;;;;;;;;;;;;;;:::o;5492:115:11:-;5561:7;5591:9;;5584:16;;5492:115;:::o;3030:783::-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3256:10:11;3251:1;3238:10;;:14;:28;;3230:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3431:1;3422:5;:10;;;;:38;;;;;337:3;3436:24;;:5;:24;;;;3422:38;3414:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3534:5;3513:26;;:6;:17;3520:9;3513:17;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;3505:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3612:6;:13;3619:5;3612:13;;;;;;;;;;;;;;;;;;;;;;;;;3592:6;:17;3599:9;3592:17;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;3651:1;3635:6;:13;3642:5;3635:13;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;3662:10;;:12;;;;;;;;;;;;;;3755:10;3742:9;;:23;;3738:68;;;3779:27;3795:10;3779:15;:27::i;:::-;3738:68;3030:783;;;:::o;398:40:4:-;;;;;;;;;;;;;;;;;;;;:::o;643:1210:11:-;1249:20;1302:9;1401:13;879:1;866:9;;:14;858:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1022:7;:14;1008:10;:28;;1000:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1160:1;1146:10;:15;;1138:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;337:3;1249:38;;1314:1;1302:13;;1297:433;1321:7;:14;1317:1;:18;1297:433;;;1417:7;1425:1;1417:10;;;;;;;;;;;;;;;;;;1401:26;;1458:1;1449:5;:10;;;;:38;;;;;337:3;1463:24;;:5;:24;;;;1449:38;1441:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1605:1;1588:6;:13;1595:5;1588:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;1580:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1680:5;1657:6;:20;1664:12;1657:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;1714:5;1699:20;;1337:3;;;;;;;1297:433;;;337:3;1739:6;:20;1746:12;1739:20;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;1800:7;:14;1787:10;:27;;;;1836:10;1824:9;:22;;;;643:1210;;;;;:::o;735:409:9:-;849:1;820:7;:25;550:3;820:25;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;812:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;550:3;902:7;:25;550:3;902:25;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;966:1;960:2;:7;;;;956:181;;;1061:40;1081:2;1085:4;1091:9;1061:19;:40::i;:::-;1053:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;956:181;735:409;;:::o;2970:761:4:-;3062:37;3139:21;3216:20;3326:19;3102:10;:27;3113:15;3102:27;;;;;;;;;;;;;;;;;3062:67;;3163:1;3139:25;;3239:6;:23;337:3:11;3239:23:4;;;;;;;;;;;;;;;;;;;;;;;;;3216:46;;3272:380;337:3:11;3279:31:4;;:12;:31;;;;3272:380;;;3375:1;3348:9;:23;3358:12;3348:23;;;;;;;;;;;;;;;;:28;;3326:50;;3409:10;3393:26;;:12;:26;;;:44;;;;3423:14;3393:44;3390:203;;;3461:14;3457:88;;;3525:1;3499:9;:23;3509:12;3499:23;;;;;;;;;;;;;;;:27;;;;3457:88;3562:16;;;;;;;3390:203;3621:6;:20;3628:12;3621:20;;;;;;;;;;;;;;;;;;;;;;;;;3606:35;;3272:380;;;3686:9;;3669:13;:26;;3661:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2970:761;;;;;:::o;3276:548:9:-;3407:12;3678:19;3452;3439:32;;;;;;;;:9;:32;;;;;;;;;3435:383;;;3495:35;3507:2;3511:5;3518:4;3524:5;3495:11;:35::i;:::-;3485:45;;3435:383;;;3562:27;3549:40;;;;;;;;:9;:40;;;;;;;;;3545:273;;;3613:36;3633:2;3637:4;3643:5;3613:19;:36::i;:::-;3603:46;;3545:273;;;3700:19;3714:4;3700:13;:19::i;:::-;3678:41;;3758:1;3743:11;:16;;;;3733:26;;3778:29;3795:11;3778:29;;;;;;;;;;;;;;;;;;;;;;3545:273;3435:383;3276:548;;;;;;;;:::o;4145:303::-;4247:12;4430:1;4427;4420:4;4414:11;4407:4;4401;4397:15;4393:2;4386:5;4373:59;4362:70;;4348:94;;;;;:::o;3830:309::-;3939:12;4121:1;4118;4111:4;4105:11;4098:4;4092;4088:15;4081:5;4077:2;4070:5;4065:58;4054:69;;4040:93;;;;;;:::o;4454:261::-;4523:19;4693:4;4687:11;4680:4;4674;4670:15;4667:1;4660:39;4645:54;;4631:78;;;:::o", - "source": "pragma solidity 0.4.24;\nimport \"./GnosisSafe.sol\";\nimport \"./MasterCopy.sol\";\n\n\n/// @title Gnosis Safe Team Edition - A multisignature wallet with support for confirmations.\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract GnosisSafeTeamEdition is MasterCopy, GnosisSafe {\n\n string public constant NAME = \"Gnosis Safe Team Edition\";\n string public constant VERSION = \"0.0.1\";\n\n // isExecuted mapping allows to check if a transaction (by hash) was already executed.\n mapping (bytes32 => uint256) public isExecuted;\n\n // isApproved mapping allows to check if a transaction (by hash) was confirmed by an owner.\n // uint256 is used to optimize the generated assembly. if 0 then false else true\n mapping (bytes32 => mapping(address => uint256)) public isApproved;\n\n /// @dev Allows to confirm a Safe transaction with a regular transaction.\n /// This can only be done from an owner address.\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 function approveTransactionWithParameters(\n address to, \n uint256 value, \n bytes data, \n Enum.Operation operation, \n uint256 nonce\n )\n public\n {\n // Only Safe owners are allowed to confirm Safe transactions.\n require(owners[msg.sender] != 0, \"Sender is not an owner\");\n bytes32 transactionHash = getTransactionHash(to, value, data, operation, nonce);\n // It should not be possible to confirm an executed transaction\n require(isExecuted[transactionHash] == 0, \"Safe transaction already executed\");\n isApproved[transactionHash][msg.sender] = 1;\n }\n\n /// @dev Allows to execute a Safe transaction confirmed by required number of owners. If the sender is an owner this is automatically confirmed.\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 function execTransactionIfApproved(\n address to, \n uint256 value, \n bytes data, \n Enum.Operation operation, \n uint256 nonce\n )\n public\n {\n bytes32 transactionHash = getTransactionHash(to, value, data, operation, nonce);\n require(isExecuted[transactionHash] == 0, \"Safe transaction already executed\");\n checkAndClearConfirmations(transactionHash);\n // Mark as executed and execute transaction.\n isExecuted[transactionHash] = 1;\n require(execute(to, value, data, operation, gasleft()), \"Could not execute safe transaction\");\n }\n\n function checkAndClearConfirmations(bytes32 transactionHash)\n internal\n {\n mapping(address => uint256) approvals = isApproved[transactionHash];\n uint256 confirmations = 0;\n // Validate threshold is reached.\n address currentOwner = owners[SENTINEL_OWNERS];\n while (currentOwner != SENTINEL_OWNERS) {\n bool ownerConfirmed = approvals[currentOwner] != 0;\n if(currentOwner == msg.sender || ownerConfirmed) {\n if (ownerConfirmed) {\n approvals[currentOwner] = 0;\n }\n confirmations ++;\n }\n currentOwner = owners[currentOwner];\n }\n require(confirmations >= threshold, \"Not enough confirmations\");\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", + "bytecode": "0x608060405234801561001057600080fd5b5061415b806100206000396000f300608060405260043610610153576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168062249a7a146101555780630d582f13146101865780630ec78d9e146101d3578063153414fa146102a95780631da5187f1461035357806324cd131f146103865780632b500041146104305780632f54bf6e146104f6578063468721a714610551578063610b592514610609578063694e80c31461064c5780637de7edef1461067957806385e332cd146106bc5780638cff635514610713578063a09e89f51461076a578063a0e67e2b146107cf578063a3f4df7e1461083b578063b2494df3146108cb578063cb73ac5614610937578063ccafc3871461096a578063e009cfde1461099d578063e318b52b14610a00578063e52cb36a14610a83578063e75235b814610ac8578063f8dc5dd914610af3578063ffa1ad7414610b60575b005b34801561016157600080fd5b506101846004803603810190808035600019169060200190929190505050610bf0565b005b34801561019257600080fd5b506101d1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610df8565b005b3480156101df57600080fd5b506102a76004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506111fe565b005b3480156102b557600080fd5b50610351600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190505050611384565b005b34801561035f57600080fd5b506103686113a0565b60405180826000191660001916815260200191505060405180910390f35b34801561039257600080fd5b5061042e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291905050506113c7565b005b34801561043c57600080fd5b506104d8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291908035906020019092919050505061156a565b60405180826000191660001916815260200191505060405180910390f35b34801561050257600080fd5b50610537600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061189f565b604051808215151515815260200191505060405180910390f35b34801561055d57600080fd5b506105ef600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050611921565b604051808215151515815260200191505060405180910390f35b34801561061557600080fd5b5061064a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a4d565b005b34801561065857600080fd5b5061067760048036038101908080359060200190929190505050611e2b565b005b34801561068557600080fd5b506106ba600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061203d565b005b3480156106c857600080fd5b506106d16121fe565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561071f57600080fd5b50610728612203565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561077657600080fd5b506107b96004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612208565b6040518082815260200191505060405180910390f35b3480156107db57600080fd5b506107e461222d565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561082757808201518184015260208101905061080c565b505050509050019250505060405180910390f35b34801561084757600080fd5b506108506123c8565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610890578082015181840152602081019050610875565b50505050905090810190601f1680156108bd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156108d757600080fd5b506108e0612401565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610923578082015181840152602081019050610908565b505050509050019250505060405180910390f35b34801561094357600080fd5b5061094c6126a8565b60405180826000191660001916815260200191505060405180910390f35b34801561097657600080fd5b5061097f6126ae565b60405180826000191660001916815260200191505060405180910390f35b3480156109a957600080fd5b506109fe600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126d5565b005b348015610a0c57600080fd5b50610a81600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612aee565b005b348015610a8f57600080fd5b50610ab2600480360381019080803560001916906020019092919050505061313b565b6040518082815260200191505060405180910390f35b348015610ad457600080fd5b50610add613153565b6040518082815260200191505060405180910390f35b348015610aff57600080fd5b50610b5e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061315d565b005b348015610b6c57600080fd5b50610b75613642565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610bb5578082015181840152602081019050610b9a565b50505050905090810190601f168015610be25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610cde576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206973206e6f7420616e206f776e65720000000000000000000081525060200191505060405180910390fd5b600060066000836000191660001916815260200190815260200160002054141515610d97576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f53616665207472616e73616374696f6e20616c7265616479206578656375746581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160076000836000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ec1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015610f155750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515610f89576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611076576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360008154809291906001019190505550806004541415156111fa576111f981611e2b565b5b5050565b60006001026005546000191614151561127f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f446f6d61696e20536570657261746f7220616c7265616479207365742100000081525060200191505060405180910390fd5b7f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d4749600102306040516020018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001925050506040516020818303038152906040526040518082805190602001908083835b602083101515611333578051825260208201915060208101905060208303925061130e565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060058160001916905550611374848461367b565b61137e8282613b3b565b50505050565b611399611394868686868661156a565b610bf0565b5050505050565b7f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d474960010281565b60006113d6868686868661156a565b9050600060066000836000191660001916815260200190815260200160002054141515611491576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f53616665207472616e73616374696f6e20616c7265616479206578656375746581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61149a81613d72565b6001600660008360001916600019168152602001908152602001600020819055506114c8868686865a613ff0565b1515611562576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f436f756c64206e6f7420657865637574652073616665207472616e736163746981526020017f6f6e00000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b505050505050565b6000807f5d1bba48ff479eb8a88ec6029f6b5eebc805c7dcb87470d5b1121d36d824c8736001028787876040518082805190602001908083835b6020831015156115c957805182526020820191506020810190506020830392506115a4565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902087876040516020018087600019166000191681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001846000191660001916815260200183600281111561165f57fe5b60ff16815260200182815260200196505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156116b95780518252602082019150602081019050602083039250611694565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905060197f01000000000000000000000000000000000000000000000000000000000000000260017f010000000000000000000000000000000000000000000000000000000000000002308360405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101847effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140182600019166000191681526020019450505050506040516020818303038152906040526040518082805190602001908083835b6020831015156118665780518252602082019150602081019050602083039250611841565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902091505095945050505050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515611a36576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b611a43858585855a613ff0565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b16576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015611b6a5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611bde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611ccb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ef4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6003548111151515611f94576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018110151515612033576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060048190555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612106576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156121bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b600181565b6007602052816000526040600020602052806000526040600020600091509150505481565b6060806000806003546040519080825280602002602001820160405280156122645781602001602082028038833980820191505090505b5092506000915060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156123bf5780838381518110151561231457fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081806001019250506122cf565b82935050505090565b6040805190810160405280601881526020017f476e6f7369732053616665205465616d2045646974696f6e000000000000000081525081565b606060008060606000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561251557600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050612470565b826040519080825280602002602001820160405280156125445781602001602082028038833980820191505090505b5090506000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561269f578181848151811015156125f457fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082806001019350506125af565b80935050505090565b60055481565b7f5d1bba48ff479eb8a88ec6029f6b5eebc805c7dcb87470d5b1121d36d824c87360010281565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561279e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156127f25750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612866576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561298e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612bb7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015612c0b5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612c7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612d6c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015612dc05750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515612e34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612f5c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b60066020528060005260406000206000915090505481565b6000600454905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613226576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600160035403101515156132c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff161415801561331d5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515613391576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156134b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360008154809291906001900391905055508060045414151561363d5761363c81611e2b565b5b505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000806000806004541415156136f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e657273206861766520616c7265616479206265656e207365747570000081525060200191505060405180910390fd5b84518411151515613798576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018410151515613837576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60019250600091505b8451821015613aa657848281518110151561385757fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff16141580156138b75750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b151561392b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613a18576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4475706c6963617465206f776e657220616464726573732070726f766964656481525060200191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508092508180600101925050613840565b6001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508451600381905550836004819055505050505050565b600060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613c4f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6f64756c6573206861766520616c7265616479206265656e20696e6974696181526020017f6c697a656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff16141515613d6e57613cf982825a6140ed565b1515613d6d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e0081525060200191505060405180910390fd5b5b5050565b60008060008060076000866000191660001916815260200190815260200160002093506000925060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515613f6f5760008460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141590503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480613eaf5750805b15613f08578015613eff5760008460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b82806001019350505b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150613dfd565b6004548310151515613fe9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4e6f7420656e6f75676820636f6e6669726d6174696f6e73000000000000000081525060200191505060405180910390fd5b5050505050565b6000806000600281111561400057fe5b84600281111561400c57fe5b14156140255761401e87878786614104565b91506140e3565b6001600281111561403257fe5b84600281111561403e57fe5b14156140565761404f8786856140ed565b91506140e2565b61405f8561411d565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b60008060008451602086018786f490509392505050565b6000806000845160208601878987f19050949350505050565b60008151602083016000f090509190505600a165627a7a7230582031102eb032deb2807d57bb3656f8ed6ee67350204a56a68129268fd2246445fe0029", + "deployedBytecode": "0x608060405260043610610153576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168062249a7a146101555780630d582f13146101865780630ec78d9e146101d3578063153414fa146102a95780631da5187f1461035357806324cd131f146103865780632b500041146104305780632f54bf6e146104f6578063468721a714610551578063610b592514610609578063694e80c31461064c5780637de7edef1461067957806385e332cd146106bc5780638cff635514610713578063a09e89f51461076a578063a0e67e2b146107cf578063a3f4df7e1461083b578063b2494df3146108cb578063cb73ac5614610937578063ccafc3871461096a578063e009cfde1461099d578063e318b52b14610a00578063e52cb36a14610a83578063e75235b814610ac8578063f8dc5dd914610af3578063ffa1ad7414610b60575b005b34801561016157600080fd5b506101846004803603810190808035600019169060200190929190505050610bf0565b005b34801561019257600080fd5b506101d1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610df8565b005b3480156101df57600080fd5b506102a76004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506111fe565b005b3480156102b557600080fd5b50610351600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190505050611384565b005b34801561035f57600080fd5b506103686113a0565b60405180826000191660001916815260200191505060405180910390f35b34801561039257600080fd5b5061042e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291905050506113c7565b005b34801561043c57600080fd5b506104d8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291908035906020019092919050505061156a565b60405180826000191660001916815260200191505060405180910390f35b34801561050257600080fd5b50610537600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061189f565b604051808215151515815260200191505060405180910390f35b34801561055d57600080fd5b506105ef600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050611921565b604051808215151515815260200191505060405180910390f35b34801561061557600080fd5b5061064a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a4d565b005b34801561065857600080fd5b5061067760048036038101908080359060200190929190505050611e2b565b005b34801561068557600080fd5b506106ba600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061203d565b005b3480156106c857600080fd5b506106d16121fe565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561071f57600080fd5b50610728612203565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561077657600080fd5b506107b96004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612208565b6040518082815260200191505060405180910390f35b3480156107db57600080fd5b506107e461222d565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561082757808201518184015260208101905061080c565b505050509050019250505060405180910390f35b34801561084757600080fd5b506108506123c8565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610890578082015181840152602081019050610875565b50505050905090810190601f1680156108bd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156108d757600080fd5b506108e0612401565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610923578082015181840152602081019050610908565b505050509050019250505060405180910390f35b34801561094357600080fd5b5061094c6126a8565b60405180826000191660001916815260200191505060405180910390f35b34801561097657600080fd5b5061097f6126ae565b60405180826000191660001916815260200191505060405180910390f35b3480156109a957600080fd5b506109fe600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126d5565b005b348015610a0c57600080fd5b50610a81600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612aee565b005b348015610a8f57600080fd5b50610ab2600480360381019080803560001916906020019092919050505061313b565b6040518082815260200191505060405180910390f35b348015610ad457600080fd5b50610add613153565b6040518082815260200191505060405180910390f35b348015610aff57600080fd5b50610b5e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061315d565b005b348015610b6c57600080fd5b50610b75613642565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610bb5578082015181840152602081019050610b9a565b50505050905090810190601f168015610be25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610cde576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206973206e6f7420616e206f776e65720000000000000000000081525060200191505060405180910390fd5b600060066000836000191660001916815260200190815260200160002054141515610d97576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f53616665207472616e73616374696f6e20616c7265616479206578656375746581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160076000836000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ec1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015610f155750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515610f89576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611076576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360008154809291906001019190505550806004541415156111fa576111f981611e2b565b5b5050565b60006001026005546000191614151561127f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f446f6d61696e20536570657261746f7220616c7265616479207365742100000081525060200191505060405180910390fd5b7f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d4749600102306040516020018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001925050506040516020818303038152906040526040518082805190602001908083835b602083101515611333578051825260208201915060208101905060208303925061130e565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060058160001916905550611374848461367b565b61137e8282613b3b565b50505050565b611399611394868686868661156a565b610bf0565b5050505050565b7f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d474960010281565b60006113d6868686868661156a565b9050600060066000836000191660001916815260200190815260200160002054141515611491576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f53616665207472616e73616374696f6e20616c7265616479206578656375746581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61149a81613d72565b6001600660008360001916600019168152602001908152602001600020819055506114c8868686865a613ff0565b1515611562576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f436f756c64206e6f7420657865637574652073616665207472616e736163746981526020017f6f6e00000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b505050505050565b6000807f5d1bba48ff479eb8a88ec6029f6b5eebc805c7dcb87470d5b1121d36d824c8736001028787876040518082805190602001908083835b6020831015156115c957805182526020820191506020810190506020830392506115a4565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902087876040516020018087600019166000191681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001846000191660001916815260200183600281111561165f57fe5b60ff16815260200182815260200196505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156116b95780518252602082019150602081019050602083039250611694565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905060197f01000000000000000000000000000000000000000000000000000000000000000260017f010000000000000000000000000000000000000000000000000000000000000002308360405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101847effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140182600019166000191681526020019450505050506040516020818303038152906040526040518082805190602001908083835b6020831015156118665780518252602082019150602081019050602083039250611841565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902091505095945050505050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515611a36576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b611a43858585855a613ff0565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b16576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015611b6a5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611bde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611ccb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ef4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6003548111151515611f94576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018110151515612033576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060048190555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612106576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156121bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b600181565b6007602052816000526040600020602052806000526040600020600091509150505481565b6060806000806003546040519080825280602002602001820160405280156122645781602001602082028038833980820191505090505b5092506000915060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156123bf5780838381518110151561231457fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081806001019250506122cf565b82935050505090565b6040805190810160405280601881526020017f476e6f7369732053616665205465616d2045646974696f6e000000000000000081525081565b606060008060606000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561251557600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050612470565b826040519080825280602002602001820160405280156125445781602001602082028038833980820191505090505b5090506000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561269f578181848151811015156125f457fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082806001019350506125af565b80935050505090565b60055481565b7f5d1bba48ff479eb8a88ec6029f6b5eebc805c7dcb87470d5b1121d36d824c87360010281565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561279e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156127f25750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612866576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561298e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612bb7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015612c0b5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612c7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612d6c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015612dc05750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515612e34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612f5c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b60066020528060005260406000206000915090505481565b6000600454905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613226576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600160035403101515156132c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff161415801561331d5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515613391576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156134b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360008154809291906001900391905055508060045414151561363d5761363c81611e2b565b5b505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000806000806004541415156136f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e657273206861766520616c7265616479206265656e207365747570000081525060200191505060405180910390fd5b84518411151515613798576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018410151515613837576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60019250600091505b8451821015613aa657848281518110151561385757fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff16141580156138b75750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b151561392b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613a18576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4475706c6963617465206f776e657220616464726573732070726f766964656481525060200191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508092508180600101925050613840565b6001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508451600381905550836004819055505050505050565b600060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613c4f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6f64756c6573206861766520616c7265616479206265656e20696e6974696181526020017f6c697a656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff16141515613d6e57613cf982825a6140ed565b1515613d6d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e0081525060200191505060405180910390fd5b5b5050565b60008060008060076000866000191660001916815260200190815260200160002093506000925060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515613f6f5760008460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141590503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480613eaf5750805b15613f08578015613eff5760008460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b82806001019350505b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150613dfd565b6004548310151515613fe9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4e6f7420656e6f75676820636f6e6669726d6174696f6e73000000000000000081525060200191505060405180910390fd5b5050505050565b6000806000600281111561400057fe5b84600281111561400c57fe5b14156140255761401e87878786614104565b91506140e3565b6001600281111561403257fe5b84600281111561403e57fe5b14156140565761404f8786856140ed565b91506140e2565b61405f8561411d565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b60008060008451602086018786f490509392505050565b6000806000845160208601878987f19050949350505050565b60008151602083016000f090509190505600a165627a7a7230582031102eb032deb2807d57bb3656f8ed6ee67350204a56a68129268fd2246445fe0029", + "sourceMap": "272:4725:6:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;272:4725:6;;;;;;;", + "deployedSourceMap": "272:4725:6:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1272:436;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1272:436:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2093:595:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2093:595:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;933:457:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;933:457:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2137:287:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2137:287:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;458:118:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;458:118:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2866:618:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2866:618:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4529:466;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4529:466:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5613:129:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5613:129:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2712:429:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2712:429:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1182:459;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1182:459:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;5087:399:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5087:399:11;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;488:55:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;488:55:10;;;;;;;;;;;;;;;;;;;;;;;;;;;287:54:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;287:54:11;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:66:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1002:66:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5824:458:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5824:458:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;5824:458:11;;;;;;;;;;;;;;;;;336:56:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;336:56: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;336:56:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3220:738:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3220:738:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;3220:738:10;;;;;;;;;;;;;;;;;583:30:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;583:30:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;561:109:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;561:109:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1902:474:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1902:474:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4147:751:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4147:751:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;768:46:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;768:46:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5492:115:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5492:115:11;;;;;;;;;;;;;;;;;;;;;;;3030:783;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3030:783:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;399:40:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;399:40: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;399:40:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1272:436;1460:1;1438:6;:18;1445:10;1438:18;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;;1430:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1609:1;1578:10;:27;1589:15;1578:27;;;;;;;;;;;;;;;;;;:32;1570:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1700:1;1658:10;:27;1669:15;1658:27;;;;;;;;;;;;;;;;;:39;1686:10;1658:39;;;;;;;;;;;;;;;:43;;;;1272:436;:::o;2093:595:11:-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2265:1:11;2256:5;:10;;;;:38;;;;;337:3;2270:24;;:5;:24;;;;2256:38;2248:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2404:1;2387:6;:13;2394:5;2387:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;2379:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2463:6;:23;337:3;2463:23;;;;;;;;;;;;;;;;;;;;;;;;;2447:6;:13;2454:5;2447:13;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2522:5;2496:6;:23;337:3;2496:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2537:10;;:12;;;;;;;;;;;;;2630:10;2617:9;;:23;;2613:68;;;2654:27;2670:10;2654:15;:27::i;:::-;2613:68;2093:595;;:::o;933:457:4:-;1067:1;1048:20;;:15;;:20;;;;1040:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;510:66;1151:25;;1178:4;1140:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1140:43:4;;;1130: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;;;1130:54:4;;;;;;;;;;;;;;;;1112:15;:72;;;;;;;1194:32;1206:7;1215:10;1194:11;:32::i;:::-;1361:22;1374:2;1378:4;1361:12;:22::i;:::-;933:457;;;;:::o;2137:287:6:-;2338:79;2363:53;2382:2;2386:5;2393:4;2399:9;2410:5;2363:18;:53::i;:::-;2338:24;:79::i;:::-;2137:287;;;;;:::o;458:118:4:-;510:66;458:118;;;:::o;2866:618:6:-;3060:23;3086:53;3105:2;3109:5;3116:4;3122:9;3133:5;3086:18;:53::i;:::-;3060:79;;3188:1;3157:10;:27;3168:15;3157:27;;;;;;;;;;;;;;;;;;:32;3149:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3237:43;3264:15;3237:26;:43::i;:::-;3373:1;3343:10;:27;3354:15;3343:27;;;;;;;;;;;;;;;;;:31;;;;3392:46;3400:2;3404:5;3411:4;3417:9;3428;3392:7;:46::i;:::-;3384:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2866:618;;;;;;:::o;4529:466::-;4732:7;4755:18;604:66;4810:16;;4828:2;4832:5;4849:4;4839: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;;;4839:15:6;;;;;;;;;;;;;;;;4856:9;4867:5;4799:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;4799:74:6;;;4776:107;;;;;;;;;;;;;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;;;4776:107:6;;;;;;;;;;;;;;;;4755:128;;4945:4;4940:10;;4957:1;4952:7;;4961:4;4967:10;4923:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;4923:55:6;;;4900:88;;;;;;;;;;;;;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;;;4900:88:6;;;;;;;;;;;;;;;;4893:95;;4529:466;;;;;;;;:::o;5613:129:11:-;5690:4;5734:1;5717:6;:13;5724:5;5717:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;;5710:25;;5613:129;;;:::o;2712:429:10:-;2844:12;2952:1;2929:7;:19;2937:10;2929:19;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;2921:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3088:46;3096:2;3100:5;3107:4;3113:9;3124;3088:7;:46::i;:::-;3078:56;;2712:429;;;;;;:::o;1182:459::-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1348:1:10;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;;;;;;;;;;;;;;;;;;1182:459;:::o;5087:399:11:-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5271:10:11;;5257;:24;;5249:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5405:1;5391:10;:15;;5383:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5469:10;5457:9;:22;;;;5087:399;:::o;626:248:7:-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:7;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;488:55:10:-;539:3;488:55;:::o;287:54:11:-;337:3;287:54;:::o;1002:66:6:-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5824:458:11:-;5890:9;5915:22;6009:13;6036:20;5954:10;;5940: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;5940:25:11;;;;5915:50;;6025:1;6009:17;;6059:6;:23;337:3;6059:23;;;;;;;;;;;;;;;;;;;;;;;;;6036:46;;6092:162;337:3;6098:31;;:12;:31;;;;6092:162;;;6160:12;6145:5;6151;6145:12;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;6201:6;:20;6208:12;6201:20;;;;;;;;;;;;;;;;;;;;;;;;;6186:35;;6235:8;;;;;;;6092:162;;;6270:5;6263:12;;5824:458;;;;:::o;336:56:6:-;;;;;;;;;;;;;;;;;;;;:::o;3220:738:10:-;3287:9;3346:19;3379:21;3579:22;3368:1;3346:23;;3403:7;:25;539:3;3403:25;;;;;;;;;;;;;;;;;;;;;;;;;3379:49;;3438:132;539:3;3444:33;;:13;:33;;;;3438:132;;;3509:7;:22;3517:13;3509:22;;;;;;;;;;;;;;;;;;;;;;;;;3493:38;;3545:14;;;;;;;3438:132;;;3618:11;3604: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;3604:26:10;;;;3579:51;;3688:1;3674:15;;3715:7;:25;539:3;3715:25;;;;;;;;;;;;;;;;;;;;;;;;;3699:41;;3750:180;539:3;3756:33;;:13;:33;;;;3750:180;;;3826:13;3805:5;3811:11;3805:18;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;3869:7;:22;3877:13;3869:22;;;;;;;;;;;;;;;;;;;;;;;;;3853:38;;3905:14;;;;;;;3750:180;;;3946:5;3939:12;;3220:738;;;;:::o;583:30:4:-;;;;:::o;561:109:6:-;604:66;561:109;;;:::o;1902:474:10:-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2116:1:10;2105:6;2097:20;;;;:59;;;;;539:3;2121:35;;2129:6;2121:35;;;;2097:59;2089:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2241:6;2210:38;;:7;:19;2218:10;2210:19;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;2202:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2325:7;:15;2333:6;2325:15;;;;;;;;;;;;;;;;;;;;;;;;;2303:7;:19;2311:10;2303:19;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2368:1;2350:7;:15;2358:6;2350:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;1902:474;;:::o;4147:751:11:-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4330:1:11;4318:8;:13;;;;:44;;;;;337:3;4335:27;;:8;:27;;;;4318:44;4310:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4475:1;4455:6;:16;4462:8;4455:16;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;4447:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4621:1;4609:8;:13;;;;:44;;;;;337:3;4626:27;;:8;:27;;;;4609:44;4601:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4727:8;4706:29;;:6;:17;4713:9;4706:17;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4698:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4807:6;:16;4814:8;4807:16;;;;;;;;;;;;;;;;;;;;;;;;;4788:6;:16;4795:8;4788:16;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;4853:8;4833:6;:17;4840:9;4833:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;4890:1;4871:6;:16;4878:8;4871:16;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;4147:751;;;:::o;768:46:6:-;;;;;;;;;;;;;;;;;:::o;5492:115:11:-;5561:7;5591:9;;5584:16;;5492:115;:::o;3030:783::-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3256:10:11;3251:1;3238:10;;:14;:28;;3230:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3431:1;3422:5;:10;;;;:38;;;;;337:3;3436:24;;:5;:24;;;;3422:38;3414:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3534:5;3513:26;;:6;:17;3520:9;3513:17;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;3505:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3612:6;:13;3619:5;3612:13;;;;;;;;;;;;;;;;;;;;;;;;;3592:6;:17;3599:9;3592:17;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;3651:1;3635:6;:13;3642:5;3635:13;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;3662:10;;:12;;;;;;;;;;;;;;3755:10;3742:9;;:23;;3738:68;;;3779:27;3795:10;3779:15;:27::i;:::-;3738:68;3030:783;;;:::o;399:40:6:-;;;;;;;;;;;;;;;;;;;;:::o;643:1210:11:-;1249:20;1302:9;1401:13;879:1;866:9;;:14;858:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1022:7;:14;1008:10;:28;;1000:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1160:1;1146:10;:15;;1138:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;337:3;1249:38;;1314:1;1302:13;;1297:433;1321:7;:14;1317:1;:18;1297:433;;;1417:7;1425:1;1417:10;;;;;;;;;;;;;;;;;;1401:26;;1458:1;1449:5;:10;;;;:38;;;;;337:3;1463:24;;:5;:24;;;;1449:38;1441:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1605:1;1588:6;:13;1595:5;1588:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;1580:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1680:5;1657:6;:20;1664:12;1657:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;1714:5;1699:20;;1337:3;;;;;;;1297:433;;;337:3;1739:6;:20;1746:12;1739:20;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;1800:7;:14;1787:10;:27;;;;1836:10;1824:9;:22;;;;643:1210;;;;;:::o;606:409:10:-;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;3490:761:6:-;3582:37;3659:21;3736:20;3846:19;3622:10;:27;3633:15;3622:27;;;;;;;;;;;;;;;;;3582:67;;3683:1;3659:25;;3759:6;:23;337:3:11;3759:23:6;;;;;;;;;;;;;;;;;;;;;;;;;3736:46;;3792:380;337:3:11;3799:31:6;;:12;:31;;;;3792:380;;;3895:1;3868:9;:23;3878:12;3868:23;;;;;;;;;;;;;;;;:28;;3846:50;;3929:10;3913:26;;:12;:26;;;:44;;;;3943:14;3913:44;3910:203;;;3981:14;3977:88;;;4045:1;4019:9;:23;4029:12;4019:23;;;;;;;;;;;;;;;:27;;;;3977:88;4082:16;;;;;;;3910:203;4141:6;:20;4148:12;4141:20;;;;;;;;;;;;;;;;;;;;;;;;;4126:35;;3792:380;;;4206:9;;4189:13;:26;;4181:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3490:761;;;;;:::o;390:548:3:-;521:12;792:19;566;553:32;;;;;;;;:9;:32;;;;;;;;;549:383;;;609:35;621:2;625:5;632:4;638:5;609:11;:35::i;:::-;599:45;;549:383;;;676:27;663:40;;;;;;;;:9;:40;;;;;;;;;659:273;;;727:36;747:2;751:4;757:5;727:19;:36::i;:::-;717:46;;659:273;;;814:19;828:4;814:13;:19::i;:::-;792:41;;872:1;857:11;:16;;;;847:26;;892:29;909:11;892:29;;;;;;;;;;;;;;;;;;;;;;659:273;549:383;390:548;;;;;;;;:::o;1259:303::-;1361:12;1544:1;1541;1534:4;1528:11;1521:4;1515;1511:15;1507:2;1500:5;1487:59;1476:70;;1462:94;;;;;:::o;944:309::-;1053:12;1235:1;1232;1225:4;1219:11;1212:4;1206;1202:15;1195:5;1191:2;1184:5;1179:58;1168:69;;1154:93;;;;;;:::o;1568:261::-;1637:19;1807:4;1801:11;1794:4;1788;1784:15;1781:1;1774:39;1759:54;;1745:78;;;:::o", + "source": "pragma solidity 0.4.24;\nimport \"./GnosisSafe.sol\";\nimport \"./MasterCopy.sol\";\n\n\n/// @title Gnosis Safe Team Edition - A multisignature wallet with support for confirmations.\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract GnosisSafeTeamEdition is MasterCopy, GnosisSafe {\n\n string public constant NAME = \"Gnosis Safe Team Edition\"; \n string public constant VERSION = \"0.0.1\";\n //keccak256(\n // \"TeamSafeTx(address to,uint256 value,bytes data,uint8 operation,uint256 nonce)\"\n //);\n bytes32 public constant SAFE_TX_TYPEHASH = 0x5d1bba48ff479eb8a88ec6029f6b5eebc805c7dcb87470d5b1121d36d824c873;\n\n // isExecuted mapping allows to check if a transaction (by hash) was already executed.\n mapping (bytes32 => uint256) public isExecuted;\n\n // isApproved mapping allows to check if a transaction (by hash) was confirmed by an owner.\n // uint256 is used to optimize the generated assembly. if 0 then false else true\n mapping (bytes32 => mapping(address => uint256)) public isApproved;\n\n /// @dev Allows to confirm a Safe transaction with a regular transaction.\n /// This can only be done from an owner address.\n /// @param transactionHash Hash of the Safe transaction.\n function approveTransactionByHash(bytes32 transactionHash)\n public\n {\n // Only Safe owners are allowed to confirm Safe transactions.\n require(owners[msg.sender] != 0, \"Sender is not an owner\");\n // It should not be possible to confirm an executed transaction\n require(isExecuted[transactionHash] == 0, \"Safe transaction already executed\");\n isApproved[transactionHash][msg.sender] = 1;\n }\n\n /// @dev Allows to confirm a Safe transaction with a regular transaction.\n /// This can only be done from an owner address.\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 function approveTransactionWithParameters(\n address to, \n uint256 value, \n bytes data, \n Enum.Operation operation, \n uint256 nonce\n )\n public\n {\n approveTransactionByHash(getTransactionHash(to, value, data, operation, nonce));\n }\n\n /// @dev Allows to execute a Safe transaction confirmed by required number of owners. If the sender is an owner this is automatically confirmed.\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 function execTransactionIfApproved(\n address to, \n uint256 value, \n bytes data, \n Enum.Operation operation, \n uint256 nonce\n )\n public\n {\n bytes32 transactionHash = getTransactionHash(to, value, data, operation, nonce);\n require(isExecuted[transactionHash] == 0, \"Safe transaction already executed\");\n checkAndClearConfirmations(transactionHash);\n // Mark as executed and execute transaction.\n isExecuted[transactionHash] = 1;\n require(execute(to, value, data, operation, gasleft()), \"Could not execute safe transaction\");\n }\n\n function checkAndClearConfirmations(bytes32 transactionHash)\n internal\n {\n mapping(address => uint256) approvals = isApproved[transactionHash];\n uint256 confirmations = 0;\n // Validate threshold is reached.\n address currentOwner = owners[SENTINEL_OWNERS];\n while (currentOwner != SENTINEL_OWNERS) {\n bool ownerConfirmed = approvals[currentOwner] != 0;\n if(currentOwner == msg.sender || ownerConfirmed) {\n if (ownerConfirmed) {\n approvals[currentOwner] = 0;\n }\n confirmations ++;\n }\n currentOwner = owners[currentOwner];\n }\n require(confirmations >= threshold, \"Not enough confirmations\");\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 bytes32 safeTxHash = keccak256(\n abi.encode(SAFE_TX_TYPEHASH, to, value, keccak256(data), operation, nonce)\n );\n return keccak256(\n abi.encodePacked(byte(0x19), byte(1), this, safeTxHash)\n );\n }\n}\n", "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafeTeamEdition.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafeTeamEdition.sol", "exportedSymbols": { "GnosisSafeTeamEdition": [ - 605 + 786 ] }, - "id": 606, + "id": 787, "nodeType": "SourceUnit", "nodes": [ { - "id": 371, + "id": 531, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:4" + "src": "0:23:6" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafe.sol", "file": "./GnosisSafe.sol", - "id": 372, + "id": 532, "nodeType": "ImportDirective", - "scope": 606, - "sourceUnit": 64, - "src": "24:26:4", + "scope": 787, + "sourceUnit": 209, + "src": "24:26:6", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol", "file": "./MasterCopy.sol", - "id": 373, + "id": 533, "nodeType": "ImportDirective", - "scope": 606, - "sourceUnit": 633, - "src": "51:26:4", + "scope": 787, + "sourceUnit": 814, + "src": "51:26:6", "symbolAliases": [], "unitAlias": "" }, @@ -506,68 +562,72 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 374, + "id": 534, "name": "MasterCopy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 632, - "src": "306:10:4", + "referencedDeclaration": 813, + "src": "306:10:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_MasterCopy_$632", + "typeIdentifier": "t_contract$_MasterCopy_$813", "typeString": "contract MasterCopy" } }, - "id": 375, + "id": 535, "nodeType": "InheritanceSpecifier", - "src": "306:10:4" + "src": "306:10:6" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 376, + "id": 536, "name": "GnosisSafe", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 63, - "src": "318:10:4", + "referencedDeclaration": 208, + "src": "318:10:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_GnosisSafe_$63", + "typeIdentifier": "t_contract$_GnosisSafe_$208", "typeString": "contract GnosisSafe" } }, - "id": 377, + "id": 537, "nodeType": "InheritanceSpecifier", - "src": "318:10:4" + "src": "318:10:6" } ], "contractDependencies": [ - 63, - 632, - 2232, - 2888, - 3065 + 208, + 153, + 37, + 813, + 1180, + 1588, + 1765 ], "contractKind": "contract", "documentation": "@title Gnosis Safe Team Edition - A multisignature wallet with support for confirmations.\n @author Stefan George - \n @author Richard Meissner - ", "fullyImplemented": true, - "id": 605, + "id": 786, "linearizedBaseContracts": [ - 605, - 63, - 2888, - 2232, - 632, - 3065 + 786, + 208, + 1588, + 1180, + 153, + 37, + 813, + 1765 ], "name": "GnosisSafeTeamEdition", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 380, + "id": 540, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 605, - "src": "336:56:4", + "scope": 786, + "src": "336:56:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -575,10 +635,10 @@ "typeString": "string" }, "typeName": { - "id": 378, + "id": 538, "name": "string", "nodeType": "ElementaryTypeName", - "src": "336:6:4", + "src": "336:6:6", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -587,14 +647,14 @@ "value": { "argumentTypes": null, "hexValue": "476e6f7369732053616665205465616d2045646974696f6e", - "id": 379, + "id": 539, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "366:26:4", + "src": "366:26:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_69b1cb372bb47730ba653a0e87363aa6de8337d13ed5852e6fe3ba4e2004a81e", @@ -606,11 +666,11 @@ }, { "constant": true, - "id": 383, + "id": 543, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 605, - "src": "398:40:4", + "scope": 786, + "src": "399:40:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -618,10 +678,10 @@ "typeString": "string" }, "typeName": { - "id": 381, + "id": 541, "name": "string", "nodeType": "ElementaryTypeName", - "src": "398:6:4", + "src": "399:6:6", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -630,14 +690,14 @@ "value": { "argumentTypes": null, "hexValue": "302e302e31", - "id": 382, + "id": 542, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "431:7:4", + "src": "432:7:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", @@ -647,13 +707,56 @@ }, "visibility": "public" }, + { + "constant": true, + "id": 546, + "name": "SAFE_TX_TYPEHASH", + "nodeType": "VariableDeclaration", + "scope": 786, + "src": "561:109:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 544, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "561:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307835643162626134386666343739656238613838656336303239663662356565626338303563376463623837343730643562313132316433366438323463383733", + "id": 545, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "604:66:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_42114085481813550712033693253853890854456273647728279042821730599331164375155_by_1", + "typeString": "int_const 4211...(69 digits omitted)...5155" + }, + "value": "0x5d1bba48ff479eb8a88ec6029f6b5eebc805c7dcb87470d5b1121d36d824c873" + }, + "visibility": "public" + }, { "constant": false, - "id": 387, + "id": 550, "name": "isExecuted", "nodeType": "VariableDeclaration", - "scope": 605, - "src": "536:46:4", + "scope": 786, + "src": "768:46:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -661,28 +764,28 @@ "typeString": "mapping(bytes32 => uint256)" }, "typeName": { - "id": 386, + "id": 549, "keyType": { - "id": 384, + "id": 547, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "545:7:4", + "src": "777:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "536:28:4", + "src": "768:28:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" }, "valueType": { - "id": 385, + "id": 548, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "556:7:4", + "src": "788:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -694,11 +797,11 @@ }, { "constant": false, - "id": 393, + "id": 556, "name": "isApproved", "nodeType": "VariableDeclaration", - "scope": 605, - "src": "770:66:4", + "scope": 786, + "src": "1002:66:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -706,46 +809,46 @@ "typeString": "mapping(bytes32 => mapping(address => uint256))" }, "typeName": { - "id": 392, + "id": 555, "keyType": { - "id": 388, + "id": 551, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "779:7:4", + "src": "1011:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "770:48:4", + "src": "1002:48:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(bytes32 => mapping(address => uint256))" }, "valueType": { - "id": 391, + "id": 554, "keyType": { - "id": 389, + "id": 552, "name": "address", "nodeType": "ElementaryTypeName", - "src": "798:7:4", + "src": "1030:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "790:27:4", + "src": "1022:27:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 390, + "id": 553, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "809:7:4", + "src": "1041:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -758,9 +861,9 @@ }, { "body": { - "id": 444, + "id": 589, "nodeType": "Block", - "src": "1457:447:4", + "src": "1350:358:6", "statements": [ { "expression": { @@ -772,7 +875,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 412, + "id": 567, "isConstant": false, "isLValue": false, "isPure": false, @@ -781,34 +884,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 407, + "id": 562, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, - "src": "1545:6:4", + "referencedDeclaration": 1194, + "src": "1438:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 410, + "id": 565, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 408, + "id": 563, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4036, - "src": "1552:3:4", + "referencedDeclaration": 3828, + "src": "1445:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 409, + "id": 564, "isConstant": false, "isLValue": false, "isPure": false, @@ -816,7 +919,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1552:10:4", + "src": "1445:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -827,7 +930,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1545:18:4", + "src": "1438:18:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -838,14 +941,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 411, + "id": 566, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1567:1:4", + "src": "1460:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -853,7 +956,7 @@ }, "value": "0" }, - "src": "1545:23:4", + "src": "1438:23:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -862,14 +965,14 @@ { "argumentTypes": null, "hexValue": "53656e646572206973206e6f7420616e206f776e6572", - "id": 413, + "id": 568, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1570:24:4", + "src": "1463:24:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b22a5f47ffb62866097c90f90b5b53f76973769c84a10c62e12a07eb2ba1ef4a", @@ -889,21 +992,21 @@ "typeString": "literal_string \"Sender is not an owner\"" } ], - "id": 406, + "id": 561, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, - "src": "1537:7:4", + "referencedDeclaration": 3832, + "src": "1430:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 414, + "id": 569, "isConstant": false, "isLValue": false, "isPure": false, @@ -911,168 +1014,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1537:58:4", + "src": "1430:58:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 415, + "id": 570, "nodeType": "ExpressionStatement", - "src": "1537:58:4" - }, - { - "assignments": [ - 417 - ], - "declarations": [ - { - "constant": false, - "id": 417, - "name": "transactionHash", - "nodeType": "VariableDeclaration", - "scope": 445, - "src": "1605:23:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 416, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1605:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 425, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 419, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 395, - "src": "1650:2:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 420, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 397, - "src": "1654:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 421, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 399, - "src": "1661:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 422, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 401, - "src": "1667:9:4", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 423, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 403, - "src": "1678:5:4", - "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_$29", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 418, - "name": "getTransactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 604, - "src": "1631:18:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bytes32_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) view returns (bytes32)" - } - }, - "id": 424, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1631:53:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1605:79:4" + "src": "1430:58:6" }, { "expression": { @@ -1084,7 +1034,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 431, + "id": 576, "isConstant": false, "isLValue": false, "isPure": false, @@ -1093,26 +1043,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 427, + "id": 572, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 387, - "src": "1774:10:4", + "referencedDeclaration": 550, + "src": "1578:10:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 429, + "id": 574, "indexExpression": { "argumentTypes": null, - "id": 428, + "id": 573, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 417, - "src": "1785:15:4", + "referencedDeclaration": 558, + "src": "1589:15:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1123,7 +1073,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1774:27:4", + "src": "1578:27:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1134,14 +1084,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 430, + "id": 575, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1805:1:4", + "src": "1609:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1149,7 +1099,7 @@ }, "value": "0" }, - "src": "1774:32:4", + "src": "1578:32:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1158,14 +1108,14 @@ { "argumentTypes": null, "hexValue": "53616665207472616e73616374696f6e20616c7265616479206578656375746564", - "id": 432, + "id": 577, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1808:35:4", + "src": "1612:35:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_78cc689035dd21cb903fbad8327952ddf83800cf1115919ff1ad2be36eed70db", @@ -1185,21 +1135,21 @@ "typeString": "literal_string \"Safe transaction already executed\"" } ], - "id": 426, + "id": 571, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, - "src": "1766:7:4", + "referencedDeclaration": 3832, + "src": "1570:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 433, + "id": 578, "isConstant": false, "isLValue": false, "isPure": false, @@ -1207,20 +1157,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1766:78:4", + "src": "1570:78:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 434, + "id": 579, "nodeType": "ExpressionStatement", - "src": "1766:78:4" + "src": "1570:78:6" }, { "expression": { "argumentTypes": null, - "id": 442, + "id": 587, "isConstant": false, "isLValue": false, "isPure": false, @@ -1231,26 +1181,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 435, + "id": 580, "name": "isApproved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 393, - "src": "1854:10:4", + "referencedDeclaration": 556, + "src": "1658:10:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(bytes32 => mapping(address => uint256))" } }, - "id": 439, + "id": 584, "indexExpression": { "argumentTypes": null, - "id": 436, + "id": 581, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 417, - "src": "1865:15:4", + "referencedDeclaration": 558, + "src": "1669:15:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1261,29 +1211,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1854:27:4", + "src": "1658:27:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 440, + "id": 585, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 437, + "id": 582, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4036, - "src": "1882:3:4", + "referencedDeclaration": 3828, + "src": "1686:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 438, + "id": 583, "isConstant": false, "isLValue": false, "isPure": false, @@ -1291,7 +1241,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1882:10:4", + "src": "1686:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1302,7 +1252,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1854:39:4", + "src": "1658:39:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1313,14 +1263,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "31", - "id": 441, + "id": 586, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1896:1:4", + "src": "1700:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -1328,89 +1278,309 @@ }, "value": "1" }, - "src": "1854:43:4", + "src": "1658:43:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 443, + "id": 588, "nodeType": "ExpressionStatement", - "src": "1854:43:4" + "src": "1658:43:6" } ] }, - "documentation": "@dev Allows to confirm a Safe transaction with a regular transaction.\n This can only be done from an owner address.\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.", - "id": 445, + "documentation": "@dev Allows to confirm a Safe transaction with a regular transaction.\n This can only be done from an owner address.\n @param transactionHash Hash of the Safe transaction.", + "id": 590, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "approveTransactionWithParameters", + "name": "approveTransactionByHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 404, + "id": 559, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 395, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 445, - "src": "1317:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 394, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1317:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 397, - "name": "value", + "id": 558, + "name": "transactionHash", "nodeType": "VariableDeclaration", - "scope": 445, - "src": "1338:13:4", + "scope": 590, + "src": "1306:23:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" }, "typeName": { - "id": 396, - "name": "uint256", + "id": 557, + "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1338:7:4", + "src": "1306:7:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, "value": null, "visibility": "internal" - }, + } + ], + "src": "1305:25:6" + }, + "payable": false, + "returnParameters": { + "id": 560, + "nodeType": "ParameterList", + "parameters": [], + "src": "1350:0:6" + }, + "scope": 786, + "src": "1272:436:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 613, + "nodeType": "Block", + "src": "2328:96:6", + "statements": [ { - "constant": false, - "id": 399, - "name": "data", + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 605, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 592, + "src": "2382:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 606, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 594, + "src": "2386:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 607, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 596, + "src": "2393:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 608, + "name": "operation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 598, + "src": "2399:9:6", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + } + }, + { + "argumentTypes": null, + "id": 609, + "name": "nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 600, + "src": "2410:5:6", + "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_$29", + "typeString": "enum Enum.Operation" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 604, + "name": "getTransactionHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 785, + "src": "2363:18:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) view returns (bytes32)" + } + }, + "id": 610, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2363:53:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 603, + "name": "approveTransactionByHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 590, + "src": "2338:24:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", + "typeString": "function (bytes32)" + } + }, + "id": 611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2338:79:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 612, + "nodeType": "ExpressionStatement", + "src": "2338:79:6" + } + ] + }, + "documentation": "@dev Allows to confirm a Safe transaction with a regular transaction.\n This can only be done from an owner address.\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.", + "id": 614, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approveTransactionWithParameters", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 601, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 592, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 614, + "src": "2188:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 591, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2188:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 594, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 614, + "src": "2209:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 593, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2209:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 596, + "name": "data", "nodeType": "VariableDeclaration", - "scope": 445, - "src": "1362:10:4", + "scope": 614, + "src": "2233:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1418,10 +1588,10 @@ "typeString": "bytes" }, "typeName": { - "id": 398, + "id": 595, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1362:5:4", + "src": "2233:5:6", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1432,11 +1602,11 @@ }, { "constant": false, - "id": 401, + "id": 598, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 445, - "src": "1383:24:4", + "scope": 614, + "src": "2254:24:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1445,11 +1615,11 @@ }, "typeName": { "contractScope": null, - "id": 400, + "id": 597, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 29, - "src": "1383:14:4", + "src": "2254:14:6", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" @@ -1460,11 +1630,11 @@ }, { "constant": false, - "id": 403, + "id": 600, "name": "nonce", "nodeType": "VariableDeclaration", - "scope": 445, - "src": "1418:13:4", + "scope": 614, + "src": "2289:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1472,10 +1642,10 @@ "typeString": "uint256" }, "typeName": { - "id": 402, + "id": 599, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1418:7:4", + "src": "2289:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1485,39 +1655,39 @@ "visibility": "internal" } ], - "src": "1307:130:4" + "src": "2178:130:6" }, "payable": false, "returnParameters": { - "id": 405, + "id": 602, "nodeType": "ParameterList", "parameters": [], - "src": "1457:0:4" + "src": "2328:0:6" }, - "scope": 605, - "src": "1266:638:4", + "scope": 786, + "src": "2137:287:6", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 499, + "id": 668, "nodeType": "Block", - "src": "2530:434:4", + "src": "3050:434:6", "statements": [ { "assignments": [ - 459 + 628 ], "declarations": [ { "constant": false, - "id": 459, + "id": 628, "name": "transactionHash", "nodeType": "VariableDeclaration", - "scope": 500, - "src": "2540:23:4", + "scope": 669, + "src": "3060:23:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1525,10 +1695,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 458, + "id": 627, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2540:7:4", + "src": "3060:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1538,18 +1708,18 @@ "visibility": "internal" } ], - "id": 467, + "id": 636, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 461, + "id": 630, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 447, - "src": "2585:2:4", + "referencedDeclaration": 616, + "src": "3105:2:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1557,12 +1727,12 @@ }, { "argumentTypes": null, - "id": 462, + "id": 631, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 449, - "src": "2589:5:4", + "referencedDeclaration": 618, + "src": "3109:5:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1570,12 +1740,12 @@ }, { "argumentTypes": null, - "id": 463, + "id": 632, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 451, - "src": "2596:4:4", + "referencedDeclaration": 620, + "src": "3116:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -1583,12 +1753,12 @@ }, { "argumentTypes": null, - "id": 464, + "id": 633, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 453, - "src": "2602:9:4", + "referencedDeclaration": 622, + "src": "3122:9:6", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" @@ -1596,12 +1766,12 @@ }, { "argumentTypes": null, - "id": 465, + "id": 634, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 455, - "src": "2613:5:4", + "referencedDeclaration": 624, + "src": "3133:5:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1631,18 +1801,18 @@ "typeString": "uint256" } ], - "id": 460, + "id": 629, "name": "getTransactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 604, - "src": "2566:18:4", + "referencedDeclaration": 785, + "src": "3086:18:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bytes32_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) view returns (bytes32)" } }, - "id": 466, + "id": 635, "isConstant": false, "isLValue": false, "isPure": false, @@ -1650,14 +1820,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2566:53:4", + "src": "3086:53:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "2540:79:4" + "src": "3060:79:6" }, { "expression": { @@ -1669,7 +1839,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 473, + "id": 642, "isConstant": false, "isLValue": false, "isPure": false, @@ -1678,26 +1848,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 469, + "id": 638, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 387, - "src": "2637:10:4", + "referencedDeclaration": 550, + "src": "3157:10:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 471, + "id": 640, "indexExpression": { "argumentTypes": null, - "id": 470, + "id": 639, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 459, - "src": "2648:15:4", + "referencedDeclaration": 628, + "src": "3168:15:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1708,7 +1878,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2637:27:4", + "src": "3157:27:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1719,14 +1889,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 472, + "id": 641, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2668:1:4", + "src": "3188:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1734,7 +1904,7 @@ }, "value": "0" }, - "src": "2637:32:4", + "src": "3157:32:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1743,14 +1913,14 @@ { "argumentTypes": null, "hexValue": "53616665207472616e73616374696f6e20616c7265616479206578656375746564", - "id": 474, + "id": 643, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2671:35:4", + "src": "3191:35:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_78cc689035dd21cb903fbad8327952ddf83800cf1115919ff1ad2be36eed70db", @@ -1770,21 +1940,21 @@ "typeString": "literal_string \"Safe transaction already executed\"" } ], - "id": 468, + "id": 637, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, - "src": "2629:7:4", + "referencedDeclaration": 3832, + "src": "3149:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 475, + "id": 644, "isConstant": false, "isLValue": false, "isPure": false, @@ -1792,15 +1962,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2629:78:4", + "src": "3149:78:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 476, + "id": 645, "nodeType": "ExpressionStatement", - "src": "2629:78:4" + "src": "3149:78:6" }, { "expression": { @@ -1808,12 +1978,12 @@ "arguments": [ { "argumentTypes": null, - "id": 478, + "id": 647, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 459, - "src": "2744:15:4", + "referencedDeclaration": 628, + "src": "3264:15:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1827,18 +1997,18 @@ "typeString": "bytes32" } ], - "id": 477, + "id": 646, "name": "checkAndClearConfirmations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 570, - "src": "2717:26:4", + "referencedDeclaration": 739, + "src": "3237:26:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", "typeString": "function (bytes32)" } }, - "id": 479, + "id": 648, "isConstant": false, "isLValue": false, "isPure": false, @@ -1846,20 +2016,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2717:43:4", + "src": "3237:43:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 480, + "id": 649, "nodeType": "ExpressionStatement", - "src": "2717:43:4" + "src": "3237:43:6" }, { "expression": { "argumentTypes": null, - "id": 485, + "id": 654, "isConstant": false, "isLValue": false, "isPure": false, @@ -1868,26 +2038,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 481, + "id": 650, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 387, - "src": "2823:10:4", + "referencedDeclaration": 550, + "src": "3343:10:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 483, + "id": 652, "indexExpression": { "argumentTypes": null, - "id": 482, + "id": 651, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 459, - "src": "2834:15:4", + "referencedDeclaration": 628, + "src": "3354:15:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1898,7 +2068,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2823:27:4", + "src": "3343:27:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1909,14 +2079,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "31", - "id": 484, + "id": 653, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2853:1:4", + "src": "3373:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -1924,15 +2094,15 @@ }, "value": "1" }, - "src": "2823:31:4", + "src": "3343:31:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 486, + "id": 655, "nodeType": "ExpressionStatement", - "src": "2823:31:4" + "src": "3343:31:6" }, { "expression": { @@ -1943,12 +2113,12 @@ "arguments": [ { "argumentTypes": null, - "id": 489, + "id": 658, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 447, - "src": "2880:2:4", + "referencedDeclaration": 616, + "src": "3400:2:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1956,12 +2126,12 @@ }, { "argumentTypes": null, - "id": 490, + "id": 659, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 449, - "src": "2884:5:4", + "referencedDeclaration": 618, + "src": "3404:5:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1969,12 +2139,12 @@ }, { "argumentTypes": null, - "id": 491, + "id": 660, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 451, - "src": "2891:4:4", + "referencedDeclaration": 620, + "src": "3411:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -1982,12 +2152,12 @@ }, { "argumentTypes": null, - "id": 492, + "id": 661, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 453, - "src": "2897:9:4", + "referencedDeclaration": 622, + "src": "3417:9:6", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" @@ -1998,18 +2168,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 493, + "id": 662, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4029, - "src": "2908:7:4", + "referencedDeclaration": 3821, + "src": "3428:7:6", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 494, + "id": 663, "isConstant": false, "isLValue": false, "isPure": false, @@ -2017,7 +2187,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2908:9:4", + "src": "3428:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2047,18 +2217,18 @@ "typeString": "uint256" } ], - "id": 488, + "id": 657, "name": "execute", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2121, - "src": "2872:7:4", + "referencedDeclaration": 115, + "src": "3392:7:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)" } }, - "id": 495, + "id": 664, "isConstant": false, "isLValue": false, "isPure": false, @@ -2066,7 +2236,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2872:46:4", + "src": "3392:46:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2075,14 +2245,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f7420657865637574652073616665207472616e73616374696f6e", - "id": 496, + "id": 665, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2920:36:4", + "src": "3440:36:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_d12b254798790cac45e0b54201b0ecf8f3257f9e4c1cfc4633e272006616c878", @@ -2102,21 +2272,21 @@ "typeString": "literal_string \"Could not execute safe transaction\"" } ], - "id": 487, + "id": 656, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, - "src": "2864:7:4", + "referencedDeclaration": 3832, + "src": "3384:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 497, + "id": 666, "isConstant": false, "isLValue": false, "isPure": false, @@ -2124,20 +2294,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2864:93:4", + "src": "3384:93:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 498, + "id": 667, "nodeType": "ExpressionStatement", - "src": "2864:93:4" + "src": "3384:93:6" } ] }, "documentation": "@dev Allows to execute a Safe transaction confirmed by required number of owners. If the sender is an owner this is automatically confirmed.\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.", - "id": 500, + "id": 669, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2145,16 +2315,16 @@ "name": "execTransactionIfApproved", "nodeType": "FunctionDefinition", "parameters": { - "id": 456, + "id": 625, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 447, + "id": 616, "name": "to", "nodeType": "VariableDeclaration", - "scope": 500, - "src": "2390:10:4", + "scope": 669, + "src": "2910:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2162,10 +2332,10 @@ "typeString": "address" }, "typeName": { - "id": 446, + "id": 615, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2390:7:4", + "src": "2910:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2176,11 +2346,11 @@ }, { "constant": false, - "id": 449, + "id": 618, "name": "value", "nodeType": "VariableDeclaration", - "scope": 500, - "src": "2411:13:4", + "scope": 669, + "src": "2931:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2188,10 +2358,10 @@ "typeString": "uint256" }, "typeName": { - "id": 448, + "id": 617, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2411:7:4", + "src": "2931:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2202,11 +2372,11 @@ }, { "constant": false, - "id": 451, + "id": 620, "name": "data", "nodeType": "VariableDeclaration", - "scope": 500, - "src": "2435:10:4", + "scope": 669, + "src": "2955:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2214,10 +2384,10 @@ "typeString": "bytes" }, "typeName": { - "id": 450, + "id": 619, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2435:5:4", + "src": "2955:5:6", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2228,11 +2398,11 @@ }, { "constant": false, - "id": 453, + "id": 622, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 500, - "src": "2456:24:4", + "scope": 669, + "src": "2976:24:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2241,11 +2411,11 @@ }, "typeName": { "contractScope": null, - "id": 452, + "id": 621, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 29, - "src": "2456:14:4", + "src": "2976:14:6", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" @@ -2256,11 +2426,11 @@ }, { "constant": false, - "id": 455, + "id": 624, "name": "nonce", "nodeType": "VariableDeclaration", - "scope": 500, - "src": "2491:13:4", + "scope": 669, + "src": "3011:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2268,10 +2438,10 @@ "typeString": "uint256" }, "typeName": { - "id": 454, + "id": 623, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2491:7:4", + "src": "3011:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2281,39 +2451,39 @@ "visibility": "internal" } ], - "src": "2380:130:4" + "src": "2900:130:6" }, "payable": false, "returnParameters": { - "id": 457, + "id": 626, "nodeType": "ParameterList", "parameters": [], - "src": "2530:0:4" + "src": "3050:0:6" }, - "scope": 605, - "src": "2346:618:4", + "scope": 786, + "src": "2866:618:6", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 569, + "id": 738, "nodeType": "Block", - "src": "3052:679:4", + "src": "3572:679:6", "statements": [ { "assignments": [ - 508 + 677 ], "declarations": [ { "constant": false, - "id": 508, + "id": 677, "name": "approvals", "nodeType": "VariableDeclaration", - "scope": 570, - "src": "3062:37:4", + "scope": 739, + "src": "3582:37:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2321,28 +2491,28 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 507, + "id": 676, "keyType": { - "id": 505, + "id": 674, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3070:7:4", + "src": "3590:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3062:27:4", + "src": "3582:27:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 506, + "id": 675, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3081:7:4", + "src": "3601:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2353,31 +2523,31 @@ "visibility": "internal" } ], - "id": 512, + "id": 681, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 509, + "id": 678, "name": "isApproved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 393, - "src": "3102:10:4", + "referencedDeclaration": 556, + "src": "3622:10:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(bytes32 => mapping(address => uint256))" } }, - "id": 511, + "id": 680, "indexExpression": { "argumentTypes": null, - "id": 510, + "id": 679, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 502, - "src": "3113:15:4", + "referencedDeclaration": 671, + "src": "3633:15:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2388,27 +2558,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3102:27:4", + "src": "3622:27:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "nodeType": "VariableDeclarationStatement", - "src": "3062:67:4" + "src": "3582:67:6" }, { "assignments": [ - 514 + 683 ], "declarations": [ { "constant": false, - "id": 514, + "id": 683, "name": "confirmations", "nodeType": "VariableDeclaration", - "scope": 570, - "src": "3139:21:4", + "scope": 739, + "src": "3659:21:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2416,10 +2586,10 @@ "typeString": "uint256" }, "typeName": { - "id": 513, + "id": 682, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3139:7:4", + "src": "3659:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2429,18 +2599,18 @@ "visibility": "internal" } ], - "id": 516, + "id": 685, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 515, + "id": 684, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3163:1:4", + "src": "3683:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2449,20 +2619,20 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "3139:25:4" + "src": "3659:25:6" }, { "assignments": [ - 518 + 687 ], "declarations": [ { "constant": false, - "id": 518, + "id": 687, "name": "currentOwner", "nodeType": "VariableDeclaration", - "scope": 570, - "src": "3216:20:4", + "scope": 739, + "src": "3736:20:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2470,10 +2640,10 @@ "typeString": "address" }, "typeName": { - "id": 517, + "id": 686, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3216:7:4", + "src": "3736:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2483,31 +2653,31 @@ "visibility": "internal" } ], - "id": 522, + "id": 691, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 519, + "id": 688, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, - "src": "3239:6:4", + "referencedDeclaration": 1194, + "src": "3759:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 521, + "id": 690, "indexExpression": { "argumentTypes": null, - "id": 520, + "id": 689, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2490, - "src": "3246:15:4", + "referencedDeclaration": 1190, + "src": "3766:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2518,33 +2688,33 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3239:23:4", + "src": "3759:23:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "3216:46:4" + "src": "3736:46:6" }, { "body": { - "id": 560, + "id": 729, "nodeType": "Block", - "src": "3312:340:4", + "src": "3832:340:6", "statements": [ { "assignments": [ - 527 + 696 ], "declarations": [ { "constant": false, - "id": 527, + "id": 696, "name": "ownerConfirmed", "nodeType": "VariableDeclaration", - "scope": 570, - "src": "3326:19:4", + "scope": 739, + "src": "3846:19:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2552,10 +2722,10 @@ "typeString": "bool" }, "typeName": { - "id": 526, + "id": 695, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3326:4:4", + "src": "3846:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2565,14 +2735,14 @@ "visibility": "internal" } ], - "id": 533, + "id": 702, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 532, + "id": 701, "isConstant": false, "isLValue": false, "isPure": false, @@ -2581,26 +2751,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 528, + "id": 697, "name": "approvals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 508, - "src": "3348:9:4", + "referencedDeclaration": 677, + "src": "3868:9:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 530, + "id": 699, "indexExpression": { "argumentTypes": null, - "id": 529, + "id": 698, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 518, - "src": "3358:12:4", + "referencedDeclaration": 687, + "src": "3878:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2611,7 +2781,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3348:23:4", + "src": "3868:23:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2622,14 +2792,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 531, + "id": 700, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3375:1:4", + "src": "3895:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2637,14 +2807,14 @@ }, "value": "0" }, - "src": "3348:28:4", + "src": "3868:28:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", - "src": "3326:50:4" + "src": "3846:50:6" }, { "condition": { @@ -2653,7 +2823,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 539, + "id": 708, "isConstant": false, "isLValue": false, "isPure": false, @@ -2664,19 +2834,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 537, + "id": 706, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 534, + "id": 703, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 518, - "src": "3393:12:4", + "referencedDeclaration": 687, + "src": "3913:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2688,18 +2858,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 535, + "id": 704, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4036, - "src": "3409:3:4", + "referencedDeclaration": 3828, + "src": "3929:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 536, + "id": 705, "isConstant": false, "isLValue": false, "isPure": false, @@ -2707,13 +2877,13 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3409:10:4", + "src": "3929:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3393:26:4", + "src": "3913:26:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2723,59 +2893,59 @@ "operator": "||", "rightExpression": { "argumentTypes": null, - "id": 538, + "id": 707, "name": "ownerConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 527, - "src": "3423:14:4", + "referencedDeclaration": 696, + "src": "3943:14:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3393:44:4", + "src": "3913:44:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 553, + "id": 722, "nodeType": "IfStatement", - "src": "3390:203:4", + "src": "3910:203:6", "trueBody": { - "id": 552, + "id": 721, "nodeType": "Block", - "src": "3439:154:4", + "src": "3959:154:6", "statements": [ { "condition": { "argumentTypes": null, - "id": 540, + "id": 709, "name": "ownerConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 527, - "src": "3461:14:4", + "referencedDeclaration": 696, + "src": "3981:14:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 548, + "id": 717, "nodeType": "IfStatement", - "src": "3457:88:4", + "src": "3977:88:6", "trueBody": { - "id": 547, + "id": 716, "nodeType": "Block", - "src": "3477:68:4", + "src": "3997:68:6", "statements": [ { "expression": { "argumentTypes": null, - "id": 545, + "id": 714, "isConstant": false, "isLValue": false, "isPure": false, @@ -2784,26 +2954,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 541, + "id": 710, "name": "approvals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 508, - "src": "3499:9:4", + "referencedDeclaration": 677, + "src": "4019:9:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 543, + "id": 712, "indexExpression": { "argumentTypes": null, - "id": 542, + "id": 711, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 518, - "src": "3509:12:4", + "referencedDeclaration": 687, + "src": "4029:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2814,7 +2984,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3499:23:4", + "src": "4019:23:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2825,14 +2995,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 544, + "id": 713, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3525:1:4", + "src": "4045:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2840,15 +3010,15 @@ }, "value": "0" }, - "src": "3499:27:4", + "src": "4019:27:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 546, + "id": 715, "nodeType": "ExpressionStatement", - "src": "3499:27:4" + "src": "4019:27:6" } ] } @@ -2856,7 +3026,7 @@ { "expression": { "argumentTypes": null, - "id": 550, + "id": 719, "isConstant": false, "isLValue": false, "isPure": false, @@ -2864,15 +3034,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "3562:16:4", + "src": "4082:16:6", "subExpression": { "argumentTypes": null, - "id": 549, + "id": 718, "name": "confirmations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "3562:13:4", + "referencedDeclaration": 683, + "src": "4082:13:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2883,9 +3053,9 @@ "typeString": "uint256" } }, - "id": 551, + "id": 720, "nodeType": "ExpressionStatement", - "src": "3562:16:4" + "src": "4082:16:6" } ] } @@ -2893,19 +3063,19 @@ { "expression": { "argumentTypes": null, - "id": 558, + "id": 727, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 554, + "id": 723, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 518, - "src": "3606:12:4", + "referencedDeclaration": 687, + "src": "4126:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2917,26 +3087,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 555, + "id": 724, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, - "src": "3621:6:4", + "referencedDeclaration": 1194, + "src": "4141:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 557, + "id": 726, "indexExpression": { "argumentTypes": null, - "id": 556, + "id": 725, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 518, - "src": "3628:12:4", + "referencedDeclaration": 687, + "src": "4148:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2947,21 +3117,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3621:20:4", + "src": "4141:20:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3606:35:4", + "src": "4126:35:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 559, + "id": 728, "nodeType": "ExpressionStatement", - "src": "3606:35:4" + "src": "4126:35:6" } ] }, @@ -2971,19 +3141,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 525, + "id": 694, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 523, + "id": 692, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 518, - "src": "3279:12:4", + "referencedDeclaration": 687, + "src": "3799:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2993,26 +3163,26 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 524, + "id": 693, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2490, - "src": "3295:15:4", + "referencedDeclaration": 1190, + "src": "3815:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3279:31:4", + "src": "3799:31:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 561, + "id": 730, "nodeType": "WhileStatement", - "src": "3272:380:4" + "src": "3792:380:6" }, { "expression": { @@ -3024,19 +3194,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 565, + "id": 734, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 563, + "id": 732, "name": "confirmations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "3669:13:4", + "referencedDeclaration": 683, + "src": "4189:13:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3046,18 +3216,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 564, + "id": 733, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2498, - "src": "3686:9:4", + "referencedDeclaration": 1198, + "src": "4206:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3669:26:4", + "src": "4189:26:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3066,14 +3236,14 @@ { "argumentTypes": null, "hexValue": "4e6f7420656e6f75676820636f6e6669726d6174696f6e73", - "id": 566, + "id": 735, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3697:26:4", + "src": "4217:26:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b345da2aaad39251196728cc7926bed93e890843c2a47c2cdd1122427d828094", @@ -3093,21 +3263,21 @@ "typeString": "literal_string \"Not enough confirmations\"" } ], - "id": 562, + "id": 731, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, - "src": "3661:7:4", + "referencedDeclaration": 3832, + "src": "4181:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 567, + "id": 736, "isConstant": false, "isLValue": false, "isPure": false, @@ -3115,20 +3285,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3661:63:4", + "src": "4181:63:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 568, + "id": 737, "nodeType": "ExpressionStatement", - "src": "3661:63:4" + "src": "4181:63:6" } ] }, "documentation": null, - "id": 570, + "id": 739, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3136,16 +3306,16 @@ "name": "checkAndClearConfirmations", "nodeType": "FunctionDefinition", "parameters": { - "id": 503, + "id": 672, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 502, + "id": 671, "name": "transactionHash", "nodeType": "VariableDeclaration", - "scope": 570, - "src": "3006:23:4", + "scope": 739, + "src": "3526:23:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3153,10 +3323,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 501, + "id": 670, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3006:7:4", + "src": "3526:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3166,77 +3336,335 @@ "visibility": "internal" } ], - "src": "3005:25:4" + "src": "3525:25:6" }, "payable": false, "returnParameters": { - "id": 504, + "id": 673, "nodeType": "ParameterList", "parameters": [], - "src": "3052:0:4" + "src": "3572:0:6" }, - "scope": 605, - "src": "2970:761:4", + "scope": 786, + "src": "3490:761:6", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 603, + "id": 784, "nodeType": "Block", - "src": "4225:113:4", + "src": "4745:250:6", "statements": [ { - "expression": { + "assignments": [ + 755 + ], + "declarations": [ + { + "constant": false, + "id": 755, + "name": "safeTxHash", + "nodeType": "VariableDeclaration", + "scope": 785, + "src": "4755:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 754, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4755:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 769, + "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ + { + "argumentTypes": null, + "id": 759, + "name": "SAFE_TX_TYPEHASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 546, + "src": "4810:16:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 760, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 741, + "src": "4828:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 761, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 743, + "src": "4832:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "hexValue": "30783139", - "id": 589, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4274:4:4", - "subdenomination": null, + "id": 763, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 745, + "src": "4849:4:6", "typeDescriptions": { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - }, - "value": "0x19" + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" } ], - "id": 588, - "isConstant": false, + "id": 762, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3822, + "src": "4839:9:6", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4839:15:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 765, + "name": "operation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 747, + "src": "4856:9:6", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + } + }, + { + "argumentTypes": null, + "id": 766, + "name": "nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 749, + "src": "4867:5:6", + "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_$29", + "typeString": "enum Enum.Operation" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 757, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3815, + "src": "4799:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 758, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4799:10:6", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4799:74:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 756, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3822, + "src": "4776:9:6", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 768, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4776:107:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4755:128:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30783139", + "id": 774, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4945:4:6", + "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": 773, + "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4269:4:4", + "src": "4940:4:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": "byte" }, - "id": 590, + "id": 775, "isConstant": false, "isLValue": false, "isPure": true, @@ -3244,7 +3672,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4269:10:4", + "src": "4940:10:6", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -3255,44 +3683,44 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "30", - "id": 592, + "hexValue": "31", + "id": 777, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4286:1:4", + "src": "4957:1:6", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" }, - "value": "0" + "value": "1" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" } ], - "id": 591, + "id": 776, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4281:4:4", + "src": "4952:4:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": "byte" }, - "id": 593, + "id": 778, "isConstant": false, "isLValue": false, "isPure": true, @@ -3300,7 +3728,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4281:7:4", + "src": "4952:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -3308,80 +3736,28 @@ }, { "argumentTypes": null, - "id": 594, + "id": 779, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4073, - "src": "4290:4:4", + "referencedDeclaration": 3869, + "src": "4961:4:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_GnosisSafeTeamEdition_$605", + "typeIdentifier": "t_contract$_GnosisSafeTeamEdition_$786", "typeString": "contract GnosisSafeTeamEdition" } }, { "argumentTypes": null, - "id": 595, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 572, - "src": "4296:2:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 596, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 574, - "src": "4300:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 597, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 576, - "src": "4307:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 598, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 578, - "src": "4313:9:4", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 599, - "name": "nonce", + "id": 780, + "name": "safeTxHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "4324:5:4", + "referencedDeclaration": 755, + "src": "4967:10:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } } ], @@ -3396,44 +3772,28 @@ "typeString": "bytes1" }, { - "typeIdentifier": "t_contract$_GnosisSafeTeamEdition_$605", + "typeIdentifier": "t_contract$_GnosisSafeTeamEdition_$786", "typeString": "contract GnosisSafeTeamEdition" }, { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } ], "expression": { "argumentTypes": null, - "id": 586, + "id": 771, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4023, - "src": "4252:3:4", + "referencedDeclaration": 3815, + "src": "4923:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 587, + "id": 772, "isConstant": false, "isLValue": false, "isPure": true, @@ -3441,13 +3801,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4252:16:4", + "src": "4923:16:6", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 600, + "id": 781, "isConstant": false, "isLValue": false, "isPure": false, @@ -3455,7 +3815,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4252:78:4", + "src": "4923:55:6", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -3469,18 +3829,18 @@ "typeString": "bytes memory" } ], - "id": 585, + "id": 770, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4030, - "src": "4242:9:4", + "referencedDeclaration": 3822, + "src": "4900:9:6", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 601, + "id": 782, "isConstant": false, "isLValue": false, "isPure": false, @@ -3488,21 +3848,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4242:89:4", + "src": "4900:88:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 584, - "id": 602, + "functionReturnParameters": 753, + "id": 783, "nodeType": "Return", - "src": "4235:96:4" + "src": "4893:95:6" } ] }, "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": 604, + "id": 785, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3510,16 +3870,16 @@ "name": "getTransactionHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 581, + "id": 750, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 572, + "id": 741, "name": "to", "nodeType": "VariableDeclaration", - "scope": 604, - "src": "4046:10:4", + "scope": 785, + "src": "4566:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3527,10 +3887,10 @@ "typeString": "address" }, "typeName": { - "id": 571, + "id": 740, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4046:7:4", + "src": "4566:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3541,11 +3901,11 @@ }, { "constant": false, - "id": 574, + "id": 743, "name": "value", "nodeType": "VariableDeclaration", - "scope": 604, - "src": "4067:13:4", + "scope": 785, + "src": "4587:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3553,10 +3913,10 @@ "typeString": "uint256" }, "typeName": { - "id": 573, + "id": 742, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4067:7:4", + "src": "4587:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3567,11 +3927,11 @@ }, { "constant": false, - "id": 576, + "id": 745, "name": "data", "nodeType": "VariableDeclaration", - "scope": 604, - "src": "4091:10:4", + "scope": 785, + "src": "4611:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3579,10 +3939,10 @@ "typeString": "bytes" }, "typeName": { - "id": 575, + "id": 744, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "4091:5:4", + "src": "4611:5:6", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3593,11 +3953,11 @@ }, { "constant": false, - "id": 578, + "id": 747, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 604, - "src": "4112:24:4", + "scope": 785, + "src": "4632:24:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3606,11 +3966,11 @@ }, "typeName": { "contractScope": null, - "id": 577, + "id": 746, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 29, - "src": "4112:14:4", + "src": "4632:14:6", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" @@ -3621,11 +3981,11 @@ }, { "constant": false, - "id": 580, + "id": 749, "name": "nonce", "nodeType": "VariableDeclaration", - "scope": 604, - "src": "4147:13:4", + "scope": 785, + "src": "4667:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3633,10 +3993,10 @@ "typeString": "uint256" }, "typeName": { - "id": 579, + "id": 748, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4147:7:4", + "src": "4667:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3646,20 +4006,20 @@ "visibility": "internal" } ], - "src": "4036:130:4" + "src": "4556:130:6" }, "payable": false, "returnParameters": { - "id": 584, + "id": 753, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 583, + "id": 752, "name": "", "nodeType": "VariableDeclaration", - "scope": 604, - "src": "4212:7:4", + "scope": 785, + "src": "4732:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3667,10 +4027,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 582, + "id": 751, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4212:7:4", + "src": "4732:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3680,60 +4040,60 @@ "visibility": "internal" } ], - "src": "4211:9:4" + "src": "4731:9:6" }, - "scope": 605, - "src": "4009:329:4", + "scope": 786, + "src": "4529:466:6", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 606, - "src": "272:4068:4" + "scope": 787, + "src": "272:4725:6" } ], - "src": "0:4341:4" + "src": "0:4998:6" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafeTeamEdition.sol", "exportedSymbols": { "GnosisSafeTeamEdition": [ - 605 + 786 ] }, - "id": 606, + "id": 787, "nodeType": "SourceUnit", "nodes": [ { - "id": 371, + "id": 531, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:4" + "src": "0:23:6" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafe.sol", "file": "./GnosisSafe.sol", - "id": 372, + "id": 532, "nodeType": "ImportDirective", - "scope": 606, - "sourceUnit": 64, - "src": "24:26:4", + "scope": 787, + "sourceUnit": 209, + "src": "24:26:6", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol", "file": "./MasterCopy.sol", - "id": 373, + "id": 533, "nodeType": "ImportDirective", - "scope": 606, - "sourceUnit": 633, - "src": "51:26:4", + "scope": 787, + "sourceUnit": 814, + "src": "51:26:6", "symbolAliases": [], "unitAlias": "" }, @@ -3743,68 +4103,72 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 374, + "id": 534, "name": "MasterCopy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 632, - "src": "306:10:4", + "referencedDeclaration": 813, + "src": "306:10:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_MasterCopy_$632", + "typeIdentifier": "t_contract$_MasterCopy_$813", "typeString": "contract MasterCopy" } }, - "id": 375, + "id": 535, "nodeType": "InheritanceSpecifier", - "src": "306:10:4" + "src": "306:10:6" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 376, + "id": 536, "name": "GnosisSafe", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 63, - "src": "318:10:4", + "referencedDeclaration": 208, + "src": "318:10:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_GnosisSafe_$63", + "typeIdentifier": "t_contract$_GnosisSafe_$208", "typeString": "contract GnosisSafe" } }, - "id": 377, + "id": 537, "nodeType": "InheritanceSpecifier", - "src": "318:10:4" + "src": "318:10:6" } ], "contractDependencies": [ - 63, - 632, - 2232, - 2888, - 3065 + 208, + 153, + 37, + 813, + 1180, + 1588, + 1765 ], "contractKind": "contract", "documentation": "@title Gnosis Safe Team Edition - A multisignature wallet with support for confirmations.\n @author Stefan George - \n @author Richard Meissner - ", "fullyImplemented": true, - "id": 605, + "id": 786, "linearizedBaseContracts": [ - 605, - 63, - 2888, - 2232, - 632, - 3065 + 786, + 208, + 1588, + 1180, + 153, + 37, + 813, + 1765 ], "name": "GnosisSafeTeamEdition", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 380, + "id": 540, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 605, - "src": "336:56:4", + "scope": 786, + "src": "336:56:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3812,10 +4176,10 @@ "typeString": "string" }, "typeName": { - "id": 378, + "id": 538, "name": "string", "nodeType": "ElementaryTypeName", - "src": "336:6:4", + "src": "336:6:6", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3824,14 +4188,14 @@ "value": { "argumentTypes": null, "hexValue": "476e6f7369732053616665205465616d2045646974696f6e", - "id": 379, + "id": 539, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "366:26:4", + "src": "366:26:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_69b1cb372bb47730ba653a0e87363aa6de8337d13ed5852e6fe3ba4e2004a81e", @@ -3843,11 +4207,11 @@ }, { "constant": true, - "id": 383, + "id": 543, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 605, - "src": "398:40:4", + "scope": 786, + "src": "399:40:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3855,10 +4219,10 @@ "typeString": "string" }, "typeName": { - "id": 381, + "id": 541, "name": "string", "nodeType": "ElementaryTypeName", - "src": "398:6:4", + "src": "399:6:6", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3867,14 +4231,14 @@ "value": { "argumentTypes": null, "hexValue": "302e302e31", - "id": 382, + "id": 542, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "431:7:4", + "src": "432:7:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", @@ -3884,13 +4248,56 @@ }, "visibility": "public" }, + { + "constant": true, + "id": 546, + "name": "SAFE_TX_TYPEHASH", + "nodeType": "VariableDeclaration", + "scope": 786, + "src": "561:109:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 544, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "561:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307835643162626134386666343739656238613838656336303239663662356565626338303563376463623837343730643562313132316433366438323463383733", + "id": 545, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "604:66:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_42114085481813550712033693253853890854456273647728279042821730599331164375155_by_1", + "typeString": "int_const 4211...(69 digits omitted)...5155" + }, + "value": "0x5d1bba48ff479eb8a88ec6029f6b5eebc805c7dcb87470d5b1121d36d824c873" + }, + "visibility": "public" + }, { "constant": false, - "id": 387, + "id": 550, "name": "isExecuted", "nodeType": "VariableDeclaration", - "scope": 605, - "src": "536:46:4", + "scope": 786, + "src": "768:46:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3898,28 +4305,28 @@ "typeString": "mapping(bytes32 => uint256)" }, "typeName": { - "id": 386, + "id": 549, "keyType": { - "id": 384, + "id": 547, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "545:7:4", + "src": "777:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "536:28:4", + "src": "768:28:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" }, "valueType": { - "id": 385, + "id": 548, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "556:7:4", + "src": "788:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3931,11 +4338,11 @@ }, { "constant": false, - "id": 393, + "id": 556, "name": "isApproved", "nodeType": "VariableDeclaration", - "scope": 605, - "src": "770:66:4", + "scope": 786, + "src": "1002:66:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3943,46 +4350,46 @@ "typeString": "mapping(bytes32 => mapping(address => uint256))" }, "typeName": { - "id": 392, + "id": 555, "keyType": { - "id": 388, + "id": 551, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "779:7:4", + "src": "1011:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "770:48:4", + "src": "1002:48:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(bytes32 => mapping(address => uint256))" }, "valueType": { - "id": 391, + "id": 554, "keyType": { - "id": 389, + "id": 552, "name": "address", "nodeType": "ElementaryTypeName", - "src": "798:7:4", + "src": "1030:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "790:27:4", + "src": "1022:27:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 390, + "id": 553, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "809:7:4", + "src": "1041:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3995,9 +4402,9 @@ }, { "body": { - "id": 444, + "id": 589, "nodeType": "Block", - "src": "1457:447:4", + "src": "1350:358:6", "statements": [ { "expression": { @@ -4009,7 +4416,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 412, + "id": 567, "isConstant": false, "isLValue": false, "isPure": false, @@ -4018,34 +4425,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 407, + "id": 562, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, - "src": "1545:6:4", + "referencedDeclaration": 1194, + "src": "1438:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 410, + "id": 565, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 408, + "id": 563, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4036, - "src": "1552:3:4", + "referencedDeclaration": 3828, + "src": "1445:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 409, + "id": 564, "isConstant": false, "isLValue": false, "isPure": false, @@ -4053,7 +4460,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1552:10:4", + "src": "1445:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4064,7 +4471,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1545:18:4", + "src": "1438:18:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4075,14 +4482,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 411, + "id": 566, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1567:1:4", + "src": "1460:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4090,7 +4497,7 @@ }, "value": "0" }, - "src": "1545:23:4", + "src": "1438:23:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4099,14 +4506,14 @@ { "argumentTypes": null, "hexValue": "53656e646572206973206e6f7420616e206f776e6572", - "id": 413, + "id": 568, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1570:24:4", + "src": "1463:24:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b22a5f47ffb62866097c90f90b5b53f76973769c84a10c62e12a07eb2ba1ef4a", @@ -4126,21 +4533,21 @@ "typeString": "literal_string \"Sender is not an owner\"" } ], - "id": 406, + "id": 561, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, - "src": "1537:7:4", + "referencedDeclaration": 3832, + "src": "1430:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 414, + "id": 569, "isConstant": false, "isLValue": false, "isPure": false, @@ -4148,168 +4555,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1537:58:4", + "src": "1430:58:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 415, + "id": 570, "nodeType": "ExpressionStatement", - "src": "1537:58:4" - }, - { - "assignments": [ - 417 - ], - "declarations": [ - { - "constant": false, - "id": 417, - "name": "transactionHash", - "nodeType": "VariableDeclaration", - "scope": 445, - "src": "1605:23:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 416, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1605:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 425, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 419, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 395, - "src": "1650:2:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 420, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 397, - "src": "1654:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 421, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 399, - "src": "1661:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 422, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 401, - "src": "1667:9:4", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 423, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 403, - "src": "1678:5:4", - "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_$29", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 418, - "name": "getTransactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 604, - "src": "1631:18:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bytes32_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) view returns (bytes32)" - } - }, - "id": 424, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1631:53:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1605:79:4" + "src": "1430:58:6" }, { "expression": { @@ -4321,7 +4575,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 431, + "id": 576, "isConstant": false, "isLValue": false, "isPure": false, @@ -4330,26 +4584,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 427, + "id": 572, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 387, - "src": "1774:10:4", + "referencedDeclaration": 550, + "src": "1578:10:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 429, + "id": 574, "indexExpression": { "argumentTypes": null, - "id": 428, + "id": 573, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 417, - "src": "1785:15:4", + "referencedDeclaration": 558, + "src": "1589:15:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4360,7 +4614,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1774:27:4", + "src": "1578:27:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4371,14 +4625,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 430, + "id": 575, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1805:1:4", + "src": "1609:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4386,7 +4640,7 @@ }, "value": "0" }, - "src": "1774:32:4", + "src": "1578:32:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4395,14 +4649,14 @@ { "argumentTypes": null, "hexValue": "53616665207472616e73616374696f6e20616c7265616479206578656375746564", - "id": 432, + "id": 577, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1808:35:4", + "src": "1612:35:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_78cc689035dd21cb903fbad8327952ddf83800cf1115919ff1ad2be36eed70db", @@ -4422,21 +4676,21 @@ "typeString": "literal_string \"Safe transaction already executed\"" } ], - "id": 426, + "id": 571, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, - "src": "1766:7:4", + "referencedDeclaration": 3832, + "src": "1570:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 433, + "id": 578, "isConstant": false, "isLValue": false, "isPure": false, @@ -4444,20 +4698,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1766:78:4", + "src": "1570:78:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 434, + "id": 579, "nodeType": "ExpressionStatement", - "src": "1766:78:4" + "src": "1570:78:6" }, { "expression": { "argumentTypes": null, - "id": 442, + "id": 587, "isConstant": false, "isLValue": false, "isPure": false, @@ -4468,26 +4722,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 435, + "id": 580, "name": "isApproved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 393, - "src": "1854:10:4", + "referencedDeclaration": 556, + "src": "1658:10:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(bytes32 => mapping(address => uint256))" } }, - "id": 439, + "id": 584, "indexExpression": { "argumentTypes": null, - "id": 436, + "id": 581, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 417, - "src": "1865:15:4", + "referencedDeclaration": 558, + "src": "1669:15:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4498,29 +4752,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1854:27:4", + "src": "1658:27:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 440, + "id": 585, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 437, + "id": 582, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4036, - "src": "1882:3:4", + "referencedDeclaration": 3828, + "src": "1686:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 438, + "id": 583, "isConstant": false, "isLValue": false, "isPure": false, @@ -4528,7 +4782,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1882:10:4", + "src": "1686:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4539,7 +4793,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1854:39:4", + "src": "1658:39:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4550,14 +4804,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "31", - "id": 441, + "id": 586, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1896:1:4", + "src": "1700:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -4565,463 +4819,219 @@ }, "value": "1" }, - "src": "1854:43:4", + "src": "1658:43:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 443, + "id": 588, "nodeType": "ExpressionStatement", - "src": "1854:43:4" + "src": "1658:43:6" } ] }, - "documentation": "@dev Allows to confirm a Safe transaction with a regular transaction.\n This can only be done from an owner address.\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.", - "id": 445, + "documentation": "@dev Allows to confirm a Safe transaction with a regular transaction.\n This can only be done from an owner address.\n @param transactionHash Hash of the Safe transaction.", + "id": 590, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "approveTransactionWithParameters", + "name": "approveTransactionByHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 404, + "id": 559, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 395, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 445, - "src": "1317:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 394, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1317:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 397, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 445, - "src": "1338:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 396, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1338:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 399, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 445, - "src": "1362:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 398, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1362:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 401, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 445, - "src": "1383:24:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 400, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 29, - "src": "1383:14:4", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 403, - "name": "nonce", + "id": 558, + "name": "transactionHash", "nodeType": "VariableDeclaration", - "scope": 445, - "src": "1418:13:4", + "scope": 590, + "src": "1306:23:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" }, "typeName": { - "id": 402, - "name": "uint256", + "id": 557, + "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1418:7:4", + "src": "1306:7:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, "value": null, "visibility": "internal" } ], - "src": "1307:130:4" + "src": "1305:25:6" }, "payable": false, "returnParameters": { - "id": 405, + "id": 560, "nodeType": "ParameterList", "parameters": [], - "src": "1457:0:4" + "src": "1350:0:6" }, - "scope": 605, - "src": "1266:638:4", + "scope": 786, + "src": "1272:436:6", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 499, + "id": 613, "nodeType": "Block", - "src": "2530:434:4", + "src": "2328:96:6", "statements": [ { - "assignments": [ - 459 - ], - "declarations": [ - { - "constant": false, - "id": 459, - "name": "transactionHash", - "nodeType": "VariableDeclaration", - "scope": 500, - "src": "2540:23:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 458, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2540:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 467, - "initialValue": { + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 461, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 447, - "src": "2585:2:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 462, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 449, - "src": "2589:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 463, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 451, - "src": "2596:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 464, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 453, - "src": "2602:9:4", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 465, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 455, - "src": "2613:5:4", - "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_$29", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 460, - "name": "getTransactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 604, - "src": "2566:18:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bytes32_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) view returns (bytes32)" - } - }, - "id": 466, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2566:53:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2540:79:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { + "arguments": [ + { "argumentTypes": null, - "id": 469, - "name": "isExecuted", + "id": 605, + "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 387, - "src": "2637:10:4", + "referencedDeclaration": 592, + "src": "2382:2:6", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 471, - "indexExpression": { + { "argumentTypes": null, - "id": 470, - "name": "transactionHash", + "id": 606, + "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 459, - "src": "2648:15:4", + "referencedDeclaration": 594, + "src": "2386:5:6", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2637:27:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + { + "argumentTypes": null, + "id": 607, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 596, + "src": "2393:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 608, + "name": "operation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 598, + "src": "2399:9:6", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + } + }, + { + "argumentTypes": null, + "id": 609, + "name": "nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 600, + "src": "2410:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 472, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2668:1:4", - "subdenomination": null, + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 604, + "name": "getTransactionHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 785, + "src": "2363:18:6", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) view returns (bytes32)" + } }, - "src": "2637:32:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "53616665207472616e73616374696f6e20616c7265616479206578656375746564", - "id": 474, + "id": 610, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "string", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "Literal", - "src": "2671:35:4", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "2363:53:6", "typeDescriptions": { - "typeIdentifier": "t_stringliteral_78cc689035dd21cb903fbad8327952ddf83800cf1115919ff1ad2be36eed70db", - "typeString": "literal_string \"Safe transaction already executed\"" - }, - "value": "Safe transaction already executed" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_78cc689035dd21cb903fbad8327952ddf83800cf1115919ff1ad2be36eed70db", - "typeString": "literal_string \"Safe transaction already executed\"" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } ], - "id": 468, - "name": "require", + "id": 603, + "name": "approveTransactionByHash", "nodeType": "Identifier", - "overloadedDeclarations": [ - 4039, - 4040 - ], - "referencedDeclaration": 4040, - "src": "2629:7:4", + "overloadedDeclarations": [], + "referencedDeclaration": 590, + "src": "2338:24:6", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", + "typeString": "function (bytes32)" } }, - "id": 475, + "id": 611, "isConstant": false, "isLValue": false, "isPure": false, @@ -5029,53 +5039,321 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2629:78:4", + "src": "2338:79:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 476, + "id": 612, "nodeType": "ExpressionStatement", - "src": "2629:78:4" - }, + "src": "2338:79:6" + } + ] + }, + "documentation": "@dev Allows to confirm a Safe transaction with a regular transaction.\n This can only be done from an owner address.\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.", + "id": 614, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approveTransactionWithParameters", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 601, + "nodeType": "ParameterList", + "parameters": [ { - "expression": { + "constant": false, + "id": 592, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 614, + "src": "2188:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 591, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2188:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 594, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 614, + "src": "2209:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 593, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2209:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 596, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 614, + "src": "2233:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 595, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2233:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 598, + "name": "operation", + "nodeType": "VariableDeclaration", + "scope": 614, + "src": "2254:24:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + }, + "typeName": { + "contractScope": null, + "id": 597, + "name": "Enum.Operation", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 29, + "src": "2254:14:6", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 600, + "name": "nonce", + "nodeType": "VariableDeclaration", + "scope": 614, + "src": "2289:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 599, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2289:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2178:130:6" + }, + "payable": false, + "returnParameters": { + "id": 602, + "nodeType": "ParameterList", + "parameters": [], + "src": "2328:0:6" + }, + "scope": 786, + "src": "2137:287:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 668, + "nodeType": "Block", + "src": "3050:434:6", + "statements": [ + { + "assignments": [ + 628 + ], + "declarations": [ + { + "constant": false, + "id": 628, + "name": "transactionHash", + "nodeType": "VariableDeclaration", + "scope": 669, + "src": "3060:23:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 627, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3060:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 636, + "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 478, - "name": "transactionHash", + "id": 630, + "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 459, - "src": "2744:15:4", + "referencedDeclaration": 616, + "src": "3105:2:6", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 631, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 618, + "src": "3109:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 632, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 620, + "src": "3116:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 633, + "name": "operation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 622, + "src": "3122:9:6", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + } + }, + { + "argumentTypes": null, + "id": 634, + "name": "nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 624, + "src": "3133:5:6", + "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_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 477, - "name": "checkAndClearConfirmations", + "id": 629, + "name": "getTransactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 570, - "src": "2717:26:4", + "referencedDeclaration": 785, + "src": "3086:18:6", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", - "typeString": "function (bytes32)" + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) view returns (bytes32)" } }, - "id": 479, + "id": 635, "isConstant": false, "isLValue": false, "isPure": false, @@ -5083,59 +5361,255 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2717:43:4", + "src": "3086:53:6", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "id": 480, - "nodeType": "ExpressionStatement", - "src": "2717:43:4" + "nodeType": "VariableDeclarationStatement", + "src": "3060:79:6" }, { "expression": { "argumentTypes": null, - "id": 485, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 481, - "name": "isExecuted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 387, - "src": "2823:10:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 483, - "indexExpression": { + "arguments": [ + { "argumentTypes": null, - "id": 482, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 459, - "src": "2834:15:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 638, + "name": "isExecuted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 550, + "src": "3157:10:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 640, + "indexExpression": { + "argumentTypes": null, + "id": 639, + "name": "transactionHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 628, + "src": "3168:15:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3157:27:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 641, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3188:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3157:32:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "53616665207472616e73616374696f6e20616c7265616479206578656375746564", + "id": 643, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3191:35:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_78cc689035dd21cb903fbad8327952ddf83800cf1115919ff1ad2be36eed70db", + "typeString": "literal_string \"Safe transaction already executed\"" + }, + "value": "Safe transaction already executed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_78cc689035dd21cb903fbad8327952ddf83800cf1115919ff1ad2be36eed70db", + "typeString": "literal_string \"Safe transaction already executed\"" + } + ], + "id": 637, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3832, + "src": "3149:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 644, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3149:78:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 645, + "nodeType": "ExpressionStatement", + "src": "3149:78:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 647, + "name": "transactionHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 628, + "src": "3264:15:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 646, + "name": "checkAndClearConfirmations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 739, + "src": "3237:26:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", + "typeString": "function (bytes32)" + } + }, + "id": 648, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3237:43:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 649, + "nodeType": "ExpressionStatement", + "src": "3237:43:6" + }, + { + "expression": { + "argumentTypes": null, + "id": 654, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 650, + "name": "isExecuted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 550, + "src": "3343:10:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 652, + "indexExpression": { + "argumentTypes": null, + "id": 651, + "name": "transactionHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 628, + "src": "3354:15:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2823:27:4", + "src": "3343:27:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5146,14 +5620,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "31", - "id": 484, + "id": 653, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2853:1:4", + "src": "3373:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -5161,15 +5635,15 @@ }, "value": "1" }, - "src": "2823:31:4", + "src": "3343:31:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 486, + "id": 655, "nodeType": "ExpressionStatement", - "src": "2823:31:4" + "src": "3343:31:6" }, { "expression": { @@ -5180,12 +5654,12 @@ "arguments": [ { "argumentTypes": null, - "id": 489, + "id": 658, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 447, - "src": "2880:2:4", + "referencedDeclaration": 616, + "src": "3400:2:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5193,12 +5667,12 @@ }, { "argumentTypes": null, - "id": 490, + "id": 659, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 449, - "src": "2884:5:4", + "referencedDeclaration": 618, + "src": "3404:5:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5206,12 +5680,12 @@ }, { "argumentTypes": null, - "id": 491, + "id": 660, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 451, - "src": "2891:4:4", + "referencedDeclaration": 620, + "src": "3411:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -5219,12 +5693,12 @@ }, { "argumentTypes": null, - "id": 492, + "id": 661, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 453, - "src": "2897:9:4", + "referencedDeclaration": 622, + "src": "3417:9:6", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" @@ -5235,18 +5709,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 493, + "id": 662, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4029, - "src": "2908:7:4", + "referencedDeclaration": 3821, + "src": "3428:7:6", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 494, + "id": 663, "isConstant": false, "isLValue": false, "isPure": false, @@ -5254,7 +5728,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2908:9:4", + "src": "3428:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5284,18 +5758,18 @@ "typeString": "uint256" } ], - "id": 488, + "id": 657, "name": "execute", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2121, - "src": "2872:7:4", + "referencedDeclaration": 115, + "src": "3392:7:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)" } }, - "id": 495, + "id": 664, "isConstant": false, "isLValue": false, "isPure": false, @@ -5303,7 +5777,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2872:46:4", + "src": "3392:46:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5312,14 +5786,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f7420657865637574652073616665207472616e73616374696f6e", - "id": 496, + "id": 665, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2920:36:4", + "src": "3440:36:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_d12b254798790cac45e0b54201b0ecf8f3257f9e4c1cfc4633e272006616c878", @@ -5339,21 +5813,21 @@ "typeString": "literal_string \"Could not execute safe transaction\"" } ], - "id": 487, + "id": 656, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, - "src": "2864:7:4", + "referencedDeclaration": 3832, + "src": "3384:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 497, + "id": 666, "isConstant": false, "isLValue": false, "isPure": false, @@ -5361,20 +5835,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2864:93:4", + "src": "3384:93:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 498, + "id": 667, "nodeType": "ExpressionStatement", - "src": "2864:93:4" + "src": "3384:93:6" } ] }, "documentation": "@dev Allows to execute a Safe transaction confirmed by required number of owners. If the sender is an owner this is automatically confirmed.\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.", - "id": 500, + "id": 669, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -5382,16 +5856,16 @@ "name": "execTransactionIfApproved", "nodeType": "FunctionDefinition", "parameters": { - "id": 456, + "id": 625, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 447, + "id": 616, "name": "to", "nodeType": "VariableDeclaration", - "scope": 500, - "src": "2390:10:4", + "scope": 669, + "src": "2910:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5399,10 +5873,10 @@ "typeString": "address" }, "typeName": { - "id": 446, + "id": 615, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2390:7:4", + "src": "2910:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5413,11 +5887,11 @@ }, { "constant": false, - "id": 449, + "id": 618, "name": "value", "nodeType": "VariableDeclaration", - "scope": 500, - "src": "2411:13:4", + "scope": 669, + "src": "2931:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5425,10 +5899,10 @@ "typeString": "uint256" }, "typeName": { - "id": 448, + "id": 617, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2411:7:4", + "src": "2931:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5439,11 +5913,11 @@ }, { "constant": false, - "id": 451, + "id": 620, "name": "data", "nodeType": "VariableDeclaration", - "scope": 500, - "src": "2435:10:4", + "scope": 669, + "src": "2955:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5451,10 +5925,10 @@ "typeString": "bytes" }, "typeName": { - "id": 450, + "id": 619, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2435:5:4", + "src": "2955:5:6", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -5465,11 +5939,11 @@ }, { "constant": false, - "id": 453, + "id": 622, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 500, - "src": "2456:24:4", + "scope": 669, + "src": "2976:24:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5478,11 +5952,11 @@ }, "typeName": { "contractScope": null, - "id": 452, + "id": 621, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 29, - "src": "2456:14:4", + "src": "2976:14:6", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" @@ -5493,11 +5967,11 @@ }, { "constant": false, - "id": 455, + "id": 624, "name": "nonce", "nodeType": "VariableDeclaration", - "scope": 500, - "src": "2491:13:4", + "scope": 669, + "src": "3011:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5505,10 +5979,10 @@ "typeString": "uint256" }, "typeName": { - "id": 454, + "id": 623, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2491:7:4", + "src": "3011:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5518,39 +5992,39 @@ "visibility": "internal" } ], - "src": "2380:130:4" + "src": "2900:130:6" }, "payable": false, "returnParameters": { - "id": 457, + "id": 626, "nodeType": "ParameterList", "parameters": [], - "src": "2530:0:4" + "src": "3050:0:6" }, - "scope": 605, - "src": "2346:618:4", + "scope": 786, + "src": "2866:618:6", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 569, + "id": 738, "nodeType": "Block", - "src": "3052:679:4", + "src": "3572:679:6", "statements": [ { "assignments": [ - 508 + 677 ], "declarations": [ { "constant": false, - "id": 508, + "id": 677, "name": "approvals", "nodeType": "VariableDeclaration", - "scope": 570, - "src": "3062:37:4", + "scope": 739, + "src": "3582:37:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5558,28 +6032,28 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 507, + "id": 676, "keyType": { - "id": 505, + "id": 674, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3070:7:4", + "src": "3590:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3062:27:4", + "src": "3582:27:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 506, + "id": 675, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3081:7:4", + "src": "3601:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5590,31 +6064,31 @@ "visibility": "internal" } ], - "id": 512, + "id": 681, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 509, + "id": 678, "name": "isApproved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 393, - "src": "3102:10:4", + "referencedDeclaration": 556, + "src": "3622:10:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(bytes32 => mapping(address => uint256))" } }, - "id": 511, + "id": 680, "indexExpression": { "argumentTypes": null, - "id": 510, + "id": 679, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 502, - "src": "3113:15:4", + "referencedDeclaration": 671, + "src": "3633:15:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5625,27 +6099,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3102:27:4", + "src": "3622:27:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "nodeType": "VariableDeclarationStatement", - "src": "3062:67:4" + "src": "3582:67:6" }, { "assignments": [ - 514 + 683 ], "declarations": [ { "constant": false, - "id": 514, + "id": 683, "name": "confirmations", "nodeType": "VariableDeclaration", - "scope": 570, - "src": "3139:21:4", + "scope": 739, + "src": "3659:21:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5653,10 +6127,10 @@ "typeString": "uint256" }, "typeName": { - "id": 513, + "id": 682, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3139:7:4", + "src": "3659:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5666,18 +6140,18 @@ "visibility": "internal" } ], - "id": 516, + "id": 685, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 515, + "id": 684, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3163:1:4", + "src": "3683:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5686,20 +6160,20 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "3139:25:4" + "src": "3659:25:6" }, { "assignments": [ - 518 + 687 ], "declarations": [ { "constant": false, - "id": 518, + "id": 687, "name": "currentOwner", "nodeType": "VariableDeclaration", - "scope": 570, - "src": "3216:20:4", + "scope": 739, + "src": "3736:20:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5707,10 +6181,10 @@ "typeString": "address" }, "typeName": { - "id": 517, + "id": 686, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3216:7:4", + "src": "3736:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5720,31 +6194,31 @@ "visibility": "internal" } ], - "id": 522, + "id": 691, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 519, + "id": 688, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, - "src": "3239:6:4", + "referencedDeclaration": 1194, + "src": "3759:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 521, + "id": 690, "indexExpression": { "argumentTypes": null, - "id": 520, + "id": 689, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2490, - "src": "3246:15:4", + "referencedDeclaration": 1190, + "src": "3766:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5755,33 +6229,33 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3239:23:4", + "src": "3759:23:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "3216:46:4" + "src": "3736:46:6" }, { "body": { - "id": 560, + "id": 729, "nodeType": "Block", - "src": "3312:340:4", + "src": "3832:340:6", "statements": [ { "assignments": [ - 527 + 696 ], "declarations": [ { "constant": false, - "id": 527, + "id": 696, "name": "ownerConfirmed", "nodeType": "VariableDeclaration", - "scope": 570, - "src": "3326:19:4", + "scope": 739, + "src": "3846:19:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5789,10 +6263,10 @@ "typeString": "bool" }, "typeName": { - "id": 526, + "id": 695, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3326:4:4", + "src": "3846:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5802,14 +6276,14 @@ "visibility": "internal" } ], - "id": 533, + "id": 702, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 532, + "id": 701, "isConstant": false, "isLValue": false, "isPure": false, @@ -5818,26 +6292,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 528, + "id": 697, "name": "approvals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 508, - "src": "3348:9:4", + "referencedDeclaration": 677, + "src": "3868:9:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 530, + "id": 699, "indexExpression": { "argumentTypes": null, - "id": 529, + "id": 698, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 518, - "src": "3358:12:4", + "referencedDeclaration": 687, + "src": "3878:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5848,7 +6322,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3348:23:4", + "src": "3868:23:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5859,14 +6333,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 531, + "id": 700, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3375:1:4", + "src": "3895:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5874,14 +6348,14 @@ }, "value": "0" }, - "src": "3348:28:4", + "src": "3868:28:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", - "src": "3326:50:4" + "src": "3846:50:6" }, { "condition": { @@ -5890,7 +6364,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 539, + "id": 708, "isConstant": false, "isLValue": false, "isPure": false, @@ -5901,19 +6375,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 537, + "id": 706, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 534, + "id": 703, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 518, - "src": "3393:12:4", + "referencedDeclaration": 687, + "src": "3913:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5925,18 +6399,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 535, + "id": 704, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4036, - "src": "3409:3:4", + "referencedDeclaration": 3828, + "src": "3929:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 536, + "id": 705, "isConstant": false, "isLValue": false, "isPure": false, @@ -5944,13 +6418,13 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3409:10:4", + "src": "3929:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3393:26:4", + "src": "3913:26:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5960,59 +6434,59 @@ "operator": "||", "rightExpression": { "argumentTypes": null, - "id": 538, + "id": 707, "name": "ownerConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 527, - "src": "3423:14:4", + "referencedDeclaration": 696, + "src": "3943:14:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3393:44:4", + "src": "3913:44:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 553, + "id": 722, "nodeType": "IfStatement", - "src": "3390:203:4", + "src": "3910:203:6", "trueBody": { - "id": 552, + "id": 721, "nodeType": "Block", - "src": "3439:154:4", + "src": "3959:154:6", "statements": [ { "condition": { "argumentTypes": null, - "id": 540, + "id": 709, "name": "ownerConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 527, - "src": "3461:14:4", + "referencedDeclaration": 696, + "src": "3981:14:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 548, + "id": 717, "nodeType": "IfStatement", - "src": "3457:88:4", + "src": "3977:88:6", "trueBody": { - "id": 547, + "id": 716, "nodeType": "Block", - "src": "3477:68:4", + "src": "3997:68:6", "statements": [ { "expression": { "argumentTypes": null, - "id": 545, + "id": 714, "isConstant": false, "isLValue": false, "isPure": false, @@ -6021,26 +6495,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 541, + "id": 710, "name": "approvals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 508, - "src": "3499:9:4", + "referencedDeclaration": 677, + "src": "4019:9:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 543, + "id": 712, "indexExpression": { "argumentTypes": null, - "id": 542, + "id": 711, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 518, - "src": "3509:12:4", + "referencedDeclaration": 687, + "src": "4029:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6051,7 +6525,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3499:23:4", + "src": "4019:23:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6062,14 +6536,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 544, + "id": 713, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3525:1:4", + "src": "4045:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6077,15 +6551,15 @@ }, "value": "0" }, - "src": "3499:27:4", + "src": "4019:27:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 546, + "id": 715, "nodeType": "ExpressionStatement", - "src": "3499:27:4" + "src": "4019:27:6" } ] } @@ -6093,7 +6567,7 @@ { "expression": { "argumentTypes": null, - "id": 550, + "id": 719, "isConstant": false, "isLValue": false, "isPure": false, @@ -6101,15 +6575,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "3562:16:4", + "src": "4082:16:6", "subExpression": { "argumentTypes": null, - "id": 549, + "id": 718, "name": "confirmations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "3562:13:4", + "referencedDeclaration": 683, + "src": "4082:13:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6120,9 +6594,9 @@ "typeString": "uint256" } }, - "id": 551, + "id": 720, "nodeType": "ExpressionStatement", - "src": "3562:16:4" + "src": "4082:16:6" } ] } @@ -6130,19 +6604,19 @@ { "expression": { "argumentTypes": null, - "id": 558, + "id": 727, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 554, + "id": 723, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 518, - "src": "3606:12:4", + "referencedDeclaration": 687, + "src": "4126:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6154,26 +6628,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 555, + "id": 724, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, - "src": "3621:6:4", + "referencedDeclaration": 1194, + "src": "4141:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 557, + "id": 726, "indexExpression": { "argumentTypes": null, - "id": 556, + "id": 725, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 518, - "src": "3628:12:4", + "referencedDeclaration": 687, + "src": "4148:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6184,167 +6658,488 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3621:20:4", + "src": "4141:20:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4126:35:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 728, + "nodeType": "ExpressionStatement", + "src": "4126:35:6" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 692, + "name": "currentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 687, + "src": "3799:12:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 693, + "name": "SENTINEL_OWNERS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1190, + "src": "3815:15:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3799:31:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 730, + "nodeType": "WhileStatement", + "src": "3792:380:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 732, + "name": "confirmations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 683, + "src": "4189:13:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 733, + "name": "threshold", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1198, + "src": "4206:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4189:26:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4e6f7420656e6f75676820636f6e6669726d6174696f6e73", + "id": 735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4217:26:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b345da2aaad39251196728cc7926bed93e890843c2a47c2cdd1122427d828094", + "typeString": "literal_string \"Not enough confirmations\"" + }, + "value": "Not enough confirmations" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b345da2aaad39251196728cc7926bed93e890843c2a47c2cdd1122427d828094", + "typeString": "literal_string \"Not enough confirmations\"" + } + ], + "id": 731, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3832, + "src": "4181:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4181:63:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 737, + "nodeType": "ExpressionStatement", + "src": "4181:63:6" + } + ] + }, + "documentation": null, + "id": 739, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "checkAndClearConfirmations", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 672, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 671, + "name": "transactionHash", + "nodeType": "VariableDeclaration", + "scope": 739, + "src": "3526:23:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 670, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3526:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3525:25:6" + }, + "payable": false, + "returnParameters": { + "id": 673, + "nodeType": "ParameterList", + "parameters": [], + "src": "3572:0:6" + }, + "scope": 786, + "src": "3490:761:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 784, + "nodeType": "Block", + "src": "4745:250:6", + "statements": [ + { + "assignments": [ + 755 + ], + "declarations": [ + { + "constant": false, + "id": 755, + "name": "safeTxHash", + "nodeType": "VariableDeclaration", + "scope": 785, + "src": "4755:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 754, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4755:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 769, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 759, + "name": "SAFE_TX_TYPEHASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 546, + "src": "4810:16:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 760, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 741, + "src": "4828:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 761, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 743, + "src": "4832:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 763, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 745, + "src": "4849:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 762, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3822, + "src": "4839:9:6", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4839:15:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 765, + "name": "operation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 747, + "src": "4856:9:6", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + } + }, + { + "argumentTypes": null, + "id": 766, + "name": "nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 749, + "src": "4867:5:6", + "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_$29", + "typeString": "enum Enum.Operation" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 757, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3815, + "src": "4799:3:6", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_magic_abi", + "typeString": "abi" } }, - "src": "3606:35:4", + "id": 758, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4799:10:6", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" } }, - "id": 559, - "nodeType": "ExpressionStatement", - "src": "3606:35:4" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 525, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 523, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 518, - "src": "3279:12:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 524, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2490, - "src": "3295:15:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3279:31:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 561, - "nodeType": "WhileStatement", - "src": "3272:380:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 565, + "id": 767, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 563, - "name": "confirmations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "3669:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 564, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2498, - "src": "3686:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3669:26:4", + "names": [], + "nodeType": "FunctionCall", + "src": "4799:74:6", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" } - }, - { - "argumentTypes": null, - "hexValue": "4e6f7420656e6f75676820636f6e6669726d6174696f6e73", - "id": 566, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3697:26:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b345da2aaad39251196728cc7926bed93e890843c2a47c2cdd1122427d828094", - "typeString": "literal_string \"Not enough confirmations\"" - }, - "value": "Not enough confirmations" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b345da2aaad39251196728cc7926bed93e890843c2a47c2cdd1122427d828094", - "typeString": "literal_string \"Not enough confirmations\"" + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" } ], - "id": 562, - "name": "require", + "id": 756, + "name": "keccak256", "nodeType": "Identifier", - "overloadedDeclarations": [ - 4039, - 4040 - ], - "referencedDeclaration": 4040, - "src": "3661:7:4", + "overloadedDeclarations": [], + "referencedDeclaration": 3822, + "src": "4776:9:6", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" } }, - "id": 567, + "id": 768, "isConstant": false, "isLValue": false, "isPure": false, @@ -6352,78 +7147,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3661:63:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 568, - "nodeType": "ExpressionStatement", - "src": "3661:63:4" - } - ] - }, - "documentation": null, - "id": 570, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "checkAndClearConfirmations", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 503, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 502, - "name": "transactionHash", - "nodeType": "VariableDeclaration", - "scope": 570, - "src": "3006:23:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 501, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3006:7:4", + "src": "4776:107:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, - "visibility": "internal" - } - ], - "src": "3005:25:4" - }, - "payable": false, - "returnParameters": { - "id": 504, - "nodeType": "ParameterList", - "parameters": [], - "src": "3052:0:4" - }, - "scope": 605, - "src": "2970:761:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 603, - "nodeType": "Block", - "src": "4225:113:4", - "statements": [ + "nodeType": "VariableDeclarationStatement", + "src": "4755:128:6" + }, { "expression": { "argumentTypes": null, @@ -6437,14 +7169,14 @@ { "argumentTypes": null, "hexValue": "30783139", - "id": 589, + "id": 774, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4274:4:4", + "src": "4945:4:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_25_by_1", @@ -6460,20 +7192,20 @@ "typeString": "int_const 25" } ], - "id": 588, + "id": 773, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4269:4:4", + "src": "4940:4:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": "byte" }, - "id": 590, + "id": 775, "isConstant": false, "isLValue": false, "isPure": true, @@ -6481,7 +7213,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4269:10:4", + "src": "4940:10:6", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -6492,44 +7224,44 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "30", - "id": 592, + "hexValue": "31", + "id": 777, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4286:1:4", + "src": "4957:1:6", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" }, - "value": "0" + "value": "1" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" } ], - "id": 591, + "id": 776, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4281:4:4", + "src": "4952:4:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": "byte" }, - "id": 593, + "id": 778, "isConstant": false, "isLValue": false, "isPure": true, @@ -6537,7 +7269,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4281:7:4", + "src": "4952:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -6545,80 +7277,28 @@ }, { "argumentTypes": null, - "id": 594, + "id": 779, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4073, - "src": "4290:4:4", + "referencedDeclaration": 3869, + "src": "4961:4:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_GnosisSafeTeamEdition_$605", + "typeIdentifier": "t_contract$_GnosisSafeTeamEdition_$786", "typeString": "contract GnosisSafeTeamEdition" } }, { "argumentTypes": null, - "id": 595, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 572, - "src": "4296:2:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 596, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 574, - "src": "4300:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 597, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 576, - "src": "4307:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 598, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 578, - "src": "4313:9:4", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 599, - "name": "nonce", + "id": 780, + "name": "safeTxHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "4324:5:4", + "referencedDeclaration": 755, + "src": "4967:10:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } } ], @@ -6633,44 +7313,28 @@ "typeString": "bytes1" }, { - "typeIdentifier": "t_contract$_GnosisSafeTeamEdition_$605", + "typeIdentifier": "t_contract$_GnosisSafeTeamEdition_$786", "typeString": "contract GnosisSafeTeamEdition" }, { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } ], "expression": { "argumentTypes": null, - "id": 586, + "id": 771, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4023, - "src": "4252:3:4", + "referencedDeclaration": 3815, + "src": "4923:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 587, + "id": 772, "isConstant": false, "isLValue": false, "isPure": true, @@ -6678,13 +7342,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4252:16:4", + "src": "4923:16:6", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 600, + "id": 781, "isConstant": false, "isLValue": false, "isPure": false, @@ -6692,7 +7356,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4252:78:4", + "src": "4923:55:6", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -6706,18 +7370,18 @@ "typeString": "bytes memory" } ], - "id": 585, + "id": 770, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4030, - "src": "4242:9:4", + "referencedDeclaration": 3822, + "src": "4900:9:6", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 601, + "id": 782, "isConstant": false, "isLValue": false, "isPure": false, @@ -6725,21 +7389,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4242:89:4", + "src": "4900:88:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 584, - "id": 602, + "functionReturnParameters": 753, + "id": 783, "nodeType": "Return", - "src": "4235:96:4" + "src": "4893:95:6" } ] }, "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": 604, + "id": 785, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -6747,16 +7411,16 @@ "name": "getTransactionHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 581, + "id": 750, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 572, + "id": 741, "name": "to", "nodeType": "VariableDeclaration", - "scope": 604, - "src": "4046:10:4", + "scope": 785, + "src": "4566:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6764,10 +7428,10 @@ "typeString": "address" }, "typeName": { - "id": 571, + "id": 740, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4046:7:4", + "src": "4566:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6778,11 +7442,11 @@ }, { "constant": false, - "id": 574, + "id": 743, "name": "value", "nodeType": "VariableDeclaration", - "scope": 604, - "src": "4067:13:4", + "scope": 785, + "src": "4587:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6790,10 +7454,10 @@ "typeString": "uint256" }, "typeName": { - "id": 573, + "id": 742, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4067:7:4", + "src": "4587:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6804,11 +7468,11 @@ }, { "constant": false, - "id": 576, + "id": 745, "name": "data", "nodeType": "VariableDeclaration", - "scope": 604, - "src": "4091:10:4", + "scope": 785, + "src": "4611:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6816,10 +7480,10 @@ "typeString": "bytes" }, "typeName": { - "id": 575, + "id": 744, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "4091:5:4", + "src": "4611:5:6", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -6830,11 +7494,11 @@ }, { "constant": false, - "id": 578, + "id": 747, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 604, - "src": "4112:24:4", + "scope": 785, + "src": "4632:24:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6843,11 +7507,11 @@ }, "typeName": { "contractScope": null, - "id": 577, + "id": 746, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 29, - "src": "4112:14:4", + "src": "4632:14:6", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" @@ -6858,11 +7522,11 @@ }, { "constant": false, - "id": 580, + "id": 749, "name": "nonce", "nodeType": "VariableDeclaration", - "scope": 604, - "src": "4147:13:4", + "scope": 785, + "src": "4667:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6870,10 +7534,10 @@ "typeString": "uint256" }, "typeName": { - "id": 579, + "id": 748, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4147:7:4", + "src": "4667:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6883,20 +7547,20 @@ "visibility": "internal" } ], - "src": "4036:130:4" + "src": "4556:130:6" }, "payable": false, "returnParameters": { - "id": 584, + "id": 753, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 583, + "id": 752, "name": "", "nodeType": "VariableDeclaration", - "scope": 604, - "src": "4212:7:4", + "scope": 785, + "src": "4732:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6904,10 +7568,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 582, + "id": 751, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4212:7:4", + "src": "4732:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6917,20 +7581,20 @@ "visibility": "internal" } ], - "src": "4211:9:4" + "src": "4731:9:6" }, - "scope": 605, - "src": "4009:329:4", + "scope": 786, + "src": "4529:466:6", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 606, - "src": "272:4068:4" + "scope": 787, + "src": "272:4725:6" } ], - "src": "0:4341:4" + "src": "0:4998:6" }, "compiler": { "name": "solc", @@ -6940,28 +7604,16 @@ "4": { "events": {}, "links": {}, - "address": "0x302d18608065ff4920d868690ed33156883c503e", - "transactionHash": "0xfc9db9588365ec18aaf1a6cc78a164a7cfcf7386272e273098ac307d8a92bbbc" - }, - "1530013596495": { - "events": {}, - "links": {}, - "address": "0x148118e4ddffe5df4b451451d55be4530bfc9d3e", - "transactionHash": "0xb8ed579291e3ccad4c5beb93c32744d0cca11907f5a0c90cabb6d8ff84bb2031" - }, - "1530525742205": { - "events": {}, - "links": {}, - "address": "0x70b94da9b269ca9c1580e7fb069fa465c3a88e0e", - "transactionHash": "0x7b929dca2948e3f48a96ca43d31a392f30f8ba4f51a778436c9df26006682054" + "address": "0xf8033d26d591c4656feb365972f359e3e5991417", + "transactionHash": "0xce05657997caa928720038b6b1b4847da5f547fb64aac7316f723321748170c1" }, - "1530611935189": { + "1534750848541": { "events": {}, "links": {}, - "address": "0x47fdfa601a5df4e99ac374b05baeb36dd1fca288", - "transactionHash": "0x7b929dca2948e3f48a96ca43d31a392f30f8ba4f51a778436c9df26006682054" + "address": "0x21a59654176f2689d12e828b77a783072cd26680", + "transactionHash": "0x8153582a7e15403e4a646684cb3a67b1987a9d29bc4780fedc649a3d4a9b8ad7" } }, "schemaVersion": "2.0.0", - "updatedAt": "2018-07-03T09:59:18.543Z" + "updatedAt": "2018-08-20T07:50:29.706Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/MasterCopy.json b/safe-contracts/build/contracts/MasterCopy.json index 99d5b2fc08..ed79e8474a 100644 --- a/safe-contracts/build/contracts/MasterCopy.json +++ b/safe-contracts/build/contracts/MasterCopy.json @@ -18,38 +18,38 @@ ], "bytecode": "0x608060405234801561001057600080fd5b50610276806100206000396000f300608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680637de7edef14610046575b600080fd5b34801561005257600080fd5b50610087600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610089565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610152576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a72305820243ca7a44eb0464a47c14309cc3a29e407df6e966674981a787df22c0d9280220029", "deployedBytecode": "0x608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680637de7edef14610046575b600080fd5b34801561005257600080fd5b50610087600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610089565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610152576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a72305820243ca7a44eb0464a47c14309cc3a29e407df6e966674981a787df22c0d9280220029", - "sourceMap": "203:673:5:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;203:673:5;;;;;;;", - "deployedSourceMap": "203:673:5:-;;;;;;;;;;;;;;;;;;;;;;;;626:248;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:5;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o", + "sourceMap": "203:673:7:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;203:673:7;;;;;;;", + "deployedSourceMap": "203:673:7:-;;;;;;;;;;;;;;;;;;;;;;;;626:248;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:7;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/MasterCopy.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol", "exportedSymbols": { "MasterCopy": [ - 632 + 813 ] }, - "id": 633, + "id": 814, "nodeType": "SourceUnit", "nodes": [ { - "id": 607, + "id": 788, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:5" + "src": "0:23:7" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SelfAuthorized.sol", "file": "./SelfAuthorized.sol", - "id": 608, + "id": 789, "nodeType": "ImportDirective", - "scope": 633, - "sourceUnit": 3066, - "src": "24:30:5", + "scope": 814, + "sourceUnit": 1766, + "src": "24:30:7", "symbolAliases": [], "unitAlias": "" }, @@ -59,42 +59,42 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 609, + "id": 790, "name": "SelfAuthorized", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3065, - "src": "226:14:5", + "referencedDeclaration": 1765, + "src": "226:14:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$3065", + "typeIdentifier": "t_contract$_SelfAuthorized_$1765", "typeString": "contract SelfAuthorized" } }, - "id": 610, + "id": 791, "nodeType": "InheritanceSpecifier", - "src": "226:14:5" + "src": "226:14:7" } ], "contractDependencies": [ - 3065 + 1765 ], "contractKind": "contract", "documentation": "@title MasterCopy - Base for master copy contracts (should always be first super contract)\n @author Richard Meissner - ", "fullyImplemented": true, - "id": 632, + "id": 813, "linearizedBaseContracts": [ - 632, - 3065 + 813, + 1765 ], "name": "MasterCopy", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 612, + "id": 793, "name": "masterCopy", "nodeType": "VariableDeclaration", - "scope": 632, - "src": "465:18:5", + "scope": 813, + "src": "465:18:7", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -102,10 +102,10 @@ "typeString": "address" }, "typeName": { - "id": 611, + "id": 792, "name": "address", "nodeType": "ElementaryTypeName", - "src": "465:7:5", + "src": "465:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -116,9 +116,9 @@ }, { "body": { - "id": 630, + "id": 811, "nodeType": "Block", - "src": "711:163:5", + "src": "711:163:7", "statements": [ { "expression": { @@ -130,19 +130,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 622, + "id": 803, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 620, + "id": 801, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 614, - "src": "776:11:5", + "referencedDeclaration": 795, + "src": "776:11:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -153,14 +153,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 621, + "id": 802, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "791:1:5", + "src": "791:1:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -168,7 +168,7 @@ }, "value": "0" }, - "src": "776:16:5", + "src": "776:16:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -177,14 +177,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206d617374657220636f707920616464726573732070726f7669646564", - "id": 623, + "id": 804, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "794:38:5", + "src": "794:38:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_108d84599042957b954e89d43b52f80be89321dfc114a37800028eba58dafc87", @@ -204,21 +204,21 @@ "typeString": "literal_string \"Invalid master copy address provided\"" } ], - "id": 619, + "id": 800, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, - "src": "768:7:5", + "referencedDeclaration": 3832, + "src": "768:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 624, + "id": 805, "isConstant": false, "isLValue": false, "isPure": false, @@ -226,32 +226,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "768:65:5", + "src": "768:65:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 625, + "id": 806, "nodeType": "ExpressionStatement", - "src": "768:65:5" + "src": "768:65:7" }, { "expression": { "argumentTypes": null, - "id": 628, + "id": 809, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 626, + "id": 807, "name": "masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 612, - "src": "843:10:5", + "referencedDeclaration": 793, + "src": "843:10:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -261,68 +261,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 627, + "id": 808, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 614, - "src": "856:11:5", + "referencedDeclaration": 795, + "src": "856:11:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "843:24:5", + "src": "843:24:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 629, + "id": 810, "nodeType": "ExpressionStatement", - "src": "843:24:5" + "src": "843:24:7" } ] }, "documentation": "@dev Allows to upgrade the contract. This can only be done via a Safe transaction.\n @param _masterCopy New contract address.", - "id": 631, + "id": 812, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 617, + "id": 798, "modifierName": { "argumentTypes": null, - "id": 616, + "id": 797, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3064, - "src": "696:10:5", + "referencedDeclaration": 1764, + "src": "696:10:7", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "696:10:5" + "src": "696:10:7" } ], "name": "changeMasterCopy", "nodeType": "FunctionDefinition", "parameters": { - "id": 615, + "id": 796, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 614, + "id": 795, "name": "_masterCopy", "nodeType": "VariableDeclaration", - "scope": 631, - "src": "652:19:5", + "scope": 812, + "src": "652:19:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -330,10 +330,10 @@ "typeString": "address" }, "typeName": { - "id": 613, + "id": 794, "name": "address", "nodeType": "ElementaryTypeName", - "src": "652:7:5", + "src": "652:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -343,56 +343,56 @@ "visibility": "internal" } ], - "src": "651:21:5" + "src": "651:21:7" }, "payable": false, "returnParameters": { - "id": 618, + "id": 799, "nodeType": "ParameterList", "parameters": [], - "src": "711:0:5" + "src": "711:0:7" }, - "scope": 632, - "src": "626:248:5", + "scope": 813, + "src": "626:248:7", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 633, - "src": "203:673:5" + "scope": 814, + "src": "203:673:7" } ], - "src": "0:877:5" + "src": "0:877:7" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol", "exportedSymbols": { "MasterCopy": [ - 632 + 813 ] }, - "id": 633, + "id": 814, "nodeType": "SourceUnit", "nodes": [ { - "id": 607, + "id": 788, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:5" + "src": "0:23:7" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SelfAuthorized.sol", "file": "./SelfAuthorized.sol", - "id": 608, + "id": 789, "nodeType": "ImportDirective", - "scope": 633, - "sourceUnit": 3066, - "src": "24:30:5", + "scope": 814, + "sourceUnit": 1766, + "src": "24:30:7", "symbolAliases": [], "unitAlias": "" }, @@ -402,42 +402,42 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 609, + "id": 790, "name": "SelfAuthorized", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3065, - "src": "226:14:5", + "referencedDeclaration": 1765, + "src": "226:14:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$3065", + "typeIdentifier": "t_contract$_SelfAuthorized_$1765", "typeString": "contract SelfAuthorized" } }, - "id": 610, + "id": 791, "nodeType": "InheritanceSpecifier", - "src": "226:14:5" + "src": "226:14:7" } ], "contractDependencies": [ - 3065 + 1765 ], "contractKind": "contract", "documentation": "@title MasterCopy - Base for master copy contracts (should always be first super contract)\n @author Richard Meissner - ", "fullyImplemented": true, - "id": 632, + "id": 813, "linearizedBaseContracts": [ - 632, - 3065 + 813, + 1765 ], "name": "MasterCopy", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 612, + "id": 793, "name": "masterCopy", "nodeType": "VariableDeclaration", - "scope": 632, - "src": "465:18:5", + "scope": 813, + "src": "465:18:7", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -445,10 +445,10 @@ "typeString": "address" }, "typeName": { - "id": 611, + "id": 792, "name": "address", "nodeType": "ElementaryTypeName", - "src": "465:7:5", + "src": "465:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -459,9 +459,9 @@ }, { "body": { - "id": 630, + "id": 811, "nodeType": "Block", - "src": "711:163:5", + "src": "711:163:7", "statements": [ { "expression": { @@ -473,19 +473,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 622, + "id": 803, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 620, + "id": 801, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 614, - "src": "776:11:5", + "referencedDeclaration": 795, + "src": "776:11:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -496,14 +496,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 621, + "id": 802, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "791:1:5", + "src": "791:1:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -511,7 +511,7 @@ }, "value": "0" }, - "src": "776:16:5", + "src": "776:16:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -520,14 +520,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206d617374657220636f707920616464726573732070726f7669646564", - "id": 623, + "id": 804, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "794:38:5", + "src": "794:38:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_108d84599042957b954e89d43b52f80be89321dfc114a37800028eba58dafc87", @@ -547,21 +547,21 @@ "typeString": "literal_string \"Invalid master copy address provided\"" } ], - "id": 619, + "id": 800, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, - "src": "768:7:5", + "referencedDeclaration": 3832, + "src": "768:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 624, + "id": 805, "isConstant": false, "isLValue": false, "isPure": false, @@ -569,32 +569,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "768:65:5", + "src": "768:65:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 625, + "id": 806, "nodeType": "ExpressionStatement", - "src": "768:65:5" + "src": "768:65:7" }, { "expression": { "argumentTypes": null, - "id": 628, + "id": 809, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 626, + "id": 807, "name": "masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 612, - "src": "843:10:5", + "referencedDeclaration": 793, + "src": "843:10:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -604,68 +604,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 627, + "id": 808, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 614, - "src": "856:11:5", + "referencedDeclaration": 795, + "src": "856:11:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "843:24:5", + "src": "843:24:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 629, + "id": 810, "nodeType": "ExpressionStatement", - "src": "843:24:5" + "src": "843:24:7" } ] }, "documentation": "@dev Allows to upgrade the contract. This can only be done via a Safe transaction.\n @param _masterCopy New contract address.", - "id": 631, + "id": 812, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 617, + "id": 798, "modifierName": { "argumentTypes": null, - "id": 616, + "id": 797, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3064, - "src": "696:10:5", + "referencedDeclaration": 1764, + "src": "696:10:7", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "696:10:5" + "src": "696:10:7" } ], "name": "changeMasterCopy", "nodeType": "FunctionDefinition", "parameters": { - "id": 615, + "id": 796, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 614, + "id": 795, "name": "_masterCopy", "nodeType": "VariableDeclaration", - "scope": 631, - "src": "652:19:5", + "scope": 812, + "src": "652:19:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -673,10 +673,10 @@ "typeString": "address" }, "typeName": { - "id": 613, + "id": 794, "name": "address", "nodeType": "ElementaryTypeName", - "src": "652:7:5", + "src": "652:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -686,27 +686,27 @@ "visibility": "internal" } ], - "src": "651:21:5" + "src": "651:21:7" }, "payable": false, "returnParameters": { - "id": 618, + "id": 799, "nodeType": "ParameterList", "parameters": [], - "src": "711:0:5" + "src": "711:0:7" }, - "scope": 632, - "src": "626:248:5", + "scope": 813, + "src": "626:248:7", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 633, - "src": "203:673:5" + "scope": 814, + "src": "203:673:7" } ], - "src": "0:877:5" + "src": "0:877:7" }, "compiler": { "name": "solc", @@ -714,5 +714,5 @@ }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-06-29T09:01:22.057Z" + "updatedAt": "2018-08-20T07:44:41.087Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/Migrations.json b/safe-contracts/build/contracts/Migrations.json index 78a6b2734a..8d638b930c 100644 --- a/safe-contracts/build/contracts/Migrations.json +++ b/safe-contracts/build/contracts/Migrations.json @@ -66,22 +66,22 @@ ], "bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506102f8806100606000396000f300608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f01014610067578063445df0ac146100aa5780638da5cb5b146100d5578063fdacd5761461012c575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610159565b005b3480156100b657600080fd5b506100bf610241565b6040518082815260200191505060405180910390f35b3480156100e157600080fd5b506100ea610247565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013857600080fd5b506101576004803603810190808035906020019092919050505061026c565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561023d578190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561022457600080fd5b505af1158015610238573d6000803e3d6000fd5b505050505b5050565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102c957806001819055505b505600a165627a7a72305820395a1faf61b0f17e3924c1d3e3b1152739b523adb57dd5b79bb0bea6897a5ff70029", "deployedBytecode": "0x608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f01014610067578063445df0ac146100aa5780638da5cb5b146100d5578063fdacd5761461012c575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610159565b005b3480156100b657600080fd5b506100bf610241565b6040518082815260200191505060405180910390f35b3480156100e157600080fd5b506100ea610247565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013857600080fd5b506101576004803603810190808035906020019092919050505061026c565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561023d578190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561022457600080fd5b505af1158015610238573d6000803e3d6000fd5b505050505b5050565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102c957806001819055505b505600a165627a7a72305820395a1faf61b0f17e3924c1d3e3b1152739b523adb57dd5b79bb0bea6897a5ff70029", - "sourceMap": "25:572:7:-;;;191:68;8:9:-1;5:2;;;30:1;27;20:12;5:2;191:68:7;242:10;234:5;;:18;;;;;;;;;;;;;;;;;;25:572;;;;;;", - "deployedSourceMap": "25:572:7:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;400:195;;8:9:-1;5:2;;;30:1;27;20:12;5:2;400:195:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;77:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;77:36:7;;;;;;;;;;;;;;;;;;;;;;;51:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;51:20:7;;;;;;;;;;;;;;;;;;;;;;;;;;;265:129;;8:9:-1;5:2;;;30:1;27;20:12;5:2;265:129:7;;;;;;;;;;;;;;;;;;;;;;;;;;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:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;541:47:7;;;;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", + "sourceMap": "25:572:8:-;;;191:68;8:9:-1;5:2;;;30:1;27;20:12;5:2;191:68:8;242:10;234:5;;:18;;;;;;;;;;;;;;;;;;25:572;;;;;;", + "deployedSourceMap": "25:572:8:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;400:195;;8:9:-1;5:2;;;30:1;27;20:12;5:2;400:195:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;77:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;77:36:8;;;;;;;;;;;;;;;;;;;;;;;51:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;51:20:8;;;;;;;;;;;;;;;;;;;;;;;;;;;265:129;;8:9:-1;5:2;;;30:1;27;20:12;5:2;265:129:8;;;;;;;;;;;;;;;;;;;;;;;;;;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:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;541:47:8;;;;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": [ - 1818 + 870 ] }, - "id": 1819, + "id": 871, "nodeType": "SourceUnit", "nodes": [ { - "id": 1763, + "id": 815, "literals": [ "solidity", "^", @@ -89,7 +89,7 @@ ".4" ], "nodeType": "PragmaDirective", - "src": "0:23:7" + "src": "0:23:8" }, { "baseContracts": [], @@ -97,20 +97,20 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1818, + "id": 870, "linearizedBaseContracts": [ - 1818 + 870 ], "name": "Migrations", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 1765, + "id": 817, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1818, - "src": "51:20:7", + "scope": 870, + "src": "51:20:8", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -118,10 +118,10 @@ "typeString": "address" }, "typeName": { - "id": 1764, + "id": 816, "name": "address", "nodeType": "ElementaryTypeName", - "src": "51:7:7", + "src": "51:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -132,11 +132,11 @@ }, { "constant": false, - "id": 1767, + "id": 819, "name": "last_completed_migration", "nodeType": "VariableDeclaration", - "scope": 1818, - "src": "77:36:7", + "scope": 870, + "src": "77:36:8", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -144,10 +144,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1766, + "id": 818, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "77:4:7", + "src": "77:4:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -158,9 +158,9 @@ }, { "body": { - "id": 1775, + "id": 827, "nodeType": "Block", - "src": "142:43:7", + "src": "142:43:8", "statements": [ { "condition": { @@ -169,7 +169,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1772, + "id": 824, "isConstant": false, "isLValue": false, "isPure": false, @@ -178,18 +178,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1769, + "id": 821, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4036, - "src": "156:3:7", + "referencedDeclaration": 3828, + "src": "156:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1770, + "id": 822, "isConstant": false, "isLValue": false, "isPure": false, @@ -197,7 +197,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "156:10:7", + "src": "156:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -207,70 +207,70 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 1771, + "id": 823, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1765, - "src": "170:5:7", + "referencedDeclaration": 817, + "src": "170:5:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "156:19:7", + "src": "156:19:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 1774, + "id": 826, "nodeType": "IfStatement", - "src": "152:26:7", + "src": "152:26:8", "trueBody": { - "id": 1773, + "id": 825, "nodeType": "PlaceholderStatement", - "src": "177:1:7" + "src": "177:1:8" } } ] }, "documentation": null, - "id": 1776, + "id": 828, "name": "restricted", "nodeType": "ModifierDefinition", "parameters": { - "id": 1768, + "id": 820, "nodeType": "ParameterList", "parameters": [], - "src": "139:2:7" + "src": "139:2:8" }, - "src": "120:65:7", + "src": "120:65:8", "visibility": "internal" }, { "body": { - "id": 1784, + "id": 836, "nodeType": "Block", - "src": "224:35:7", + "src": "224:35:8", "statements": [ { "expression": { "argumentTypes": null, - "id": 1782, + "id": 834, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1779, + "id": 831, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1765, - "src": "234:5:7", + "referencedDeclaration": 817, + "src": "234:5:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -282,18 +282,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1780, + "id": 832, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4036, - "src": "242:3:7", + "referencedDeclaration": 3828, + "src": "242:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1781, + "id": 833, "isConstant": false, "isLValue": false, "isPure": false, @@ -301,26 +301,26 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "242:10:7", + "src": "242:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "234:18:7", + "src": "234:18:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1783, + "id": 835, "nodeType": "ExpressionStatement", - "src": "234:18:7" + "src": "234:18:8" } ] }, "documentation": null, - "id": 1785, + "id": 837, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -328,46 +328,46 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 1777, + "id": 829, "nodeType": "ParameterList", "parameters": [], - "src": "202:2:7" + "src": "202:2:8" }, "payable": false, "returnParameters": { - "id": 1778, + "id": 830, "nodeType": "ParameterList", "parameters": [], - "src": "224:0:7" + "src": "224:0:8" }, - "scope": 1818, - "src": "191:68:7", + "scope": 870, + "src": "191:68:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1796, + "id": 848, "nodeType": "Block", - "src": "341:53:7", + "src": "341:53:8", "statements": [ { "expression": { "argumentTypes": null, - "id": 1794, + "id": 846, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1792, + "id": 844, "name": "last_completed_migration", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1767, - "src": "351:24:7", + "referencedDeclaration": 819, + "src": "351:24:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -377,68 +377,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1793, + "id": 845, "name": "completed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1787, - "src": "378:9:7", + "referencedDeclaration": 839, + "src": "378:9:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "351:36:7", + "src": "351:36:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1795, + "id": 847, "nodeType": "ExpressionStatement", - "src": "351:36:7" + "src": "351:36:8" } ] }, "documentation": null, - "id": 1797, + "id": 849, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1790, + "id": 842, "modifierName": { "argumentTypes": null, - "id": 1789, + "id": 841, "name": "restricted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1776, - "src": "326:10:7", + "referencedDeclaration": 828, + "src": "326:10:8", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "326:10:7" + "src": "326:10:8" } ], "name": "setCompleted", "nodeType": "FunctionDefinition", "parameters": { - "id": 1788, + "id": 840, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1787, + "id": 839, "name": "completed", "nodeType": "VariableDeclaration", - "scope": 1797, - "src": "287:14:7", + "scope": 849, + "src": "287:14:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -446,10 +446,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1786, + "id": 838, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "287:4:7", + "src": "287:4:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -459,54 +459,54 @@ "visibility": "internal" } ], - "src": "286:16:7" + "src": "286:16:8" }, "payable": false, "returnParameters": { - "id": 1791, + "id": 843, "nodeType": "ParameterList", "parameters": [], - "src": "341:0:7" + "src": "341:0:8" }, - "scope": 1818, - "src": "265:129:7", + "scope": 870, + "src": "265:129:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1816, + "id": 868, "nodeType": "Block", - "src": "476:119:7", + "src": "476:119:8", "statements": [ { "assignments": [ - 1805 + 857 ], "declarations": [ { "constant": false, - "id": 1805, + "id": 857, "name": "upgraded", "nodeType": "VariableDeclaration", - "scope": 1817, - "src": "486:19:7", + "scope": 869, + "src": "486:19:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$1818", + "typeIdentifier": "t_contract$_Migrations_$870", "typeString": "contract Migrations" }, "typeName": { "contractScope": null, - "id": 1804, + "id": 856, "name": "Migrations", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1818, - "src": "486:10:7", + "referencedDeclaration": 870, + "src": "486:10:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$1818", + "typeIdentifier": "t_contract$_Migrations_$870", "typeString": "contract Migrations" } }, @@ -514,18 +514,18 @@ "visibility": "internal" } ], - "id": 1809, + "id": 861, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1807, + "id": 859, "name": "new_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1799, - "src": "519:11:7", + "referencedDeclaration": 851, + "src": "519:11:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -539,18 +539,18 @@ "typeString": "address" } ], - "id": 1806, + "id": 858, "name": "Migrations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1818, - "src": "508:10:7", + "referencedDeclaration": 870, + "src": "508:10:8", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Migrations_$1818_$", + "typeIdentifier": "t_type$_t_contract$_Migrations_$870_$", "typeString": "type(contract Migrations)" } }, - "id": 1808, + "id": 860, "isConstant": false, "isLValue": false, "isPure": false, @@ -558,14 +558,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "508:23:7", + "src": "508:23:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$1818", + "typeIdentifier": "t_contract$_Migrations_$870", "typeString": "contract Migrations" } }, "nodeType": "VariableDeclarationStatement", - "src": "486:45:7" + "src": "486:45:8" }, { "expression": { @@ -573,12 +573,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1813, + "id": 865, "name": "last_completed_migration", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1767, - "src": "563:24:7", + "referencedDeclaration": 819, + "src": "563:24:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -594,32 +594,32 @@ ], "expression": { "argumentTypes": null, - "id": 1810, + "id": 862, "name": "upgraded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1805, - "src": "541:8:7", + "referencedDeclaration": 857, + "src": "541:8:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$1818", + "typeIdentifier": "t_contract$_Migrations_$870", "typeString": "contract Migrations" } }, - "id": 1812, + "id": 864, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "setCompleted", "nodeType": "MemberAccess", - "referencedDeclaration": 1797, - "src": "541:21:7", + "referencedDeclaration": 849, + "src": "541:21:8", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256) external" } }, - "id": 1814, + "id": 866, "isConstant": false, "isLValue": false, "isPure": false, @@ -627,57 +627,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "541:47:7", + "src": "541:47:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1815, + "id": 867, "nodeType": "ExpressionStatement", - "src": "541:47:7" + "src": "541:47:8" } ] }, "documentation": null, - "id": 1817, + "id": 869, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1802, + "id": 854, "modifierName": { "argumentTypes": null, - "id": 1801, + "id": 853, "name": "restricted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1776, - "src": "461:10:7", + "referencedDeclaration": 828, + "src": "461:10:8", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "461:10:7" + "src": "461:10:8" } ], "name": "upgrade", "nodeType": "FunctionDefinition", "parameters": { - "id": 1800, + "id": 852, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1799, + "id": 851, "name": "new_address", "nodeType": "VariableDeclaration", - "scope": 1817, - "src": "417:19:7", + "scope": 869, + "src": "417:19:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -685,10 +685,10 @@ "typeString": "address" }, "typeName": { - "id": 1798, + "id": 850, "name": "address", "nodeType": "ElementaryTypeName", - "src": "417:7:7", + "src": "417:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -698,40 +698,40 @@ "visibility": "internal" } ], - "src": "416:21:7" + "src": "416:21:8" }, "payable": false, "returnParameters": { - "id": 1803, + "id": 855, "nodeType": "ParameterList", "parameters": [], - "src": "476:0:7" + "src": "476:0:8" }, - "scope": 1818, - "src": "400:195:7", + "scope": 870, + "src": "400:195:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1819, - "src": "25:572:7" + "scope": 871, + "src": "25:572:8" } ], - "src": "0:598:7" + "src": "0:598:8" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Migrations.sol", "exportedSymbols": { "Migrations": [ - 1818 + 870 ] }, - "id": 1819, + "id": 871, "nodeType": "SourceUnit", "nodes": [ { - "id": 1763, + "id": 815, "literals": [ "solidity", "^", @@ -739,7 +739,7 @@ ".4" ], "nodeType": "PragmaDirective", - "src": "0:23:7" + "src": "0:23:8" }, { "baseContracts": [], @@ -747,20 +747,20 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1818, + "id": 870, "linearizedBaseContracts": [ - 1818 + 870 ], "name": "Migrations", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 1765, + "id": 817, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1818, - "src": "51:20:7", + "scope": 870, + "src": "51:20:8", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -768,10 +768,10 @@ "typeString": "address" }, "typeName": { - "id": 1764, + "id": 816, "name": "address", "nodeType": "ElementaryTypeName", - "src": "51:7:7", + "src": "51:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -782,11 +782,11 @@ }, { "constant": false, - "id": 1767, + "id": 819, "name": "last_completed_migration", "nodeType": "VariableDeclaration", - "scope": 1818, - "src": "77:36:7", + "scope": 870, + "src": "77:36:8", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -794,10 +794,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1766, + "id": 818, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "77:4:7", + "src": "77:4:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -808,9 +808,9 @@ }, { "body": { - "id": 1775, + "id": 827, "nodeType": "Block", - "src": "142:43:7", + "src": "142:43:8", "statements": [ { "condition": { @@ -819,7 +819,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1772, + "id": 824, "isConstant": false, "isLValue": false, "isPure": false, @@ -828,18 +828,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1769, + "id": 821, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4036, - "src": "156:3:7", + "referencedDeclaration": 3828, + "src": "156:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1770, + "id": 822, "isConstant": false, "isLValue": false, "isPure": false, @@ -847,7 +847,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "156:10:7", + "src": "156:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -857,70 +857,70 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 1771, + "id": 823, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1765, - "src": "170:5:7", + "referencedDeclaration": 817, + "src": "170:5:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "156:19:7", + "src": "156:19:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 1774, + "id": 826, "nodeType": "IfStatement", - "src": "152:26:7", + "src": "152:26:8", "trueBody": { - "id": 1773, + "id": 825, "nodeType": "PlaceholderStatement", - "src": "177:1:7" + "src": "177:1:8" } } ] }, "documentation": null, - "id": 1776, + "id": 828, "name": "restricted", "nodeType": "ModifierDefinition", "parameters": { - "id": 1768, + "id": 820, "nodeType": "ParameterList", "parameters": [], - "src": "139:2:7" + "src": "139:2:8" }, - "src": "120:65:7", + "src": "120:65:8", "visibility": "internal" }, { "body": { - "id": 1784, + "id": 836, "nodeType": "Block", - "src": "224:35:7", + "src": "224:35:8", "statements": [ { "expression": { "argumentTypes": null, - "id": 1782, + "id": 834, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1779, + "id": 831, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1765, - "src": "234:5:7", + "referencedDeclaration": 817, + "src": "234:5:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -932,18 +932,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1780, + "id": 832, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4036, - "src": "242:3:7", + "referencedDeclaration": 3828, + "src": "242:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1781, + "id": 833, "isConstant": false, "isLValue": false, "isPure": false, @@ -951,26 +951,26 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "242:10:7", + "src": "242:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "234:18:7", + "src": "234:18:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1783, + "id": 835, "nodeType": "ExpressionStatement", - "src": "234:18:7" + "src": "234:18:8" } ] }, "documentation": null, - "id": 1785, + "id": 837, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -978,46 +978,46 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 1777, + "id": 829, "nodeType": "ParameterList", "parameters": [], - "src": "202:2:7" + "src": "202:2:8" }, "payable": false, "returnParameters": { - "id": 1778, + "id": 830, "nodeType": "ParameterList", "parameters": [], - "src": "224:0:7" + "src": "224:0:8" }, - "scope": 1818, - "src": "191:68:7", + "scope": 870, + "src": "191:68:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1796, + "id": 848, "nodeType": "Block", - "src": "341:53:7", + "src": "341:53:8", "statements": [ { "expression": { "argumentTypes": null, - "id": 1794, + "id": 846, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1792, + "id": 844, "name": "last_completed_migration", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1767, - "src": "351:24:7", + "referencedDeclaration": 819, + "src": "351:24:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1027,68 +1027,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1793, + "id": 845, "name": "completed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1787, - "src": "378:9:7", + "referencedDeclaration": 839, + "src": "378:9:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "351:36:7", + "src": "351:36:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1795, + "id": 847, "nodeType": "ExpressionStatement", - "src": "351:36:7" + "src": "351:36:8" } ] }, "documentation": null, - "id": 1797, + "id": 849, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1790, + "id": 842, "modifierName": { "argumentTypes": null, - "id": 1789, + "id": 841, "name": "restricted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1776, - "src": "326:10:7", + "referencedDeclaration": 828, + "src": "326:10:8", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "326:10:7" + "src": "326:10:8" } ], "name": "setCompleted", "nodeType": "FunctionDefinition", "parameters": { - "id": 1788, + "id": 840, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1787, + "id": 839, "name": "completed", "nodeType": "VariableDeclaration", - "scope": 1797, - "src": "287:14:7", + "scope": 849, + "src": "287:14:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1096,10 +1096,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1786, + "id": 838, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "287:4:7", + "src": "287:4:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1109,54 +1109,54 @@ "visibility": "internal" } ], - "src": "286:16:7" + "src": "286:16:8" }, "payable": false, "returnParameters": { - "id": 1791, + "id": 843, "nodeType": "ParameterList", "parameters": [], - "src": "341:0:7" + "src": "341:0:8" }, - "scope": 1818, - "src": "265:129:7", + "scope": 870, + "src": "265:129:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1816, + "id": 868, "nodeType": "Block", - "src": "476:119:7", + "src": "476:119:8", "statements": [ { "assignments": [ - 1805 + 857 ], "declarations": [ { "constant": false, - "id": 1805, + "id": 857, "name": "upgraded", "nodeType": "VariableDeclaration", - "scope": 1817, - "src": "486:19:7", + "scope": 869, + "src": "486:19:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$1818", + "typeIdentifier": "t_contract$_Migrations_$870", "typeString": "contract Migrations" }, "typeName": { "contractScope": null, - "id": 1804, + "id": 856, "name": "Migrations", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1818, - "src": "486:10:7", + "referencedDeclaration": 870, + "src": "486:10:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$1818", + "typeIdentifier": "t_contract$_Migrations_$870", "typeString": "contract Migrations" } }, @@ -1164,18 +1164,18 @@ "visibility": "internal" } ], - "id": 1809, + "id": 861, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1807, + "id": 859, "name": "new_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1799, - "src": "519:11:7", + "referencedDeclaration": 851, + "src": "519:11:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1189,18 +1189,18 @@ "typeString": "address" } ], - "id": 1806, + "id": 858, "name": "Migrations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1818, - "src": "508:10:7", + "referencedDeclaration": 870, + "src": "508:10:8", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Migrations_$1818_$", + "typeIdentifier": "t_type$_t_contract$_Migrations_$870_$", "typeString": "type(contract Migrations)" } }, - "id": 1808, + "id": 860, "isConstant": false, "isLValue": false, "isPure": false, @@ -1208,14 +1208,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "508:23:7", + "src": "508:23:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$1818", + "typeIdentifier": "t_contract$_Migrations_$870", "typeString": "contract Migrations" } }, "nodeType": "VariableDeclarationStatement", - "src": "486:45:7" + "src": "486:45:8" }, { "expression": { @@ -1223,12 +1223,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1813, + "id": 865, "name": "last_completed_migration", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1767, - "src": "563:24:7", + "referencedDeclaration": 819, + "src": "563:24:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1244,32 +1244,32 @@ ], "expression": { "argumentTypes": null, - "id": 1810, + "id": 862, "name": "upgraded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1805, - "src": "541:8:7", + "referencedDeclaration": 857, + "src": "541:8:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$1818", + "typeIdentifier": "t_contract$_Migrations_$870", "typeString": "contract Migrations" } }, - "id": 1812, + "id": 864, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "setCompleted", "nodeType": "MemberAccess", - "referencedDeclaration": 1797, - "src": "541:21:7", + "referencedDeclaration": 849, + "src": "541:21:8", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256) external" } }, - "id": 1814, + "id": 866, "isConstant": false, "isLValue": false, "isPure": false, @@ -1277,57 +1277,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "541:47:7", + "src": "541:47:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1815, + "id": 867, "nodeType": "ExpressionStatement", - "src": "541:47:7" + "src": "541:47:8" } ] }, "documentation": null, - "id": 1817, + "id": 869, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1802, + "id": 854, "modifierName": { "argumentTypes": null, - "id": 1801, + "id": 853, "name": "restricted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1776, - "src": "461:10:7", + "referencedDeclaration": 828, + "src": "461:10:8", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "461:10:7" + "src": "461:10:8" } ], "name": "upgrade", "nodeType": "FunctionDefinition", "parameters": { - "id": 1800, + "id": 852, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1799, + "id": 851, "name": "new_address", "nodeType": "VariableDeclaration", - "scope": 1817, - "src": "417:19:7", + "scope": 869, + "src": "417:19:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1335,10 +1335,10 @@ "typeString": "address" }, "typeName": { - "id": 1798, + "id": 850, "name": "address", "nodeType": "ElementaryTypeName", - "src": "417:7:7", + "src": "417:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1348,27 +1348,27 @@ "visibility": "internal" } ], - "src": "416:21:7" + "src": "416:21:8" }, "payable": false, "returnParameters": { - "id": 1803, + "id": 855, "nodeType": "ParameterList", "parameters": [], - "src": "476:0:7" + "src": "476:0:8" }, - "scope": 1818, - "src": "400:195:7", + "scope": 870, + "src": "400:195:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1819, - "src": "25:572:7" + "scope": 871, + "src": "25:572:8" } ], - "src": "0:598:7" + "src": "0:598:8" }, "compiler": { "name": "solc", @@ -1378,28 +1378,16 @@ "4": { "events": {}, "links": {}, - "address": "0x41bfe82423b23d9614c7f1e47d23ab0896ca133c", - "transactionHash": "0xd781fb709a95e639590e52d8a2995b4e91856fc367a74a3fd44ac37de4ea2f24" + "address": "0x37be2d5e08fe065db40d65f118fd1874eaaae57f", + "transactionHash": "0x03ed45a8edb5a146521947bd462ad15bbf99be0119adaaa3a4a466c08ddd9e28" }, - "1530013596495": { + "1534750848541": { "events": {}, "links": {}, - "address": "0x85e77316223883c077f5e71767e1681b4bc0deb6", - "transactionHash": "0x451bf5d2511f1070b76e11bc9e2d074f885d950124eece67f6ac30d98b2cf558" - }, - "1530525742205": { - "events": {}, - "links": {}, - "address": "0xaf6dba5fd3a2132778f8597a9cfd55d561ed6bfb", - "transactionHash": "0xb6a19a7a679a1474c09c651e4151421f210afa3f47effed019d4c0206144ee5f" - }, - "1530611935189": { - "events": {}, - "links": {}, - "address": "0x70b6c3a4bc8da13c036845ac1f49f13aed8a33c3", - "transactionHash": "0xb6a19a7a679a1474c09c651e4151421f210afa3f47effed019d4c0206144ee5f" + "address": "0xa94b7f0465e98609391c623d0560c5720a3f2d33", + "transactionHash": "0x8177f4d6b8b339feba809d5036efcce4a93cf97c36cc43648a263a037ef2c79a" } }, "schemaVersion": "2.0.0", - "updatedAt": "2018-07-03T09:59:18.520Z" + "updatedAt": "2018-08-20T07:50:29.681Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/Module.json b/safe-contracts/build/contracts/Module.json index 7ba6909079..f46f23c976 100644 --- a/safe-contracts/build/contracts/Module.json +++ b/safe-contracts/build/contracts/Module.json @@ -30,51 +30,51 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50610320806100206000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063481c6a75146100515780637de7edef146100a8575b600080fd5b34801561005d57600080fd5b506100666100eb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100b457600080fd5b506100e9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610111565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156101fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156102b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a723058209951147672cfe41d050b6272c4cb5ea71158398cc1e2f233091154979218fedc0029", - "deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063481c6a75146100515780637de7edef146100a8575b600080fd5b34801561005d57600080fd5b506100666100eb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100b457600080fd5b506100e9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610111565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156101fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156102b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a723058209951147672cfe41d050b6272c4cb5ea71158398cc1e2f233091154979218fedc0029", - "sourceMap": "225:511:8:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;225:511:8;;;;;;;", - "deployedSourceMap": "225:511:8:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;262:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;262:28:8;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;262:28:8;;;;;;;;;;;;;:::o;626:248:5:-;359:7:8;;;;;;;;;;;337:30;;:10;:30;;;329:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:5;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o", + "bytecode": "0x608060405234801561001057600080fd5b50610320806100206000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063481c6a75146100515780637de7edef146100a8575b600080fd5b34801561005d57600080fd5b506100666100eb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100b457600080fd5b506100e9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610111565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156101fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156102b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a72305820c4cbbb4804cafb192f924790c7620a73fe469c6cf97df4b72000fce648e4f9020029", + "deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063481c6a75146100515780637de7edef146100a8575b600080fd5b34801561005d57600080fd5b506100666100eb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100b457600080fd5b506100e9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610111565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156101fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156102b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a72305820c4cbbb4804cafb192f924790c7620a73fe469c6cf97df4b72000fce648e4f9020029", + "sourceMap": "225:511:9:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;225:511:9;;;;;;;", + "deployedSourceMap": "225:511:9:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;262:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;262:28:9;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;262:28:9;;;;;;;;;;;;;:::o;626:248:7:-;359:7:9;;;;;;;;;;;337:30;;:10;:30;;;329:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:7;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o", "source": "pragma solidity 0.4.24;\nimport \"./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/Module.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", "exportedSymbols": { "Module": [ - 1861 + 913 ] }, - "id": 1862, + "id": 914, "nodeType": "SourceUnit", "nodes": [ { - "id": 1820, + "id": 872, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:8" + "src": "0:23:9" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol", "file": "./MasterCopy.sol", - "id": 1821, + "id": 873, "nodeType": "ImportDirective", - "scope": 1862, - "sourceUnit": 633, - "src": "24:26:8", + "scope": 914, + "sourceUnit": 814, + "src": "24:26:9", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", "file": "./ModuleManager.sol", - "id": 1822, + "id": 874, "nodeType": "ImportDirective", - "scope": 1862, - "sourceUnit": 2233, - "src": "51:29:8", + "scope": 914, + "sourceUnit": 1181, + "src": "51:29:9", "symbolAliases": [], "unitAlias": "" }, @@ -84,59 +84,59 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1823, + "id": 875, "name": "MasterCopy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 632, - "src": "244:10:8", + "referencedDeclaration": 813, + "src": "244:10:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_MasterCopy_$632", + "typeIdentifier": "t_contract$_MasterCopy_$813", "typeString": "contract MasterCopy" } }, - "id": 1824, + "id": 876, "nodeType": "InheritanceSpecifier", - "src": "244:10:8" + "src": "244:10:9" } ], "contractDependencies": [ - 632, - 3065 + 813, + 1765 ], "contractKind": "contract", "documentation": "@title Module - Base class for modules.\n @author Stefan George - \n @author Richard Meissner - ", "fullyImplemented": true, - "id": 1861, + "id": 913, "linearizedBaseContracts": [ - 1861, - 632, - 3065 + 913, + 813, + 1765 ], "name": "Module", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 1826, + "id": 878, "name": "manager", "nodeType": "VariableDeclaration", - "scope": 1861, - "src": "262:28:8", + "scope": 913, + "src": "262:28:9", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" }, "typeName": { "contractScope": null, - "id": 1825, + "id": 877, "name": "ModuleManager", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2232, - "src": "262:13:8", + "referencedDeclaration": 1180, + "src": "262:13:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } }, @@ -145,9 +145,9 @@ }, { "body": { - "id": 1839, + "id": 891, "nodeType": "Block", - "src": "319:109:8", + "src": "319:109:9", "statements": [ { "expression": { @@ -159,7 +159,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1834, + "id": 886, "isConstant": false, "isLValue": false, "isPure": false, @@ -168,18 +168,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1829, + "id": 881, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4036, - "src": "337:3:8", + "referencedDeclaration": 3828, + "src": "337:3:9", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1830, + "id": 882, "isConstant": false, "isLValue": false, "isPure": false, @@ -187,7 +187,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "337:10:8", + "src": "337:10:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -200,14 +200,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1832, + "id": 884, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1826, - "src": "359:7:8", + "referencedDeclaration": 878, + "src": "359:7:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } } @@ -215,24 +215,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } ], - "id": 1831, + "id": 883, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "351:7:8", + "src": "351:7:9", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1833, + "id": 885, "isConstant": false, "isLValue": false, "isPure": false, @@ -240,13 +240,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "351:16:8", + "src": "351:16:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "337:30:8", + "src": "337:30:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -255,14 +255,14 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d616e61676572", - "id": 1835, + "id": 887, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "369:40:8", + "src": "369:40:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_f857f17fb7e241a141cb689ce417fc402008e9655fbe55c721e32587b5d510de", @@ -282,21 +282,21 @@ "typeString": "literal_string \"Method can only be called from manager\"" } ], - "id": 1828, + "id": 880, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, - "src": "329:7:8", + "referencedDeclaration": 3832, + "src": "329:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1836, + "id": 888, "isConstant": false, "isLValue": false, "isPure": false, @@ -304,41 +304,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "329:81:8", + "src": "329:81:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1837, + "id": 889, "nodeType": "ExpressionStatement", - "src": "329:81:8" + "src": "329:81:9" }, { - "id": 1838, + "id": 890, "nodeType": "PlaceholderStatement", - "src": "420:1:8" + "src": "420:1:9" } ] }, "documentation": null, - "id": 1840, + "id": 892, "name": "authorized", "nodeType": "ModifierDefinition", "parameters": { - "id": 1827, + "id": 879, "nodeType": "ParameterList", "parameters": [], - "src": "316:2:8" + "src": "316:2:9" }, - "src": "297:131:8", + "src": "297:131:9", "visibility": "internal" }, { "body": { - "id": 1859, + "id": 911, "nodeType": "Block", - "src": "477:257:8", + "src": "477:257:9", "statements": [ { "expression": { @@ -350,7 +350,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1848, + "id": 900, "isConstant": false, "isLValue": false, "isPure": false, @@ -360,14 +360,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1845, + "id": 897, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1826, - "src": "636:7:8", + "referencedDeclaration": 878, + "src": "636:7:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } } @@ -375,24 +375,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } ], - "id": 1844, + "id": 896, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "628:7:8", + "src": "628:7:9", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1846, + "id": 898, "isConstant": false, "isLValue": false, "isPure": false, @@ -400,7 +400,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "628:16:8", + "src": "628:16:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -411,14 +411,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1847, + "id": 899, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "648:1:8", + "src": "648:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -426,7 +426,7 @@ }, "value": "0" }, - "src": "628:21:8", + "src": "628:21:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -435,14 +435,14 @@ { "argumentTypes": null, "hexValue": "4d616e616765722068617320616c7265616479206265656e20736574", - "id": 1849, + "id": 901, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "651:30:8", + "src": "651:30:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_5b4e79257e154cde85ff5a3cf5bf48eb2c3921f8c031de73d371d41be013f3cc", @@ -462,21 +462,21 @@ "typeString": "literal_string \"Manager has already been set\"" } ], - "id": 1843, + "id": 895, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, - "src": "620:7:8", + "referencedDeclaration": 3832, + "src": "620:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1850, + "id": 902, "isConstant": false, "isLValue": false, "isPure": false, @@ -484,34 +484,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "620:62:8", + "src": "620:62:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1851, + "id": 903, "nodeType": "ExpressionStatement", - "src": "620:62:8" + "src": "620:62:9" }, { "expression": { "argumentTypes": null, - "id": 1857, + "id": 909, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1852, + "id": 904, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1826, - "src": "692:7:8", + "referencedDeclaration": 878, + "src": "692:7:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } }, @@ -524,18 +524,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1854, + "id": 906, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4036, - "src": "716:3:8", + "referencedDeclaration": 3828, + "src": "716:3:9", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1855, + "id": 907, "isConstant": false, "isLValue": false, "isPure": false, @@ -543,7 +543,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "716:10:8", + "src": "716:10:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -557,18 +557,18 @@ "typeString": "address" } ], - "id": 1853, + "id": 905, "name": "ModuleManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2232, - "src": "702:13:8", + "referencedDeclaration": 1180, + "src": "702:13:9", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ModuleManager_$2232_$", + "typeIdentifier": "t_type$_t_contract$_ModuleManager_$1180_$", "typeString": "type(contract ModuleManager)" } }, - "id": 1856, + "id": 908, "isConstant": false, "isLValue": false, "isPure": false, @@ -576,26 +576,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "702:25:8", + "src": "702:25:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } }, - "src": "692:35:8", + "src": "692:35:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } }, - "id": 1858, + "id": 910, "nodeType": "ExpressionStatement", - "src": "692:35:8" + "src": "692:35:9" } ] }, "documentation": null, - "id": 1860, + "id": 912, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -603,70 +603,70 @@ "name": "setManager", "nodeType": "FunctionDefinition", "parameters": { - "id": 1841, + "id": 893, "nodeType": "ParameterList", "parameters": [], - "src": "453:2:8" + "src": "453:2:9" }, "payable": false, "returnParameters": { - "id": 1842, + "id": 894, "nodeType": "ParameterList", "parameters": [], - "src": "477:0:8" + "src": "477:0:9" }, - "scope": 1861, - "src": "434:300:8", + "scope": 913, + "src": "434:300:9", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 1862, - "src": "225:511:8" + "scope": 914, + "src": "225:511:9" } ], - "src": "0:737:8" + "src": "0:737:9" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", "exportedSymbols": { "Module": [ - 1861 + 913 ] }, - "id": 1862, + "id": 914, "nodeType": "SourceUnit", "nodes": [ { - "id": 1820, + "id": 872, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:8" + "src": "0:23:9" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol", "file": "./MasterCopy.sol", - "id": 1821, + "id": 873, "nodeType": "ImportDirective", - "scope": 1862, - "sourceUnit": 633, - "src": "24:26:8", + "scope": 914, + "sourceUnit": 814, + "src": "24:26:9", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", "file": "./ModuleManager.sol", - "id": 1822, + "id": 874, "nodeType": "ImportDirective", - "scope": 1862, - "sourceUnit": 2233, - "src": "51:29:8", + "scope": 914, + "sourceUnit": 1181, + "src": "51:29:9", "symbolAliases": [], "unitAlias": "" }, @@ -676,59 +676,59 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1823, + "id": 875, "name": "MasterCopy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 632, - "src": "244:10:8", + "referencedDeclaration": 813, + "src": "244:10:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_MasterCopy_$632", + "typeIdentifier": "t_contract$_MasterCopy_$813", "typeString": "contract MasterCopy" } }, - "id": 1824, + "id": 876, "nodeType": "InheritanceSpecifier", - "src": "244:10:8" + "src": "244:10:9" } ], "contractDependencies": [ - 632, - 3065 + 813, + 1765 ], "contractKind": "contract", "documentation": "@title Module - Base class for modules.\n @author Stefan George - \n @author Richard Meissner - ", "fullyImplemented": true, - "id": 1861, + "id": 913, "linearizedBaseContracts": [ - 1861, - 632, - 3065 + 913, + 813, + 1765 ], "name": "Module", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 1826, + "id": 878, "name": "manager", "nodeType": "VariableDeclaration", - "scope": 1861, - "src": "262:28:8", + "scope": 913, + "src": "262:28:9", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" }, "typeName": { "contractScope": null, - "id": 1825, + "id": 877, "name": "ModuleManager", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2232, - "src": "262:13:8", + "referencedDeclaration": 1180, + "src": "262:13:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } }, @@ -737,9 +737,9 @@ }, { "body": { - "id": 1839, + "id": 891, "nodeType": "Block", - "src": "319:109:8", + "src": "319:109:9", "statements": [ { "expression": { @@ -751,7 +751,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1834, + "id": 886, "isConstant": false, "isLValue": false, "isPure": false, @@ -760,18 +760,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1829, + "id": 881, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4036, - "src": "337:3:8", + "referencedDeclaration": 3828, + "src": "337:3:9", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1830, + "id": 882, "isConstant": false, "isLValue": false, "isPure": false, @@ -779,7 +779,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "337:10:8", + "src": "337:10:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -792,14 +792,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1832, + "id": 884, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1826, - "src": "359:7:8", + "referencedDeclaration": 878, + "src": "359:7:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } } @@ -807,24 +807,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } ], - "id": 1831, + "id": 883, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "351:7:8", + "src": "351:7:9", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1833, + "id": 885, "isConstant": false, "isLValue": false, "isPure": false, @@ -832,13 +832,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "351:16:8", + "src": "351:16:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "337:30:8", + "src": "337:30:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -847,14 +847,14 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d616e61676572", - "id": 1835, + "id": 887, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "369:40:8", + "src": "369:40:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_f857f17fb7e241a141cb689ce417fc402008e9655fbe55c721e32587b5d510de", @@ -874,21 +874,21 @@ "typeString": "literal_string \"Method can only be called from manager\"" } ], - "id": 1828, + "id": 880, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, - "src": "329:7:8", + "referencedDeclaration": 3832, + "src": "329:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1836, + "id": 888, "isConstant": false, "isLValue": false, "isPure": false, @@ -896,41 +896,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "329:81:8", + "src": "329:81:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1837, + "id": 889, "nodeType": "ExpressionStatement", - "src": "329:81:8" + "src": "329:81:9" }, { - "id": 1838, + "id": 890, "nodeType": "PlaceholderStatement", - "src": "420:1:8" + "src": "420:1:9" } ] }, "documentation": null, - "id": 1840, + "id": 892, "name": "authorized", "nodeType": "ModifierDefinition", "parameters": { - "id": 1827, + "id": 879, "nodeType": "ParameterList", "parameters": [], - "src": "316:2:8" + "src": "316:2:9" }, - "src": "297:131:8", + "src": "297:131:9", "visibility": "internal" }, { "body": { - "id": 1859, + "id": 911, "nodeType": "Block", - "src": "477:257:8", + "src": "477:257:9", "statements": [ { "expression": { @@ -942,7 +942,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1848, + "id": 900, "isConstant": false, "isLValue": false, "isPure": false, @@ -952,14 +952,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1845, + "id": 897, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1826, - "src": "636:7:8", + "referencedDeclaration": 878, + "src": "636:7:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } } @@ -967,24 +967,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } ], - "id": 1844, + "id": 896, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "628:7:8", + "src": "628:7:9", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1846, + "id": 898, "isConstant": false, "isLValue": false, "isPure": false, @@ -992,7 +992,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "628:16:8", + "src": "628:16:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1003,14 +1003,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1847, + "id": 899, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "648:1:8", + "src": "648:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1018,7 +1018,7 @@ }, "value": "0" }, - "src": "628:21:8", + "src": "628:21:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1027,14 +1027,14 @@ { "argumentTypes": null, "hexValue": "4d616e616765722068617320616c7265616479206265656e20736574", - "id": 1849, + "id": 901, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "651:30:8", + "src": "651:30:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_5b4e79257e154cde85ff5a3cf5bf48eb2c3921f8c031de73d371d41be013f3cc", @@ -1054,21 +1054,21 @@ "typeString": "literal_string \"Manager has already been set\"" } ], - "id": 1843, + "id": 895, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, - "src": "620:7:8", + "referencedDeclaration": 3832, + "src": "620:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1850, + "id": 902, "isConstant": false, "isLValue": false, "isPure": false, @@ -1076,34 +1076,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "620:62:8", + "src": "620:62:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1851, + "id": 903, "nodeType": "ExpressionStatement", - "src": "620:62:8" + "src": "620:62:9" }, { "expression": { "argumentTypes": null, - "id": 1857, + "id": 909, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1852, + "id": 904, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1826, - "src": "692:7:8", + "referencedDeclaration": 878, + "src": "692:7:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } }, @@ -1116,18 +1116,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1854, + "id": 906, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4036, - "src": "716:3:8", + "referencedDeclaration": 3828, + "src": "716:3:9", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1855, + "id": 907, "isConstant": false, "isLValue": false, "isPure": false, @@ -1135,7 +1135,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "716:10:8", + "src": "716:10:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1149,18 +1149,18 @@ "typeString": "address" } ], - "id": 1853, + "id": 905, "name": "ModuleManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2232, - "src": "702:13:8", + "referencedDeclaration": 1180, + "src": "702:13:9", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ModuleManager_$2232_$", + "typeIdentifier": "t_type$_t_contract$_ModuleManager_$1180_$", "typeString": "type(contract ModuleManager)" } }, - "id": 1856, + "id": 908, "isConstant": false, "isLValue": false, "isPure": false, @@ -1168,26 +1168,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "702:25:8", + "src": "702:25:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } }, - "src": "692:35:8", + "src": "692:35:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } }, - "id": 1858, + "id": 910, "nodeType": "ExpressionStatement", - "src": "692:35:8" + "src": "692:35:9" } ] }, "documentation": null, - "id": 1860, + "id": 912, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1195,30 +1195,30 @@ "name": "setManager", "nodeType": "FunctionDefinition", "parameters": { - "id": 1841, + "id": 893, "nodeType": "ParameterList", "parameters": [], - "src": "453:2:8" + "src": "453:2:9" }, "payable": false, "returnParameters": { - "id": 1842, + "id": 894, "nodeType": "ParameterList", "parameters": [], - "src": "477:0:8" + "src": "477:0:9" }, - "scope": 1861, - "src": "434:300:8", + "scope": 913, + "src": "434:300:9", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 1862, - "src": "225:511:8" + "scope": 914, + "src": "225:511:9" } ], - "src": "0:737:8" + "src": "0:737:9" }, "compiler": { "name": "solc", @@ -1226,5 +1226,5 @@ }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-06-29T09:01:22.064Z" + "updatedAt": "2018-08-20T07:44:41.088Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/ModuleManager.json b/safe-contracts/build/contracts/ModuleManager.json index 1921acde45..b43f10c483 100644 --- a/safe-contracts/build/contracts/ModuleManager.json +++ b/safe-contracts/build/contracts/ModuleManager.json @@ -138,62 +138,73 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50611165806100206000396000f300608060405260043610610083576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063468721a714610085578063610b59251461013d57806385e332cd14610180578063a3f4df7e146101d7578063b2494df314610267578063e009cfde146102d3578063ffa1ad7414610336575b005b34801561009157600080fd5b50610123600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291905050506103c6565b604051808215151515815260200191505060405180910390f35b34801561014957600080fd5b5061017e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104f1565b005b34801561018c57600080fd5b506101956108cb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101e357600080fd5b506101ec6108d0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561022c578082015181840152602081019050610211565b50505050905090810190601f1680156102595780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027357600080fd5b5061027c610909565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102bf5780820151818401526020810190506102a4565b505050509050019250505060405180910390f35b3480156102df57600080fd5b50610334600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bac565b005b34801561034257600080fd5b5061034b610fc1565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561038b578082015181840152602081019050610370565b50505050905090810190601f1680156103b85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156104da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b6104e7858585855a610ffa565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156105ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415801561060e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610682576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561076e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b6040805190810160405280600e81526020017f4d6f64756c65204d616e6167657200000000000000000000000000000000000081525081565b6060600080606060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515610a1b576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050610977565b82604051908082528060200260200182016040528015610a4a5781602001602082028038833980820191505090505b50905060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515610ba357818184815181101515610af957fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050610ab4565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c75576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015610cc95750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610d3d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610e64576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000806000600281111561100a57fe5b84600281111561101657fe5b141561102f57611028878787866110f7565b91506110ed565b6001600281111561103c57fe5b84600281111561104857fe5b141561106057611059878685611110565b91506110ec565b61106985611127565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f090509190505600a165627a7a72305820f43e83d5443f40446e47e2fddd6078716f3db286865b817224b5e97c0bf020390029", - "deployedBytecode": "0x608060405260043610610083576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063468721a714610085578063610b59251461013d57806385e332cd14610180578063a3f4df7e146101d7578063b2494df314610267578063e009cfde146102d3578063ffa1ad7414610336575b005b34801561009157600080fd5b50610123600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291905050506103c6565b604051808215151515815260200191505060405180910390f35b34801561014957600080fd5b5061017e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104f1565b005b34801561018c57600080fd5b506101956108cb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101e357600080fd5b506101ec6108d0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561022c578082015181840152602081019050610211565b50505050905090810190601f1680156102595780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027357600080fd5b5061027c610909565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102bf5780820151818401526020810190506102a4565b505050509050019250505060405180910390f35b3480156102df57600080fd5b50610334600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bac565b005b34801561034257600080fd5b5061034b610fc1565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561038b578082015181840152602081019050610370565b50505050905090810190601f1680156103b85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156104da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b6104e7858585855a610ffa565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156105ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415801561060e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610682576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561076e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b6040805190810160405280600e81526020017f4d6f64756c65204d616e6167657200000000000000000000000000000000000081525081565b6060600080606060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515610a1b576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050610977565b82604051908082528060200260200182016040528015610a4a5781602001602082028038833980820191505090505b50905060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515610ba357818184815181101515610af957fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050610ab4565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c75576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015610cc95750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610d3d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610e64576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000806000600281111561100a57fe5b84600281111561101657fe5b141561102f57611028878787866110f7565b91506110ed565b6001600281111561103c57fe5b84600281111561104857fe5b141561106057611059878685611110565b91506110ec565b61106985611127565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f090509190505600a165627a7a72305820f43e83d5443f40446e47e2fddd6078716f3db286865b817224b5e97c0bf020390029", - "sourceMap": "303:5231:9:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;303:5231:9;;;;;;;", - "deployedSourceMap": "303:5231:9:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2841:429;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2841:429:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1311:459;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1311:459:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;499:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;499:55:9;;;;;;;;;;;;;;;;;;;;;;;;;;;401:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;401:46:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;401:46:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4794:738;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4794:738:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;4794:738:9;;;;;;;;;;;;;;;;;2031:474;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2031:474:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;453:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;453:40:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;453:40:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2841:429;2973:12;3081:1;3058:7;:19;3066:10;3058:19;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;3050:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3217:46;3225:2;3229:5;3236:4;3242:9;3253;3217:7;:46::i;:::-;3207:56;;2841:429;;;;;;:::o;1311:459::-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1477:1:9;1466:6;1458:20;;;;:59;;;;;550:3;1482:35;;1490:6;1482:35;;;;1458:59;1450:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1631:1;1612:7;:15;1620:6;1612:15;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;1604:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1694:7;:25;550:3;1694:25;;;;;;;;;;;;;;;;;;;;;;;;;1676:7;:15;1684:6;1676:15;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;1757:6;1729:7;:25;550:3;1729:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;1311:459;:::o;499:55::-;550:3;499:55;:::o;401:46::-;;;;;;;;;;;;;;;;;;;;:::o;4794:738::-;4861:9;4920:19;4953:21;5153:22;4942:1;4920:23;;4977:7;:25;550:3;4977:25;;;;;;;;;;;;;;;;;;;;;;;;;4953:49;;5012:132;550:3;5018:33;;:13;:33;;;;5012:132;;;5083:7;:22;5091:13;5083:22;;;;;;;;;;;;;;;;;;;;;;;;;5067:38;;5119:14;;;;;;;5012:132;;;5192:11;5178: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;5178:26:9;;;;5153:51;;5262:1;5248:15;;5289:7;:25;550:3;5289:25;;;;;;;;;;;;;;;;;;;;;;;;;5273:41;;5324:180;550:3;5330:33;;:13;:33;;;;5324:180;;;5400:13;5379:5;5385:11;5379:18;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;5443:7;:22;5451:13;5443:22;;;;;;;;;;;;;;;;;;;;;;;;;5427:38;;5479:14;;;;;;;5324:180;;;5520:5;5513:12;;4794:738;;;;:::o;2031:474::-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2245:1:9;2234:6;2226:20;;;;:59;;;;;550:3;2250:35;;2258:6;2250:35;;;;2226:59;2218:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2370:6;2339:38;;:7;:19;2347:10;2339:19;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;2331:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2454:7;:15;2462:6;2454:15;;;;;;;;;;;;;;;;;;;;;;;;;2432:7;:19;2440:10;2432:19;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2497:1;2479:7;:15;2487:6;2479:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;2031:474;;:::o;453:40::-;;;;;;;;;;;;;;;;;;;;:::o;3276:548::-;3407:12;3678:19;3452;3439:32;;;;;;;;:9;:32;;;;;;;;;3435:383;;;3495:35;3507:2;3511:5;3518:4;3524:5;3495:11;:35::i;:::-;3485:45;;3435:383;;;3562:27;3549:40;;;;;;;;:9;:40;;;;;;;;;3545:273;;;3613:36;3633:2;3637:4;3643:5;3613:19;:36::i;:::-;3603:46;;3545:273;;;3700:19;3714:4;3700:13;:19::i;:::-;3678:41;;3758:1;3743:11;:16;;;;3733:26;;3778:29;3795:11;3778:29;;;;;;;;;;;;;;;;;;;;;;3545:273;3435:383;3276:548;;;;;;;;:::o;3830:309::-;3939:12;4121:1;4118;4111:4;4105:11;4098:4;4092;4088:15;4081:5;4077:2;4070:5;4065:58;4054:69;;4040:93;;;;;;:::o;4145:303::-;4247:12;4430:1;4427;4420:4;4414:11;4407:4;4401;4397:15;4393:2;4386:5;4373:59;4362:70;;4348:94;;;;;:::o;4454:261::-;4523:19;4693:4;4687:11;4680:4;4674;4670:15;4667:1;4660:39;4645:54;;4631:78;;;:::o", - "source": "pragma solidity 0.4.24;\nimport \"./Module.sol\";\nimport \"./MasterCopy.sol\";\nimport \"./Enum.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 {\n\n event ContractCreation(address newContract);\n\n string public constant NAME = \"Module Manager\";\n string public constant VERSION = \"0.0.1\";\n address public constant SENTINEL_MODULES = address(0x1);\n\n mapping (address => address) internal modules;\n\n /// @dev Fallback function accepts Ether transactions.\n function ()\n external\n payable\n {\n\n }\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 }\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 }\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 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 /// @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", + "bytecode": "0x608060405234801561001057600080fd5b50611165806100206000396000f300608060405260043610610083576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063468721a714610085578063610b59251461013d57806385e332cd14610180578063a3f4df7e146101d7578063b2494df314610267578063e009cfde146102d3578063ffa1ad7414610336575b005b34801561009157600080fd5b50610123600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291905050506103c6565b604051808215151515815260200191505060405180910390f35b34801561014957600080fd5b5061017e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104f1565b005b34801561018c57600080fd5b506101956108cb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101e357600080fd5b506101ec6108d0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561022c578082015181840152602081019050610211565b50505050905090810190601f1680156102595780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027357600080fd5b5061027c610909565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102bf5780820151818401526020810190506102a4565b505050509050019250505060405180910390f35b3480156102df57600080fd5b50610334600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bac565b005b34801561034257600080fd5b5061034b610fc1565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561038b578082015181840152602081019050610370565b50505050905090810190601f1680156103b85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156104da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b6104e7858585855a610ffa565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156105ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415801561060e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610682576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561076e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b6040805190810160405280600e81526020017f4d6f64756c65204d616e6167657200000000000000000000000000000000000081525081565b6060600080606060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515610a1b576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050610977565b82604051908082528060200260200182016040528015610a4a5781602001602082028038833980820191505090505b50905060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515610ba357818184815181101515610af957fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050610ab4565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c75576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015610cc95750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610d3d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610e64576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000806000600281111561100a57fe5b84600281111561101657fe5b141561102f57611028878787866110f7565b91506110ed565b6001600281111561103c57fe5b84600281111561104857fe5b141561106057611059878685611110565b91506110ec565b61106985611127565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f090509190505600a165627a7a7230582063ceed54b0b46040279fde92172d5974b790ff47810554207dadb799881f93440029", + "deployedBytecode": "0x608060405260043610610083576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063468721a714610085578063610b59251461013d57806385e332cd14610180578063a3f4df7e146101d7578063b2494df314610267578063e009cfde146102d3578063ffa1ad7414610336575b005b34801561009157600080fd5b50610123600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291905050506103c6565b604051808215151515815260200191505060405180910390f35b34801561014957600080fd5b5061017e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104f1565b005b34801561018c57600080fd5b506101956108cb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101e357600080fd5b506101ec6108d0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561022c578082015181840152602081019050610211565b50505050905090810190601f1680156102595780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027357600080fd5b5061027c610909565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102bf5780820151818401526020810190506102a4565b505050509050019250505060405180910390f35b3480156102df57600080fd5b50610334600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bac565b005b34801561034257600080fd5b5061034b610fc1565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561038b578082015181840152602081019050610370565b50505050905090810190601f1680156103b85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156104da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b6104e7858585855a610ffa565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156105ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415801561060e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610682576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561076e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b6040805190810160405280600e81526020017f4d6f64756c65204d616e6167657200000000000000000000000000000000000081525081565b6060600080606060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515610a1b576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050610977565b82604051908082528060200260200182016040528015610a4a5781602001602082028038833980820191505090505b50905060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515610ba357818184815181101515610af957fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050610ab4565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c75576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015610cc95750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610d3d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610e64576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000806000600281111561100a57fe5b84600281111561101657fe5b141561102f57611028878787866110f7565b91506110ed565b6001600281111561103c57fe5b84600281111561104857fe5b141561106057611059878685611110565b91506110ec565b61106985611127565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f090509190505600a165627a7a7230582063ceed54b0b46040279fde92172d5974b790ff47810554207dadb799881f93440029", + "sourceMap": "332:3628:10:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;332:3628:10;;;;;;;", + "deployedSourceMap": "332:3628:10:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2712:429;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2712:429:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1182:459;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1182:459:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;488:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;488:55:10;;;;;;;;;;;;;;;;;;;;;;;;;;;390:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;390:46:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;390:46:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3220:738;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3220:738:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;3220:738:10;;;;;;;;;;;;;;;;;1902:474;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1902:474:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;442:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;442:40:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;442:40:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2712:429;2844:12;2952:1;2929:7;:19;2937:10;2929:19;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;2921:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3088:46;3096:2;3100:5;3107:4;3113:9;3124;3088:7;:46::i;:::-;3078:56;;2712:429;;;;;;:::o;1182:459::-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1348:1:10;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;;;;;;;;;;;;;;;;;;1182:459;:::o;488:55::-;539:3;488:55;:::o;390:46::-;;;;;;;;;;;;;;;;;;;;:::o;3220:738::-;3287:9;3346:19;3379:21;3579:22;3368:1;3346:23;;3403:7;:25;539:3;3403:25;;;;;;;;;;;;;;;;;;;;;;;;;3379:49;;3438:132;539:3;3444:33;;:13;:33;;;;3438:132;;;3509:7;:22;3517:13;3509:22;;;;;;;;;;;;;;;;;;;;;;;;;3493:38;;3545:14;;;;;;;3438:132;;;3618:11;3604: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;3604:26:10;;;;3579:51;;3688:1;3674:15;;3715:7;:25;539:3;3715:25;;;;;;;;;;;;;;;;;;;;;;;;;3699:41;;3750:180;539:3;3756:33;;:13;:33;;;;3750:180;;;3826:13;3805:5;3811:11;3805:18;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;3869:7;:22;3877:13;3869:22;;;;;;;;;;;;;;;;;;;;;;;;;3853:38;;3905:14;;;;;;;3750:180;;;3946:5;3939:12;;3220:738;;;;:::o;1902:474::-;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2116:1:10;2105:6;2097:20;;;;:59;;;;;539:3;2121:35;;2129:6;2121:35;;;;2097:59;2089:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2241:6;2210:38;;:7;:19;2218:10;2210:19;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;2202:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2325:7;:15;2333:6;2325:15;;;;;;;;;;;;;;;;;;;;;;;;;2303:7;:19;2311:10;2303:19;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2368:1;2350:7;:15;2358:6;2350:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;1902:474;;:::o;442:40::-;;;;;;;;;;;;;;;;;;;;:::o;390:548:3:-;521:12;792:19;566;553:32;;;;;;;;:9;:32;;;;;;;;;549:383;;;609:35;621:2;625:5;632:4;638:5;609:11;:35::i;:::-;599:45;;549:383;;;676:27;663:40;;;;;;;;:9;:40;;;;;;;;;659:273;;;727:36;747:2;751:4;757:5;727:19;:36::i;:::-;717:46;;659:273;;;814:19;828:4;814:13;:19::i;:::-;792:41;;872:1;857:11;:16;;;;847:26;;892:29;909:11;892:29;;;;;;;;;;;;;;;;;;;;;;659:273;549:383;390:548;;;;;;;;:::o;944:309::-;1053:12;1235:1;1232;1225:4;1219:11;1212:4;1206;1202:15;1195:5;1191:2;1184:5;1179:58;1168:69;;1154:93;;;;;;:::o;1259:303::-;1361:12;1544:1;1541;1534:4;1528:11;1521:4;1515;1511:15;1507:2;1500:5;1487:59;1476:70;;1462:94;;;;;:::o;1568:261::-;1637:19;1807:4;1801:11;1794:4;1788;1784:15;1781:1;1774:39;1759:54;;1745:78;;;:::o", + "source": "pragma solidity 0.4.24;\nimport \"./Enum.sol\";\nimport \"./Executor.sol\";\nimport \"./Module.sol\";\nimport \"./SelfAuthorized.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 string public constant NAME = \"Module Manager\";\n string public constant VERSION = \"0.0.1\";\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 }\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 }\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/ModuleManager.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", "exportedSymbols": { "ModuleManager": [ - 2232 + 1180 ] }, - "id": 2233, + "id": 1181, "nodeType": "SourceUnit", "nodes": [ { - "id": 1863, + "id": 915, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:9" + "src": "0:23:10" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", - "file": "./Module.sol", - "id": 1864, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", + "file": "./Enum.sol", + "id": 916, "nodeType": "ImportDirective", - "scope": 2233, - "sourceUnit": 1862, - "src": "24:22:9", + "scope": 1181, + "sourceUnit": 31, + "src": "24:20:10", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol", - "file": "./MasterCopy.sol", - "id": 1865, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Executor.sol", + "file": "./Executor.sol", + "id": 917, "nodeType": "ImportDirective", - "scope": 2233, - "sourceUnit": 633, - "src": "47:26:9", + "scope": 1181, + "sourceUnit": 154, + "src": "45:24:10", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", - "file": "./Enum.sol", - "id": 1866, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", + "file": "./Module.sol", + "id": 918, "nodeType": "ImportDirective", - "scope": 2233, - "sourceUnit": 31, - "src": "74:20:9", + "scope": 1181, + "sourceUnit": 914, + "src": "70:22:10", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SelfAuthorized.sol", + "file": "./SelfAuthorized.sol", + "id": 919, + "nodeType": "ImportDirective", + "scope": 1181, + "sourceUnit": 1766, + "src": "93:30:10", "symbolAliases": [], "unitAlias": "" }, @@ -203,84 +214,64 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1867, + "id": 920, "name": "SelfAuthorized", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3065, - "src": "329:14:9", + "referencedDeclaration": 1765, + "src": "358:14:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$3065", + "typeIdentifier": "t_contract$_SelfAuthorized_$1765", "typeString": "contract SelfAuthorized" } }, - "id": 1868, + "id": 921, + "nodeType": "InheritanceSpecifier", + "src": "358:14:10" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 922, + "name": "Executor", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 153, + "src": "374:8:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Executor_$153", + "typeString": "contract Executor" + } + }, + "id": 923, "nodeType": "InheritanceSpecifier", - "src": "329:14:9" + "src": "374:8:10" } ], "contractDependencies": [ - 3065 + 153, + 37, + 1765 ], "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": 2232, + "id": 1180, "linearizedBaseContracts": [ - 2232, - 3065 + 1180, + 153, + 37, + 1765 ], "name": "ModuleManager", "nodeType": "ContractDefinition", "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 1872, - "name": "ContractCreation", - "nodeType": "EventDefinition", - "parameters": { - "id": 1871, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1870, - "indexed": false, - "name": "newContract", - "nodeType": "VariableDeclaration", - "scope": 1872, - "src": "374:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1869, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "374:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "373:21:9" - }, - "src": "351:44:9" - }, { "constant": true, - "id": 1875, + "id": 926, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 2232, - "src": "401:46:9", + "scope": 1180, + "src": "390:46:10", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -288,10 +279,10 @@ "typeString": "string" }, "typeName": { - "id": 1873, + "id": 924, "name": "string", "nodeType": "ElementaryTypeName", - "src": "401:6:9", + "src": "390:6:10", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -300,14 +291,14 @@ "value": { "argumentTypes": null, "hexValue": "4d6f64756c65204d616e61676572", - "id": 1874, + "id": 925, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "431:16:9", + "src": "420:16:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_12aaa44a1bae367a1e1d9881f5d80283afded6373c2a1ca586db420944084efb", @@ -319,11 +310,11 @@ }, { "constant": true, - "id": 1878, + "id": 929, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 2232, - "src": "453:40:9", + "scope": 1180, + "src": "442:40:10", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -331,10 +322,10 @@ "typeString": "string" }, "typeName": { - "id": 1876, + "id": 927, "name": "string", "nodeType": "ElementaryTypeName", - "src": "453:6:9", + "src": "442:6:10", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -343,14 +334,14 @@ "value": { "argumentTypes": null, "hexValue": "302e302e31", - "id": 1877, + "id": 928, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "486:7:9", + "src": "475:7:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", @@ -362,11 +353,11 @@ }, { "constant": true, - "id": 1883, + "id": 934, "name": "SENTINEL_MODULES", "nodeType": "VariableDeclaration", - "scope": 2232, - "src": "499:55:9", + "scope": 1180, + "src": "488:55:10", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -374,10 +365,10 @@ "typeString": "address" }, "typeName": { - "id": 1879, + "id": 930, "name": "address", "nodeType": "ElementaryTypeName", - "src": "499:7:9", + "src": "488:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -389,14 +380,14 @@ { "argumentTypes": null, "hexValue": "307831", - "id": 1881, + "id": 932, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "550:3:9", + "src": "539:3:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -412,20 +403,20 @@ "typeString": "int_const 1" } ], - "id": 1880, + "id": 931, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "542:7:9", + "src": "531:7:10", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1882, + "id": 933, "isConstant": false, "isLValue": false, "isPure": true, @@ -433,7 +424,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "542:12:9", + "src": "531:12:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -443,11 +434,11 @@ }, { "constant": false, - "id": 1887, + "id": 938, "name": "modules", "nodeType": "VariableDeclaration", - "scope": 2232, - "src": "561:45:9", + "scope": 1180, + "src": "550:45:10", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -455,28 +446,28 @@ "typeString": "mapping(address => address)" }, "typeName": { - "id": 1886, + "id": 937, "keyType": { - "id": 1884, + "id": 935, "name": "address", "nodeType": "ElementaryTypeName", - "src": "570:7:9", + "src": "559:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "561:28:9", + "src": "550:28:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" }, "valueType": { - "id": 1885, + "id": 936, "name": "address", "nodeType": "ElementaryTypeName", - "src": "581:7:9", + "src": "570:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -488,43 +479,9 @@ }, { "body": { - "id": 1890, - "nodeType": "Block", - "src": "721:8:9", - "statements": [] - }, - "documentation": "@dev Fallback function accepts Ether transactions.", - "id": 1891, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1888, - "nodeType": "ParameterList", - "parameters": [], - "src": "681:2:9" - }, - "payable": true, - "returnParameters": { - "id": 1889, - "nodeType": "ParameterList", - "parameters": [], - "src": "721:0:9" - }, - "scope": 2232, - "src": "672:57:9", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1927, + "id": 974, "nodeType": "Block", - "src": "802:342:9", + "src": "673:342:10", "statements": [ { "expression": { @@ -536,7 +493,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1903, + "id": 950, "isConstant": false, "isLValue": false, "isPure": false, @@ -545,26 +502,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1899, + "id": 946, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1887, - "src": "820:7:9", + "referencedDeclaration": 938, + "src": "691:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1901, + "id": 948, "indexExpression": { "argumentTypes": null, - "id": 1900, + "id": 947, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1883, - "src": "828:16:9", + "referencedDeclaration": 934, + "src": "699:16:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -575,7 +532,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "820:25:9", + "src": "691:25:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -586,14 +543,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1902, + "id": 949, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "849:1:9", + "src": "720:1:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -601,7 +558,7 @@ }, "value": "0" }, - "src": "820:30:9", + "src": "691:30:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -610,14 +567,14 @@ { "argumentTypes": null, "hexValue": "4d6f64756c6573206861766520616c7265616479206265656e20696e697469616c697a6564", - "id": 1904, + "id": 951, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "852:39:9", + "src": "723:39:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_1e0428ffa69bff65645154a36d5017c238f946ddaf89430d30eec813f30bdd77", @@ -637,21 +594,21 @@ "typeString": "literal_string \"Modules have already been initialized\"" } ], - "id": 1898, + "id": 945, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, - "src": "812:7:9", + "referencedDeclaration": 3832, + "src": "683:7:10", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1905, + "id": 952, "isConstant": false, "isLValue": false, "isPure": false, @@ -659,20 +616,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "812:80:9", + "src": "683:80:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1906, + "id": 953, "nodeType": "ExpressionStatement", - "src": "812:80:9" + "src": "683:80:10" }, { "expression": { "argumentTypes": null, - "id": 1911, + "id": 958, "isConstant": false, "isLValue": false, "isPure": false, @@ -681,26 +638,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1907, + "id": 954, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1887, - "src": "902:7:9", + "referencedDeclaration": 938, + "src": "773:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1909, + "id": 956, "indexExpression": { "argumentTypes": null, - "id": 1908, + "id": 955, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1883, - "src": "910:16:9", + "referencedDeclaration": 934, + "src": "781:16:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -711,7 +668,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "902:25:9", + "src": "773:25:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -721,26 +678,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1910, + "id": 957, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1883, - "src": "930:16:9", + "referencedDeclaration": 934, + "src": "801:16:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "902:44:9", + "src": "773:44:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1912, + "id": 959, "nodeType": "ExpressionStatement", - "src": "902:44:9" + "src": "773:44:10" }, { "condition": { @@ -749,19 +706,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1915, + "id": 962, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1913, + "id": 960, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1893, - "src": "960:2:9", + "referencedDeclaration": 940, + "src": "831:2:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -772,14 +729,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1914, + "id": 961, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "966:1:9", + "src": "837:1:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -787,16 +744,16 @@ }, "value": "0" }, - "src": "960:7:9", + "src": "831:7:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 1926, + "id": 973, "nodeType": "IfStatement", - "src": "956:181:9", + "src": "827:181:10", "trueBody": { "expression": { "argumentTypes": null, @@ -806,12 +763,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1918, + "id": 965, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1893, - "src": "1081:2:9", + "referencedDeclaration": 940, + "src": "952:2:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -819,12 +776,12 @@ }, { "argumentTypes": null, - "id": 1919, + "id": 966, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1895, - "src": "1085:4:9", + "referencedDeclaration": 942, + "src": "956:4:10", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -835,18 +792,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1920, + "id": 967, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4029, - "src": "1091:7:9", + "referencedDeclaration": 3821, + "src": "962:7:10", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 1921, + "id": 968, "isConstant": false, "isLValue": false, "isPure": false, @@ -854,7 +811,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1091:9:9", + "src": "962:9:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -876,18 +833,18 @@ "typeString": "uint256" } ], - "id": 1917, + "id": 964, "name": "executeDelegateCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2149, - "src": "1061:19:9", + "referencedDeclaration": 143, + "src": "932:19:10", "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": 1922, + "id": 969, "isConstant": false, "isLValue": false, "isPure": false, @@ -895,7 +852,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1061:40:9", + "src": "932:40:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -904,14 +861,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e", - "id": 1923, + "id": 970, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1103:33:9", + "src": "974:33:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_7913a3f9168bf3e458e3f42eb08db5c4b33f44228d345660887090b75e24c6aa", @@ -931,21 +888,21 @@ "typeString": "literal_string \"Could not finish initialization\"" } ], - "id": 1916, + "id": 963, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, - "src": "1053:7:9", + "referencedDeclaration": 3832, + "src": "924:7:10", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1924, + "id": 971, "isConstant": false, "isLValue": false, "isPure": false, @@ -953,21 +910,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1053:84:9", + "src": "924:84:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1925, + "id": 972, "nodeType": "ExpressionStatement", - "src": "1053:84:9" + "src": "924:84:10" } } ] }, "documentation": null, - "id": 1928, + "id": 975, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -975,16 +932,16 @@ "name": "setupModules", "nodeType": "FunctionDefinition", "parameters": { - "id": 1896, + "id": 943, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1893, + "id": 940, "name": "to", "nodeType": "VariableDeclaration", - "scope": 1928, - "src": "757:10:9", + "scope": 975, + "src": "628:10:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -992,10 +949,10 @@ "typeString": "address" }, "typeName": { - "id": 1892, + "id": 939, "name": "address", "nodeType": "ElementaryTypeName", - "src": "757:7:9", + "src": "628:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1006,11 +963,11 @@ }, { "constant": false, - "id": 1895, + "id": 942, "name": "data", "nodeType": "VariableDeclaration", - "scope": 1928, - "src": "769:10:9", + "scope": 975, + "src": "640:10:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1018,10 +975,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1894, + "id": 941, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "769:5:9", + "src": "640:5:10", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1031,26 +988,26 @@ "visibility": "internal" } ], - "src": "756:24:9" + "src": "627:24:10" }, "payable": false, "returnParameters": { - "id": 1897, + "id": 944, "nodeType": "ParameterList", "parameters": [], - "src": "802:0:9" + "src": "673:0:10" }, - "scope": 2232, - "src": "735:409:9", + "scope": 1180, + "src": "606:409:10", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1973, + "id": 1020, "nodeType": "Block", - "src": "1386:384:9", + "src": "1257:384:10", "statements": [ { "expression": { @@ -1062,7 +1019,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1946, + "id": 993, "isConstant": false, "isLValue": false, "isPure": false, @@ -1073,7 +1030,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1940, + "id": 987, "isConstant": false, "isLValue": false, "isPure": false, @@ -1083,14 +1040,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1937, + "id": 984, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1930, - "src": "1466:6:9", + "referencedDeclaration": 977, + "src": "1337:6:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" } } @@ -1098,24 +1055,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" } ], - "id": 1936, + "id": 983, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1458:7:9", + "src": "1329:7:10", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1938, + "id": 985, "isConstant": false, "isLValue": false, "isPure": false, @@ -1123,7 +1080,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1458:15:9", + "src": "1329:15:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1134,14 +1091,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1939, + "id": 986, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1477:1:9", + "src": "1348:1:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1149,7 +1106,7 @@ }, "value": "0" }, - "src": "1458:20:9", + "src": "1329:20:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1163,7 +1120,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1945, + "id": 992, "isConstant": false, "isLValue": false, "isPure": false, @@ -1173,14 +1130,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1942, + "id": 989, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1930, - "src": "1490:6:9", + "referencedDeclaration": 977, + "src": "1361:6:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" } } @@ -1188,24 +1145,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" } ], - "id": 1941, + "id": 988, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1482:7:9", + "src": "1353:7:10", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1943, + "id": 990, "isConstant": false, "isLValue": false, "isPure": false, @@ -1213,7 +1170,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1482:15:9", + "src": "1353:15:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1223,24 +1180,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1944, + "id": 991, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1883, - "src": "1501:16:9", + "referencedDeclaration": 934, + "src": "1372:16:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1482:35:9", + "src": "1353:35:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "1458:59:9", + "src": "1329:59:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1249,14 +1206,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206d6f64756c6520616464726573732070726f7669646564", - "id": 1947, + "id": 994, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1519:33:9", + "src": "1390:33:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00", @@ -1276,21 +1233,21 @@ "typeString": "literal_string \"Invalid module address provided\"" } ], - "id": 1935, + "id": 982, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, - "src": "1450:7:9", + "referencedDeclaration": 3832, + "src": "1321:7:10", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1948, + "id": 995, "isConstant": false, "isLValue": false, "isPure": false, @@ -1298,15 +1255,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1450:103:9", + "src": "1321:103:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1949, + "id": 996, "nodeType": "ExpressionStatement", - "src": "1450:103:9" + "src": "1321:103:10" }, { "expression": { @@ -1318,7 +1275,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1955, + "id": 1002, "isConstant": false, "isLValue": false, "isPure": false, @@ -1327,28 +1284,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1951, + "id": 998, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1887, - "src": "1612:7:9", + "referencedDeclaration": 938, + "src": "1483:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1953, + "id": 1000, "indexExpression": { "argumentTypes": null, - "id": 1952, + "id": 999, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1930, - "src": "1620:6:9", + "referencedDeclaration": 977, + "src": "1491:6:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" } }, @@ -1357,7 +1314,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1612:15:9", + "src": "1483:15:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1368,14 +1325,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1954, + "id": 1001, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1631:1:9", + "src": "1502:1:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1383,7 +1340,7 @@ }, "value": "0" }, - "src": "1612:20:9", + "src": "1483:20:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1392,14 +1349,14 @@ { "argumentTypes": null, "hexValue": "4d6f64756c652068617320616c7265616479206265656e206164646564", - "id": 1956, + "id": 1003, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1634:31:9", + "src": "1505:31:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ae2b4ea52eaf6de3fb2d8a64b7555be2dfd285b837a62821bf24e7dc6f329450", @@ -1419,21 +1376,21 @@ "typeString": "literal_string \"Module has already been added\"" } ], - "id": 1950, + "id": 997, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, - "src": "1604:7:9", + "referencedDeclaration": 3832, + "src": "1475:7:10", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1957, + "id": 1004, "isConstant": false, "isLValue": false, "isPure": false, @@ -1441,20 +1398,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1604:62:9", + "src": "1475:62:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1958, + "id": 1005, "nodeType": "ExpressionStatement", - "src": "1604:62:9" + "src": "1475:62:10" }, { "expression": { "argumentTypes": null, - "id": 1965, + "id": 1012, "isConstant": false, "isLValue": false, "isPure": false, @@ -1463,28 +1420,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1959, + "id": 1006, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1887, - "src": "1676:7:9", + "referencedDeclaration": 938, + "src": "1547:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1961, + "id": 1008, "indexExpression": { "argumentTypes": null, - "id": 1960, + "id": 1007, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1930, - "src": "1684:6:9", + "referencedDeclaration": 977, + "src": "1555:6:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" } }, @@ -1493,7 +1450,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1676:15:9", + "src": "1547:15:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1505,26 +1462,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1962, + "id": 1009, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1887, - "src": "1694:7:9", + "referencedDeclaration": 938, + "src": "1565:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1964, + "id": 1011, "indexExpression": { "argumentTypes": null, - "id": 1963, + "id": 1010, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1883, - "src": "1702:16:9", + "referencedDeclaration": 934, + "src": "1573:16:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1535,26 +1492,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1694:25:9", + "src": "1565:25:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1676:43:9", + "src": "1547:43:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1966, + "id": 1013, "nodeType": "ExpressionStatement", - "src": "1676:43:9" + "src": "1547:43:10" }, { "expression": { "argumentTypes": null, - "id": 1971, + "id": 1018, "isConstant": false, "isLValue": false, "isPure": false, @@ -1563,26 +1520,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1967, + "id": 1014, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1887, - "src": "1729:7:9", + "referencedDeclaration": 938, + "src": "1600:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1969, + "id": 1016, "indexExpression": { "argumentTypes": null, - "id": 1968, + "id": 1015, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1883, - "src": "1737:16:9", + "referencedDeclaration": 934, + "src": "1608:16:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1593,7 +1550,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1729:25:9", + "src": "1600:25:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1603,83 +1560,83 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1970, + "id": 1017, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1930, - "src": "1757:6:9", + "referencedDeclaration": 977, + "src": "1628:6:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" } }, - "src": "1729:34:9", + "src": "1600:34:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1972, + "id": 1019, "nodeType": "ExpressionStatement", - "src": "1729:34:9" + "src": "1600:34:10" } ] }, "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": 1974, + "id": 1021, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1933, + "id": 980, "modifierName": { "argumentTypes": null, - "id": 1932, + "id": 979, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3064, - "src": "1371:10:9", + "referencedDeclaration": 1764, + "src": "1242:10:10", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1371:10:9" + "src": "1242:10:10" } ], "name": "enableModule", "nodeType": "FunctionDefinition", "parameters": { - "id": 1931, + "id": 978, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1930, + "id": 977, "name": "module", "nodeType": "VariableDeclaration", - "scope": 1974, - "src": "1333:13:9", + "scope": 1021, + "src": "1204:13:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 1929, + "id": 976, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1861, - "src": "1333:6:9", + "referencedDeclaration": 913, + "src": "1204:6:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" } }, @@ -1687,26 +1644,26 @@ "visibility": "internal" } ], - "src": "1332:15:9" + "src": "1203:15:10" }, "payable": false, "returnParameters": { - "id": 1934, + "id": 981, "nodeType": "ParameterList", "parameters": [], - "src": "1386:0:9" + "src": "1257:0:10" }, - "scope": 2232, - "src": "1311:459:9", + "scope": 1180, + "src": "1182:459:10", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2023, + "id": 1070, "nodeType": "Block", - "src": "2126:379:9", + "src": "1997:379:10", "statements": [ { "expression": { @@ -1718,7 +1675,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1994, + "id": 1041, "isConstant": false, "isLValue": false, "isPure": false, @@ -1729,7 +1686,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1988, + "id": 1035, "isConstant": false, "isLValue": false, "isPure": false, @@ -1739,14 +1696,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1985, + "id": 1032, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1978, - "src": "2234:6:9", + "referencedDeclaration": 1025, + "src": "2105:6:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" } } @@ -1754,24 +1711,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" } ], - "id": 1984, + "id": 1031, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2226:7:9", + "src": "2097:7:10", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1986, + "id": 1033, "isConstant": false, "isLValue": false, "isPure": false, @@ -1779,7 +1736,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2226:15:9", + "src": "2097:15:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1790,14 +1747,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1987, + "id": 1034, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2245:1:9", + "src": "2116:1:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1805,7 +1762,7 @@ }, "value": "0" }, - "src": "2226:20:9", + "src": "2097:20:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1819,7 +1776,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1993, + "id": 1040, "isConstant": false, "isLValue": false, "isPure": false, @@ -1829,14 +1786,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1990, + "id": 1037, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1978, - "src": "2258:6:9", + "referencedDeclaration": 1025, + "src": "2129:6:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" } } @@ -1844,24 +1801,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" } ], - "id": 1989, + "id": 1036, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2250:7:9", + "src": "2121:7:10", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1991, + "id": 1038, "isConstant": false, "isLValue": false, "isPure": false, @@ -1869,7 +1826,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2250:15:9", + "src": "2121:15:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1879,24 +1836,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1992, + "id": 1039, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1883, - "src": "2269:16:9", + "referencedDeclaration": 934, + "src": "2140:16:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2250:35:9", + "src": "2121:35:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2226:59:9", + "src": "2097:59:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1905,14 +1862,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206d6f64756c6520616464726573732070726f7669646564", - "id": 1995, + "id": 1042, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2287:33:9", + "src": "2158:33:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00", @@ -1932,21 +1889,21 @@ "typeString": "literal_string \"Invalid module address provided\"" } ], - "id": 1983, + "id": 1030, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, - "src": "2218:7:9", + "referencedDeclaration": 3832, + "src": "2089:7:10", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1996, + "id": 1043, "isConstant": false, "isLValue": false, "isPure": false, @@ -1954,15 +1911,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2218:103:9", + "src": "2089:103:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1997, + "id": 1044, "nodeType": "ExpressionStatement", - "src": "2218:103:9" + "src": "2089:103:10" }, { "expression": { @@ -1974,7 +1931,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2005, + "id": 1052, "isConstant": false, "isLValue": false, "isPure": false, @@ -1983,28 +1940,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1999, + "id": 1046, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1887, - "src": "2339:7:9", + "referencedDeclaration": 938, + "src": "2210:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2001, + "id": 1048, "indexExpression": { "argumentTypes": null, - "id": 2000, + "id": 1047, "name": "prevModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1976, - "src": "2347:10:9", + "referencedDeclaration": 1023, + "src": "2218:10:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" } }, @@ -2013,7 +1970,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2339:19:9", + "src": "2210:19:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2026,14 +1983,14 @@ "arguments": [ { "argumentTypes": null, - "id": 2003, + "id": 1050, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1978, - "src": "2370:6:9", + "referencedDeclaration": 1025, + "src": "2241:6:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" } } @@ -2041,24 +1998,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" } ], - "id": 2002, + "id": 1049, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2362:7:9", + "src": "2233:7:10", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2004, + "id": 1051, "isConstant": false, "isLValue": false, "isPure": false, @@ -2066,13 +2023,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2362:15:9", + "src": "2233:15:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2339:38:9", + "src": "2210:38:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2081,14 +2038,14 @@ { "argumentTypes": null, "hexValue": "496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722070726f7669646564", - "id": 2006, + "id": 1053, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2379:42:9", + "src": "2250:42:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_5caa315f9c5cf61be71c182eef2dc9ef7b6ce6b42c320d36694e1d23e09c287e", @@ -2108,21 +2065,21 @@ "typeString": "literal_string \"Invalid prevModule, module pair provided\"" } ], - "id": 1998, + "id": 1045, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, - "src": "2331:7:9", + "referencedDeclaration": 3832, + "src": "2202:7:10", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2007, + "id": 1054, "isConstant": false, "isLValue": false, "isPure": false, @@ -2130,20 +2087,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2331:91:9", + "src": "2202:91:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2008, + "id": 1055, "nodeType": "ExpressionStatement", - "src": "2331:91:9" + "src": "2202:91:10" }, { "expression": { "argumentTypes": null, - "id": 2015, + "id": 1062, "isConstant": false, "isLValue": false, "isPure": false, @@ -2152,28 +2109,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2009, + "id": 1056, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1887, - "src": "2432:7:9", + "referencedDeclaration": 938, + "src": "2303:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2011, + "id": 1058, "indexExpression": { "argumentTypes": null, - "id": 2010, + "id": 1057, "name": "prevModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1976, - "src": "2440:10:9", + "referencedDeclaration": 1023, + "src": "2311:10:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" } }, @@ -2182,7 +2139,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2432:19:9", + "src": "2303:19:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2194,28 +2151,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2012, + "id": 1059, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1887, - "src": "2454:7:9", + "referencedDeclaration": 938, + "src": "2325:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2014, + "id": 1061, "indexExpression": { "argumentTypes": null, - "id": 2013, + "id": 1060, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1978, - "src": "2462:6:9", + "referencedDeclaration": 1025, + "src": "2333:6:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" } }, @@ -2224,26 +2181,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2454:15:9", + "src": "2325:15:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2432:37:9", + "src": "2303:37:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2016, + "id": 1063, "nodeType": "ExpressionStatement", - "src": "2432:37:9" + "src": "2303:37:10" }, { "expression": { "argumentTypes": null, - "id": 2021, + "id": 1068, "isConstant": false, "isLValue": false, "isPure": false, @@ -2252,28 +2209,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2017, + "id": 1064, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1887, - "src": "2479:7:9", + "referencedDeclaration": 938, + "src": "2350:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2019, + "id": 1066, "indexExpression": { "argumentTypes": null, - "id": 2018, + "id": 1065, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1978, - "src": "2487:6:9", + "referencedDeclaration": 1025, + "src": "2358:6:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" } }, @@ -2282,7 +2239,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2479:15:9", + "src": "2350:15:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2293,14 +2250,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 2020, + "id": 1067, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2497:1:9", + "src": "2368:1:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2308,72 +2265,72 @@ }, "value": "0" }, - "src": "2479:19:9", + "src": "2350:19:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2022, + "id": 1069, "nodeType": "ExpressionStatement", - "src": "2479:19:9" + "src": "2350:19:10" } ] }, "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": 2024, + "id": 1071, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1981, + "id": 1028, "modifierName": { "argumentTypes": null, - "id": 1980, + "id": 1027, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3064, - "src": "2111:10:9", + "referencedDeclaration": 1764, + "src": "1982:10:10", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2111:10:9" + "src": "1982:10:10" } ], "name": "disableModule", "nodeType": "FunctionDefinition", "parameters": { - "id": 1979, + "id": 1026, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1976, + "id": 1023, "name": "prevModule", "nodeType": "VariableDeclaration", - "scope": 2024, - "src": "2054:17:9", + "scope": 1071, + "src": "1925:17:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 1975, + "id": 1022, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1861, - "src": "2054:6:9", + "referencedDeclaration": 913, + "src": "1925:6:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" } }, @@ -2382,26 +2339,26 @@ }, { "constant": false, - "id": 1978, + "id": 1025, "name": "module", "nodeType": "VariableDeclaration", - "scope": 2024, - "src": "2073:13:9", + "scope": 1071, + "src": "1944:13:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 1977, + "id": 1024, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1861, - "src": "2073:6:9", + "referencedDeclaration": 913, + "src": "1944:6:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" } }, @@ -2409,26 +2366,26 @@ "visibility": "internal" } ], - "src": "2053:34:9" + "src": "1924:34:10" }, "payable": false, "returnParameters": { - "id": 1982, + "id": 1029, "nodeType": "ParameterList", "parameters": [], - "src": "2126:0:9" + "src": "1997:0:10" }, - "scope": 2232, - "src": "2031:474:9", + "scope": 1180, + "src": "1902:474:10", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2058, + "id": 1105, "nodeType": "Block", - "src": "2991:279:9", + "src": "2862:279:10", "statements": [ { "expression": { @@ -2440,7 +2397,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2043, + "id": 1090, "isConstant": false, "isLValue": false, "isPure": false, @@ -2449,34 +2406,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2038, + "id": 1085, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1887, - "src": "3058:7:9", + "referencedDeclaration": 938, + "src": "2929:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2041, + "id": 1088, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2039, + "id": 1086, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4036, - "src": "3066:3:9", + "referencedDeclaration": 3828, + "src": "2937:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2040, + "id": 1087, "isConstant": false, "isLValue": false, "isPure": false, @@ -2484,7 +2441,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3066:10:9", + "src": "2937:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2495,7 +2452,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3058:19:9", + "src": "2929:19:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2506,14 +2463,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2042, + "id": 1089, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3081:1:9", + "src": "2952:1:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2521,7 +2478,7 @@ }, "value": "0" }, - "src": "3058:24:9", + "src": "2929:24:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2530,14 +2487,14 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d20616e20656e61626c6564206d6f64756c65", - "id": 2044, + "id": 1091, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3084:50:9", + "src": "2955:50:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_cd36462b17a97c5a3df33333c859d5933a4fb7f5e1a0750f5def8eb51f3272e4", @@ -2557,21 +2514,21 @@ "typeString": "literal_string \"Method can only be called from an enabled module\"" } ], - "id": 2037, + "id": 1084, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, - "src": "3050:7:9", + "referencedDeclaration": 3832, + "src": "2921:7:10", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2045, + "id": 1092, "isConstant": false, "isLValue": false, "isPure": false, @@ -2579,32 +2536,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3050:85:9", + "src": "2921:85:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2046, + "id": 1093, "nodeType": "ExpressionStatement", - "src": "3050:85:9" + "src": "2921:85:10" }, { "expression": { "argumentTypes": null, - "id": 2056, + "id": 1103, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2047, + "id": 1094, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2035, - "src": "3207:7:9", + "referencedDeclaration": 1082, + "src": "3078:7:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2617,12 +2574,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2049, + "id": 1096, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2026, - "src": "3225:2:9", + "referencedDeclaration": 1073, + "src": "3096:2:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2630,12 +2587,12 @@ }, { "argumentTypes": null, - "id": 2050, + "id": 1097, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2028, - "src": "3229:5:9", + "referencedDeclaration": 1075, + "src": "3100:5:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2643,12 +2600,12 @@ }, { "argumentTypes": null, - "id": 2051, + "id": 1098, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2030, - "src": "3236:4:9", + "referencedDeclaration": 1077, + "src": "3107:4:10", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -2656,12 +2613,12 @@ }, { "argumentTypes": null, - "id": 2052, + "id": 1099, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2032, - "src": "3242:9:9", + "referencedDeclaration": 1079, + "src": "3113:9:10", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" @@ -2672,18 +2629,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2053, + "id": 1100, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4029, - "src": "3253:7:9", + "referencedDeclaration": 3821, + "src": "3124:7:10", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 2054, + "id": 1101, "isConstant": false, "isLValue": false, "isPure": false, @@ -2691,7 +2648,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3253:9:9", + "src": "3124:9:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2721,18 +2678,18 @@ "typeString": "uint256" } ], - "id": 2048, + "id": 1095, "name": "execute", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2121, - "src": "3217:7:9", + "referencedDeclaration": 115, + "src": "3088:7:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)" } }, - "id": 2055, + "id": 1102, "isConstant": false, "isLValue": false, "isPure": false, @@ -2740,26 +2697,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3217:46:9", + "src": "3088:46:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3207:56:9", + "src": "3078:56:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2057, + "id": 1104, "nodeType": "ExpressionStatement", - "src": "3207:56:9" + "src": "3078:56:10" } ] }, "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": 2059, + "id": 1106, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2767,16 +2724,16 @@ "name": "execTransactionFromModule", "nodeType": "FunctionDefinition", "parameters": { - "id": 2033, + "id": 1080, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2026, + "id": 1073, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2059, - "src": "2876:10:9", + "scope": 1106, + "src": "2747:10:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2784,10 +2741,10 @@ "typeString": "address" }, "typeName": { - "id": 2025, + "id": 1072, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2876:7:9", + "src": "2747:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2798,11 +2755,11 @@ }, { "constant": false, - "id": 2028, + "id": 1075, "name": "value", "nodeType": "VariableDeclaration", - "scope": 2059, - "src": "2888:13:9", + "scope": 1106, + "src": "2759:13:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2810,10 +2767,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2027, + "id": 1074, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2888:7:9", + "src": "2759:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2824,11 +2781,11 @@ }, { "constant": false, - "id": 2030, + "id": 1077, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2059, - "src": "2903:10:9", + "scope": 1106, + "src": "2774:10:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2836,10 +2793,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2029, + "id": 1076, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2903:5:9", + "src": "2774:5:10", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2850,11 +2807,11 @@ }, { "constant": false, - "id": 2032, + "id": 1079, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 2059, - "src": "2915:24:9", + "scope": 1106, + "src": "2786:24:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2863,11 +2820,11 @@ }, "typeName": { "contractScope": null, - "id": 2031, + "id": 1078, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 29, - "src": "2915:14:9", + "src": "2786:14:10", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" @@ -2877,20 +2834,20 @@ "visibility": "internal" } ], - "src": "2875:65:9" + "src": "2746:65:10" }, "payable": false, "returnParameters": { - "id": 2036, + "id": 1083, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2035, + "id": 1082, "name": "success", "nodeType": "VariableDeclaration", - "scope": 2059, - "src": "2973:12:9", + "scope": 1106, + "src": "2844:12:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2898,10 +2855,10 @@ "typeString": "bool" }, "typeName": { - "id": 2034, + "id": 1081, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2973:4:9", + "src": "2844:4:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2911,3431 +2868,1222 @@ "visibility": "internal" } ], - "src": "2972:14:9" + "src": "2843:14:10" }, - "scope": 2232, - "src": "2841:429:9", + "scope": 1180, + "src": "2712:429:10", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2120, + "id": 1178, "nodeType": "Block", - "src": "3425:399:9", + "src": "3302:656:10", "statements": [ { - "condition": { + "assignments": [ + 1113 + ], + "declarations": [ + { + "constant": false, + "id": 1113, + "name": "moduleCount", + "nodeType": "VariableDeclaration", + "scope": 1179, + "src": "3346:19:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1112, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3346:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1115, + "initialValue": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - "id": 2078, + "hexValue": "30", + "id": 1114, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "leftExpression": { + "nodeType": "Literal", + "src": "3368:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3346:23:10" + }, + { + "assignments": [ + 1117 + ], + "declarations": [ + { + "constant": false, + "id": 1117, + "name": "currentModule", + "nodeType": "VariableDeclaration", + "scope": 1179, + "src": "3379:21:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1116, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3379:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1121, + "initialValue": { + "argumentTypes": null, + "baseExpression": { "argumentTypes": null, - "id": 2074, - "name": "operation", + "id": 1118, + "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2067, - "src": "3439:9:9", + "referencedDeclaration": 938, + "src": "3403:7:10", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" } }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { + "id": 1120, + "indexExpression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2075, - "name": "Enum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30, - "src": "3452:4:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$30_$", - "typeString": "type(contract Enum)" - } - }, - "id": 2076, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "Operation", - "nodeType": "MemberAccess", - "referencedDeclaration": 29, - "src": "3452:14:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$29_$", - "typeString": "type(enum Enum.Operation)" - } - }, - "id": 2077, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Call", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3452:19:9", + "id": 1119, + "name": "SENTINEL_MODULES", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 934, + "src": "3411:16:10", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "src": "3439:32:9", + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3403:25:10", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - "id": 2092, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2088, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2067, - "src": "3549:9:9", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, + "nodeType": "VariableDeclarationStatement", + "src": "3379:49:10" + }, + { + "body": { + "id": 1134, + "nodeType": "Block", + "src": "3479:91:10", + "statements": [ + { "expression": { "argumentTypes": null, - "expression": { + "id": 1129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { "argumentTypes": null, - "id": 2089, - "name": "Enum", + "id": 1125, + "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 30, - "src": "3562:4:9", + "referencedDeclaration": 1117, + "src": "3493:13:10", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$30_$", - "typeString": "type(contract Enum)" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 2090, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "Operation", - "nodeType": "MemberAccess", - "referencedDeclaration": 29, - "src": "3562:14:9", + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1126, + "name": "modules", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 938, + "src": "3509:7:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 1128, + "indexExpression": { + "argumentTypes": null, + "id": 1127, + "name": "currentModule", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1117, + "src": "3517:13:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3509:22:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3493:38:10", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$29_$", - "typeString": "type(enum Enum.Operation)" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 2091, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "DelegateCall", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3562:27:9", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } + "id": 1130, + "nodeType": "ExpressionStatement", + "src": "3493:38:10" }, - "src": "3549:40:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 2117, - "nodeType": "Block", - "src": "3664:154:9", - "statements": [ - { - "assignments": [ - 2102 - ], - "declarations": [ - { - "constant": false, - "id": 2102, - "name": "newContract", - "nodeType": "VariableDeclaration", - "scope": 2121, - "src": "3678:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2101, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3678:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2106, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2104, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2065, - "src": "3714:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2103, - "name": "executeCreate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2158, - "src": "3700:13:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes memory) returns (address)" - } - }, - "id": 2105, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3700:19:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3678:41:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2111, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2107, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2072, - "src": "3733:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2108, - "name": "newContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2102, - "src": "3743:11:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2109, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3758:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3743:16:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3733:26:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2112, - "nodeType": "ExpressionStatement", - "src": "3733:26:9" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2114, - "name": "newContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2102, - "src": "3795:11:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2113, - "name": "ContractCreation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1872, - "src": "3778:16:9", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 2115, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3778:29:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2116, - "nodeType": "EmitStatement", - "src": "3773:34:9" - } - ] - }, - "id": 2118, - "nodeType": "IfStatement", - "src": "3545:273:9", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 2099, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2093, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2072, - "src": "3603:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + { + "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2095, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2061, - "src": "3633:2:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2096, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2065, - "src": "3637:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 2097, - "name": "txGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2069, - "src": "3643:5:9", - "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": 2094, - "name": "executeDelegateCall", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2149, - "src": "3613:19:9", - "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": 2098, + "id": 1132, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3613:36:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3603:46:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2100, - "nodeType": "ExpressionStatement", - "src": "3603:46:9" - } - }, - "id": 2119, - "nodeType": "IfStatement", - "src": "3435:383:9", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 2086, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2079, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2072, - "src": "3485:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2081, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2061, - "src": "3507:2:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "3545:14:10", + "subExpression": { "argumentTypes": null, - "id": 2082, - "name": "value", + "id": 1131, + "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2063, - "src": "3511:5:9", + "referencedDeclaration": 1113, + "src": "3545:11:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - { - "argumentTypes": null, - "id": 2083, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2065, - "src": "3518:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 2084, - "name": "txGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2069, - "src": "3524:5:9", - "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_uint256", - "typeString": "uint256" - } - ], - "id": 2080, - "name": "executeCall", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2136, - "src": "3495:11:9", + }, + "id": 1133, + "nodeType": "ExpressionStatement", + "src": "3545:14:10" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1124, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1122, + "name": "currentModule", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1117, + "src": "3444:13:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 1123, + "name": "SENTINEL_MODULES", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 934, + "src": "3461:16:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3444:33:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1135, + "nodeType": "WhileStatement", + "src": "3438:132:10" + }, + { + "assignments": [ + 1139 + ], + "declarations": [ + { + "constant": false, + "id": 1139, + "name": "array", + "nodeType": "VariableDeclaration", + "scope": 1179, + "src": "3579:22:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1137, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3579:7:10", "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)" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 2085, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3495:35:9", + "id": 1138, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3579:9:10", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" } }, - "src": "3485:45:9", + "value": null, + "visibility": "internal" + } + ], + "id": 1145, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1143, + "name": "moduleCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "3618:11:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1142, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "3604:13:10", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", + "typeString": "function (uint256) pure returns (address[] memory)" + }, + "typeName": { + "baseType": { + "id": 1140, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3608:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1141, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3608:9:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } } }, - "id": 2087, - "nodeType": "ExpressionStatement", - "src": "3485:45:9" - } - } - ] - }, - "documentation": null, - "id": 2121, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "execute", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2070, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2061, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 2121, - "src": "3293:10:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2060, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3293:7:9", + "id": 1144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3604:26:10", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_array$_t_address_$dyn_memory", + "typeString": "address[] memory" } }, - "value": null, - "visibility": "internal" + "nodeType": "VariableDeclarationStatement", + "src": "3579:51:10" }, { - "constant": false, - "id": 2063, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 2121, - "src": "3305:13:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2062, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3305:7:9", + "expression": { + "argumentTypes": null, + "id": 1148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1146, + "name": "moduleCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "3674:11:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 1147, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3688:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3674:15:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, - "visibility": "internal" + "id": 1149, + "nodeType": "ExpressionStatement", + "src": "3674:15:10" }, { - "constant": false, - "id": 2065, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 2121, - "src": "3320:10:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2064, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3320:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2067, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 2121, - "src": "3332:24:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 2066, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 29, - "src": "3332:14:9", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2069, - "name": "txGas", - "nodeType": "VariableDeclaration", - "scope": 2121, - "src": "3358:13:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2068, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3358:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3292:80:9" - }, - "payable": false, - "returnParameters": { - "id": 2073, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2072, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 2121, - "src": "3407:12:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2071, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3407:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3406:14:9" - }, - "scope": 2232, - "src": "3276:548:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 2135, - "nodeType": "Block", - "src": "3957:182:9", - "statements": [ - { - "externalReferences": [ - { - "data": { - "declaration": 2127, - "isOffset": false, - "isSlot": false, - "src": "4111:4:9", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 2127, - "isOffset": false, - "isSlot": false, - "src": "4092:4:9", - "valueSize": 1 - } - }, - { - "success": { - "declaration": 2132, - "isOffset": false, - "isSlot": false, - "src": "4054:7:9", - "valueSize": 1 - } - }, - { - "txGas": { - "declaration": 2129, - "isOffset": false, - "isSlot": false, - "src": "4070:5:9", - "valueSize": 1 + "expression": { + "argumentTypes": null, + "id": 1154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1150, + "name": "currentModule", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1117, + "src": "3699:13:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } }, - { - "to": { - "declaration": 2123, - "isOffset": false, - "isSlot": false, - "src": "4077:2:9", - "valueSize": 1 + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1151, + "name": "modules", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 938, + "src": "3715:7:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 1153, + "indexExpression": { + "argumentTypes": null, + "id": 1152, + "name": "SENTINEL_MODULES", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 934, + "src": "3723:16:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3715:25:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } }, - { - "value": { - "declaration": 2125, - "isOffset": false, - "isSlot": false, - "src": "4081:5:9", - "valueSize": 1 - } - } - ], - "id": 2134, - "nodeType": "InlineAssembly", - "operations": "{\n success := call(txGas, to, value, add(data, 0x20), mload(data), 0, 0)\n}", - "src": "4031:108:9" - } - ] - }, - "documentation": null, - "id": 2136, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "executeCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2130, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2123, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 2136, - "src": "3851:10:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2122, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3851:7:9", + "src": "3699:41:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2125, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 2136, - "src": "3863:13:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2124, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3863:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2127, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 2136, - "src": "3878:10:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2126, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3878:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" + "id": 1155, + "nodeType": "ExpressionStatement", + "src": "3699:41:10" }, { - "constant": false, - "id": 2129, - "name": "txGas", - "nodeType": "VariableDeclaration", - "scope": 2136, - "src": "3890:13:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2128, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3890:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3850:54:9" - }, - "payable": false, - "returnParameters": { - "id": 2133, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2132, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 2136, - "src": "3939:12:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2131, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3939:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3938:14:9" - }, - "scope": 2232, - "src": "3830:309:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 2148, - "nodeType": "Block", - "src": "4265:183:9", - "statements": [ - { - "externalReferences": [ - { - "data": { - "declaration": 2140, - "isOffset": false, - "isSlot": false, - "src": "4420:4:9", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 2140, - "isOffset": false, - "isSlot": false, - "src": "4401:4:9", - "valueSize": 1 + "body": { + "id": 1174, + "nodeType": "Block", + "src": "3791:139:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1159, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1139, + "src": "3805:5:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1161, + "indexExpression": { + "argumentTypes": null, + "id": 1160, + "name": "moduleCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "3811:11:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3805:18:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1162, + "name": "currentModule", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1117, + "src": "3826:13:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3805:34:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1164, + "nodeType": "ExpressionStatement", + "src": "3805:34:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 1169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1165, + "name": "currentModule", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1117, + "src": "3853:13:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1166, + "name": "modules", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 938, + "src": "3869:7:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 1168, + "indexExpression": { + "argumentTypes": null, + "id": 1167, + "name": "currentModule", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1117, + "src": "3877:13:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3869:22:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3853:38:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1170, + "nodeType": "ExpressionStatement", + "src": "3853:38:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 1172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "3905:14:10", + "subExpression": { + "argumentTypes": null, + "id": 1171, + "name": "moduleCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "3905:11:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1173, + "nodeType": "ExpressionStatement", + "src": "3905:14:10" } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" }, - { - "success": { - "declaration": 2145, - "isOffset": false, - "isSlot": false, - "src": "4362:7:9", - "valueSize": 1 + "id": 1158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1156, + "name": "currentModule", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1117, + "src": "3756:13:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } }, - { - "txGas": { - "declaration": 2142, - "isOffset": false, - "isSlot": false, - "src": "4386:5:9", - "valueSize": 1 + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 1157, + "name": "SENTINEL_MODULES", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 934, + "src": "3773:16:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } }, - { - "to": { - "declaration": 2138, - "isOffset": false, - "isSlot": false, - "src": "4393:2:9", - "valueSize": 1 - } + "src": "3756:33:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" } - ], - "id": 2147, - "nodeType": "InlineAssembly", - "operations": "{\n success := delegatecall(txGas, to, add(data, 0x20), mload(data), 0, 0)\n}", - "src": "4339:109:9" + }, + "id": 1175, + "nodeType": "WhileStatement", + "src": "3750:180:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 1176, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1139, + "src": "3946:5:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "functionReturnParameters": 1111, + "id": 1177, + "nodeType": "Return", + "src": "3939:12:10" } ] }, - "documentation": null, - "id": 2149, + "documentation": "@dev Returns array of modules.\n @return Array of modules.", + "id": 1179, "implemented": true, "isConstructor": false, - "isDeclaredConst": false, + "isDeclaredConst": true, "modifiers": [], - "name": "executeDelegateCall", + "name": "getModules", "nodeType": "FunctionDefinition", "parameters": { - "id": 2143, + "id": 1107, + "nodeType": "ParameterList", + "parameters": [], + "src": "3239:2:10" + }, + "payable": false, + "returnParameters": { + "id": 1111, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2138, - "name": "to", + "id": 1110, + "name": "", "nodeType": "VariableDeclaration", - "scope": 2149, - "src": "4174:10:9", + "scope": 1179, + "src": "3287:9:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" }, "typeName": { - "id": 2137, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4174:7:9", + "baseType": { + "id": 1108, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3287:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1109, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3287:9:10", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2140, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 2149, - "src": "4186:10:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2139, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4186:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2142, - "name": "txGas", - "nodeType": "VariableDeclaration", - "scope": 2149, - "src": "4198:13:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2141, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4198:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" } }, "value": null, "visibility": "internal" } ], - "src": "4173:39:9" + "src": "3286:11:10" }, - "payable": false, - "returnParameters": { - "id": 2146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2145, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 2149, - "src": "4247:12:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2144, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4247:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4246:14:9" - }, - "scope": 2232, - "src": "4145:303:9", - "stateMutability": "nonpayable", + "scope": 1180, + "src": "3220:738:10", + "stateMutability": "view", "superFunction": null, - "visibility": "internal" + "visibility": "public" + } + ], + "scope": 1181, + "src": "332:3628:10" + } + ], + "src": "0:3961:10" + }, + "legacyAST": { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", + "exportedSymbols": { + "ModuleManager": [ + 1180 + ] + }, + "id": 1181, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 915, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:23:10" + }, + { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", + "file": "./Enum.sol", + "id": 916, + "nodeType": "ImportDirective", + "scope": 1181, + "sourceUnit": 31, + "src": "24:20:10", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Executor.sol", + "file": "./Executor.sol", + "id": 917, + "nodeType": "ImportDirective", + "scope": 1181, + "sourceUnit": 154, + "src": "45:24:10", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", + "file": "./Module.sol", + "id": 918, + "nodeType": "ImportDirective", + "scope": 1181, + "sourceUnit": 914, + "src": "70:22:10", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SelfAuthorized.sol", + "file": "./SelfAuthorized.sol", + "id": 919, + "nodeType": "ImportDirective", + "scope": 1181, + "sourceUnit": 1766, + "src": "93:30:10", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 920, + "name": "SelfAuthorized", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1765, + "src": "358:14:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SelfAuthorized_$1765", + "typeString": "contract SelfAuthorized" + } + }, + "id": 921, + "nodeType": "InheritanceSpecifier", + "src": "358:14:10" }, { - "body": { - "id": 2157, - "nodeType": "Block", - "src": "4548:167:9", - "statements": [ - { - "externalReferences": [ - { - "newContract": { - "declaration": 2154, - "isOffset": false, - "isSlot": false, - "src": "4645:11:9", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 2151, - "isOffset": false, - "isSlot": false, - "src": "4674:4:9", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 2151, - "isOffset": false, - "isSlot": false, - "src": "4693:4:9", - "valueSize": 1 - } - } - ], - "id": 2156, - "nodeType": "InlineAssembly", - "operations": "{\n newContract := create(0, add(data, 0x20), mload(data))\n}", - "src": "4622:93:9" - } - ] + "arguments": null, + "baseName": { + "contractScope": null, + "id": 922, + "name": "Executor", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 153, + "src": "374:8:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Executor_$153", + "typeString": "contract Executor" + } }, - "documentation": null, - "id": 2158, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "executeCreate", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2152, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2151, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 2158, - "src": "4477:10:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2150, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4477:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4476:12:9" + "id": 923, + "nodeType": "InheritanceSpecifier", + "src": "374:8:10" + } + ], + "contractDependencies": [ + 153, + 37, + 1765 + ], + "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": 1180, + "linearizedBaseContracts": [ + 1180, + 153, + 37, + 1765 + ], + "name": "ModuleManager", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 926, + "name": "NAME", + "nodeType": "VariableDeclaration", + "scope": 1180, + "src": "390:46:10", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" }, - "payable": false, - "returnParameters": { - "id": 2155, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2154, - "name": "newContract", - "nodeType": "VariableDeclaration", - "scope": 2158, - "src": "4523:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2153, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4523:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4522:21:9" + "typeName": { + "id": 924, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "390:6:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } }, - "scope": 2232, - "src": "4454:261:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" + "value": { + "argumentTypes": null, + "hexValue": "4d6f64756c65204d616e61676572", + "id": 925, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "420:16:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_12aaa44a1bae367a1e1d9881f5d80283afded6373c2a1ca586db420944084efb", + "typeString": "literal_string \"Module Manager\"" + }, + "value": "Module Manager" + }, + "visibility": "public" }, { - "body": { - "id": 2230, - "nodeType": "Block", - "src": "4876:656:9", - "statements": [ - { - "assignments": [ - 2165 - ], - "declarations": [ - { - "constant": false, - "id": 2165, - "name": "moduleCount", - "nodeType": "VariableDeclaration", - "scope": 2231, - "src": "4920:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2164, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4920:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2167, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 2166, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4942:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "4920:23:9" - }, - { - "assignments": [ - 2169 - ], - "declarations": [ - { - "constant": false, - "id": 2169, - "name": "currentModule", - "nodeType": "VariableDeclaration", - "scope": 2231, - "src": "4953:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2168, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4953:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2173, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2170, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1887, - "src": "4977:7:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 2172, - "indexExpression": { - "argumentTypes": null, - "id": 2171, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1883, - "src": "4985:16:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4977:25:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4953:49:9" - }, - { - "body": { - "id": 2186, - "nodeType": "Block", - "src": "5053:91:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2181, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2177, - "name": "currentModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2169, - "src": "5067:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2178, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1887, - "src": "5083:7:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 2180, - "indexExpression": { - "argumentTypes": null, - "id": 2179, - "name": "currentModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2169, - "src": "5091:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5083:22:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5067:38:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2182, - "nodeType": "ExpressionStatement", - "src": "5067:38:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2184, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "5119:14:9", - "subExpression": { - "argumentTypes": null, - "id": 2183, - "name": "moduleCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2165, - "src": "5119:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2185, - "nodeType": "ExpressionStatement", - "src": "5119:14:9" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2174, - "name": "currentModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2169, - "src": "5018:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 2175, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1883, - "src": "5035:16:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5018:33:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2187, - "nodeType": "WhileStatement", - "src": "5012:132:9" - }, - { - "assignments": [ - 2191 - ], - "declarations": [ - { - "constant": false, - "id": 2191, - "name": "array", - "nodeType": "VariableDeclaration", - "scope": 2231, - "src": "5153:22:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2189, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5153:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2190, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5153:9:9", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2197, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2195, - "name": "moduleCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2165, - "src": "5192:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2194, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "5178:13:9", - "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": 2192, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5182:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2193, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5182:9:9", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "id": 2196, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5178:26:9", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5153:51:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2200, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2198, - "name": "moduleCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2165, - "src": "5248:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 2199, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5262:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5248:15:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2201, - "nodeType": "ExpressionStatement", - "src": "5248:15:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2206, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2202, - "name": "currentModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2169, - "src": "5273:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2203, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1887, - "src": "5289:7:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 2205, - "indexExpression": { - "argumentTypes": null, - "id": 2204, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1883, - "src": "5297:16:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5289:25:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5273:41:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2207, - "nodeType": "ExpressionStatement", - "src": "5273:41:9" - }, - { - "body": { - "id": 2226, - "nodeType": "Block", - "src": "5365:139:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2211, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2191, - "src": "5379:5:9", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2213, - "indexExpression": { - "argumentTypes": null, - "id": 2212, - "name": "moduleCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2165, - "src": "5385:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5379:18:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2214, - "name": "currentModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2169, - "src": "5400:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5379:34:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2216, - "nodeType": "ExpressionStatement", - "src": "5379:34:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2221, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2217, - "name": "currentModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2169, - "src": "5427:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2218, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1887, - "src": "5443:7:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 2220, - "indexExpression": { - "argumentTypes": null, - "id": 2219, - "name": "currentModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2169, - "src": "5451:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5443:22:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5427:38:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2222, - "nodeType": "ExpressionStatement", - "src": "5427:38:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2224, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "5479:14:9", - "subExpression": { - "argumentTypes": null, - "id": 2223, - "name": "moduleCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2165, - "src": "5479:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2225, - "nodeType": "ExpressionStatement", - "src": "5479:14:9" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2208, - "name": "currentModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2169, - "src": "5330:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 2209, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1883, - "src": "5347:16:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5330:33:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2227, - "nodeType": "WhileStatement", - "src": "5324:180:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2228, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2191, - "src": "5520:5:9", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 2163, - "id": 2229, - "nodeType": "Return", - "src": "5513:12:9" - } - ] - }, - "documentation": "@dev Returns array of modules.\n @return Array of modules.", - "id": 2231, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getModules", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2159, - "nodeType": "ParameterList", - "parameters": [], - "src": "4813:2:9" - }, - "payable": false, - "returnParameters": { - "id": 2163, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2162, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2231, - "src": "4861:9:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2160, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4861:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2161, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4861:9:9", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4860:11:9" - }, - "scope": 2232, - "src": "4794:738:9", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2233, - "src": "303:5231:9" - } - ], - "src": "0:5535:9" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", - "exportedSymbols": { - "ModuleManager": [ - 2232 - ] - }, - "id": 2233, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1863, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:9" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", - "file": "./Module.sol", - "id": 1864, - "nodeType": "ImportDirective", - "scope": 2233, - "sourceUnit": 1862, - "src": "24:22:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol", - "file": "./MasterCopy.sol", - "id": 1865, - "nodeType": "ImportDirective", - "scope": 2233, - "sourceUnit": 633, - "src": "47:26:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", - "file": "./Enum.sol", - "id": 1866, - "nodeType": "ImportDirective", - "scope": 2233, - "sourceUnit": 31, - "src": "74:20:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1867, - "name": "SelfAuthorized", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3065, - "src": "329:14:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$3065", - "typeString": "contract SelfAuthorized" - } - }, - "id": 1868, - "nodeType": "InheritanceSpecifier", - "src": "329:14:9" - } - ], - "contractDependencies": [ - 3065 - ], - "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": 2232, - "linearizedBaseContracts": [ - 2232, - 3065 - ], - "name": "ModuleManager", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 1872, - "name": "ContractCreation", - "nodeType": "EventDefinition", - "parameters": { - "id": 1871, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1870, - "indexed": false, - "name": "newContract", - "nodeType": "VariableDeclaration", - "scope": 1872, - "src": "374:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1869, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "374:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "373:21:9" - }, - "src": "351:44:9" - }, - { - "constant": true, - "id": 1875, - "name": "NAME", - "nodeType": "VariableDeclaration", - "scope": 2232, - "src": "401:46:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 1873, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "401:6:9", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "4d6f64756c65204d616e61676572", - "id": 1874, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "431:16:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_12aaa44a1bae367a1e1d9881f5d80283afded6373c2a1ca586db420944084efb", - "typeString": "literal_string \"Module Manager\"" - }, - "value": "Module Manager" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 1878, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 2232, - "src": "453:40:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 1876, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "453:6:9", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "302e302e31", - "id": 1877, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "486:7:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", - "typeString": "literal_string \"0.0.1\"" - }, - "value": "0.0.1" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 1883, - "name": "SENTINEL_MODULES", - "nodeType": "VariableDeclaration", - "scope": 2232, - "src": "499:55:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1879, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "499:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307831", - "id": 1881, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "550:3:9", - "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": 1880, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "542:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1882, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "542:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "public" - }, - { - "constant": false, - "id": 1887, - "name": "modules", - "nodeType": "VariableDeclaration", - "scope": 2232, - "src": "561:45:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "typeName": { - "id": 1886, - "keyType": { - "id": 1884, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "570:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "561:28:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "valueType": { - "id": 1885, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "581:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 1890, - "nodeType": "Block", - "src": "721:8:9", - "statements": [] - }, - "documentation": "@dev Fallback function accepts Ether transactions.", - "id": 1891, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1888, - "nodeType": "ParameterList", - "parameters": [], - "src": "681:2:9" - }, - "payable": true, - "returnParameters": { - "id": 1889, - "nodeType": "ParameterList", - "parameters": [], - "src": "721:0:9" - }, - "scope": 2232, - "src": "672:57:9", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1927, - "nodeType": "Block", - "src": "802:342:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1903, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1899, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1887, - "src": "820:7:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1901, - "indexExpression": { - "argumentTypes": null, - "id": 1900, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1883, - "src": "828:16:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "820:25:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1902, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "849:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "820:30:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d6f64756c6573206861766520616c7265616479206265656e20696e697469616c697a6564", - "id": 1904, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "852:39:9", - "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": 1898, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4039, - 4040 - ], - "referencedDeclaration": 4040, - "src": "812:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "812:80:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1906, - "nodeType": "ExpressionStatement", - "src": "812:80:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 1911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1907, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1887, - "src": "902:7:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1909, - "indexExpression": { - "argumentTypes": null, - "id": 1908, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1883, - "src": "910:16:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "902:25:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1910, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1883, - "src": "930:16:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "902:44:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1912, - "nodeType": "ExpressionStatement", - "src": "902:44:9" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1915, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1913, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1893, - "src": "960:2:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1914, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "966:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "960:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1926, - "nodeType": "IfStatement", - "src": "956:181:9", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1918, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1893, - "src": "1081:2:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1919, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1895, - "src": "1085:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1920, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4029, - "src": "1091:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 1921, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1091:9:9", - "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": 1917, - "name": "executeDelegateCall", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2149, - "src": "1061:19:9", - "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": 1922, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1061:40:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e", - "id": 1923, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1103:33:9", - "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": 1916, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4039, - 4040 - ], - "referencedDeclaration": 4040, - "src": "1053:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1924, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1053:84:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1925, - "nodeType": "ExpressionStatement", - "src": "1053:84:9" - } - } - ] + "constant": true, + "id": 929, + "name": "VERSION", + "nodeType": "VariableDeclaration", + "scope": 1180, + "src": "442:40:10", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" }, - "documentation": null, - "id": 1928, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "setupModules", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1896, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1893, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1928, - "src": "757:10:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1892, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "757:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, + "typeName": { + "id": 927, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "442:6:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "302e302e31", + "id": 928, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "475:7:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", + "typeString": "literal_string \"0.0.1\"" + }, + "value": "0.0.1" + }, + "visibility": "public" + }, + { + "constant": true, + "id": 934, + "name": "SENTINEL_MODULES", + "nodeType": "VariableDeclaration", + "scope": 1180, + "src": "488:55:10", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 930, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "488:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ { - "constant": false, - "id": 1895, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 1928, - "src": "769:10:9", - "stateVariable": false, - "storageLocation": "default", + "argumentTypes": null, + "hexValue": "307831", + "id": 932, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "539:3:10", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1894, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "769:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" }, - "value": null, - "visibility": "internal" + "value": "0x1" } ], - "src": "756:24:9" - }, - "payable": false, - "returnParameters": { - "id": 1897, - "nodeType": "ParameterList", - "parameters": [], - "src": "802:0:9" + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 931, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "531:7:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 933, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "531:12:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } }, - "scope": 2232, - "src": "735:409:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" + "visibility": "public" }, { - "body": { - "id": 1973, - "nodeType": "Block", - "src": "1386:384:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1946, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1940, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1937, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1930, - "src": "1466:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$1861", - "typeString": "contract Module" - } - ], - "id": 1936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1458:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1938, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1458:15:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1939, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1477:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1458:20:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1945, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1942, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1930, - "src": "1490:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$1861", - "typeString": "contract Module" - } - ], - "id": 1941, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1482:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1943, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1482:15:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1944, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1883, - "src": "1501:16:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1482:35:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1458:59:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206d6f64756c6520616464726573732070726f7669646564", - "id": 1947, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1519:33:9", - "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": 1935, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4039, - 4040 - ], - "referencedDeclaration": 4040, - "src": "1450:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1948, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1450:103:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1949, - "nodeType": "ExpressionStatement", - "src": "1450:103:9" - }, + "constant": false, + "id": 938, + "name": "modules", + "nodeType": "VariableDeclaration", + "scope": 1180, + "src": "550:45:10", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + }, + "typeName": { + "id": 937, + "keyType": { + "id": 935, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "559:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "550:28:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + }, + "valueType": { + "id": 936, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "570:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "body": { + "id": 974, + "nodeType": "Block", + "src": "673:342:10", + "statements": [ { "expression": { "argumentTypes": null, @@ -6346,7 +4094,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1955, + "id": 950, "isConstant": false, "isLValue": false, "isPure": false, @@ -6355,29 +4103,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1951, + "id": 946, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1887, - "src": "1612:7:9", + "referencedDeclaration": 938, + "src": "691:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1953, + "id": 948, "indexExpression": { "argumentTypes": null, - "id": 1952, - "name": "module", + "id": 947, + "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1930, - "src": "1620:6:9", + "referencedDeclaration": 934, + "src": "699:16:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", - "typeString": "contract Module" + "typeIdentifier": "t_address", + "typeString": "address" } }, "isConstant": false, @@ -6385,7 +4133,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1612:15:9", + "src": "691:25:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6396,14 +4144,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1954, + "id": 949, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1631:1:9", + "src": "720:1:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6411,7 +4159,7 @@ }, "value": "0" }, - "src": "1612:20:9", + "src": "691:30:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6419,21 +4167,21 @@ }, { "argumentTypes": null, - "hexValue": "4d6f64756c652068617320616c7265616479206265656e206164646564", - "id": 1956, + "hexValue": "4d6f64756c6573206861766520616c7265616479206265656e20696e697469616c697a6564", + "id": 951, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1634:31:9", + "src": "723:39:10", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ae2b4ea52eaf6de3fb2d8a64b7555be2dfd285b837a62821bf24e7dc6f329450", - "typeString": "literal_string \"Module has already been added\"" + "typeIdentifier": "t_stringliteral_1e0428ffa69bff65645154a36d5017c238f946ddaf89430d30eec813f30bdd77", + "typeString": "literal_string \"Modules have already been initialized\"" }, - "value": "Module has already been added" + "value": "Modules have already been initialized" } ], "expression": { @@ -6443,25 +4191,25 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_ae2b4ea52eaf6de3fb2d8a64b7555be2dfd285b837a62821bf24e7dc6f329450", - "typeString": "literal_string \"Module has already been added\"" + "typeIdentifier": "t_stringliteral_1e0428ffa69bff65645154a36d5017c238f946ddaf89430d30eec813f30bdd77", + "typeString": "literal_string \"Modules have already been initialized\"" } ], - "id": 1950, + "id": 945, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, - "src": "1604:7:9", + "referencedDeclaration": 3832, + "src": "683:7:10", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1957, + "id": 952, "isConstant": false, "isLValue": false, "isPure": false, @@ -6469,20 +4217,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1604:62:9", + "src": "683:80:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1958, + "id": 953, "nodeType": "ExpressionStatement", - "src": "1604:62:9" + "src": "683:80:10" }, { "expression": { "argumentTypes": null, - "id": 1965, + "id": 958, "isConstant": false, "isLValue": false, "isPure": false, @@ -6491,29 +4239,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1959, + "id": 954, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1887, - "src": "1676:7:9", + "referencedDeclaration": 938, + "src": "773:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1961, + "id": 956, "indexExpression": { "argumentTypes": null, - "id": 1960, - "name": "module", + "id": 955, + "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1930, - "src": "1684:6:9", + "referencedDeclaration": 934, + "src": "781:16:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", - "typeString": "contract Module" + "typeIdentifier": "t_address", + "typeString": "address" } }, "isConstant": false, @@ -6521,7 +4269,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1676:15:9", + "src": "773:25:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6531,210 +4279,336 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1962, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1887, - "src": "1694:7:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1964, - "indexExpression": { - "argumentTypes": null, - "id": 1963, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1883, - "src": "1702:16:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1694:25:9", + "id": 957, + "name": "SENTINEL_MODULES", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 934, + "src": "801:16:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1676:43:9", + "src": "773:44:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1966, + "id": 959, "nodeType": "ExpressionStatement", - "src": "1676:43:9" + "src": "773:44:10" }, { - "expression": { + "condition": { "argumentTypes": null, - "id": 1971, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 962, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { + "leftExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1967, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1887, - "src": "1729:7:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1969, - "indexExpression": { - "argumentTypes": null, - "id": 1968, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1883, - "src": "1737:16:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1729:25:9", + "id": 960, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 940, + "src": "831:2:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { "argumentTypes": null, - "id": 1970, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1930, - "src": "1757:6:9", + "hexValue": "30", + "id": 961, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "837:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "831:7:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 973, + "nodeType": "IfStatement", + "src": "827:181:10", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 965, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 940, + "src": "952:2:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 966, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 942, + "src": "956:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 967, + "name": "gasleft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3821, + "src": "962:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "962:9:10", + "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": 964, + "name": "executeDelegateCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 143, + "src": "932:19:10", + "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": 969, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "932:40:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e", + "id": 970, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "974:33:10", + "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": 963, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3832, + "src": "924:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "924:84:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", - "typeString": "contract Module" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "src": "1729:34:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1972, - "nodeType": "ExpressionStatement", - "src": "1729:34:9" + "id": 972, + "nodeType": "ExpressionStatement", + "src": "924:84:10" + } } ] }, - "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": 1974, + "documentation": null, + "id": 975, "implemented": true, "isConstructor": false, "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 1933, - "modifierName": { - "argumentTypes": null, - "id": 1932, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3064, - "src": "1371:10:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1371:10:9" - } - ], - "name": "enableModule", + "modifiers": [], + "name": "setupModules", "nodeType": "FunctionDefinition", "parameters": { - "id": 1931, + "id": 943, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1930, - "name": "module", + "id": 940, + "name": "to", "nodeType": "VariableDeclaration", - "scope": 1974, - "src": "1333:13:9", + "scope": 975, + "src": "628:10:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", - "typeString": "contract Module" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "contractScope": null, - "id": 1929, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1861, - "src": "1333:6:9", + "id": 939, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "628:7:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", - "typeString": "contract Module" + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 942, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 975, + "src": "640:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 941, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "640:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], - "src": "1332:15:9" + "src": "627:24:10" }, "payable": false, "returnParameters": { - "id": 1934, + "id": 944, "nodeType": "ParameterList", "parameters": [], - "src": "1386:0:9" + "src": "673:0:10" }, - "scope": 2232, - "src": "1311:459:9", + "scope": 1180, + "src": "606:409:10", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "public" + "visibility": "internal" }, { "body": { - "id": 2023, + "id": 1020, "nodeType": "Block", - "src": "2126:379:9", + "src": "1257:384:10", "statements": [ { "expression": { @@ -6746,7 +4620,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1994, + "id": 993, "isConstant": false, "isLValue": false, "isPure": false, @@ -6757,7 +4631,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1988, + "id": 987, "isConstant": false, "isLValue": false, "isPure": false, @@ -6767,14 +4641,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1985, + "id": 984, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1978, - "src": "2234:6:9", + "referencedDeclaration": 977, + "src": "1337:6:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" } } @@ -6782,24 +4656,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" } ], - "id": 1984, + "id": 983, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2226:7:9", + "src": "1329:7:10", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1986, + "id": 985, "isConstant": false, "isLValue": false, "isPure": false, @@ -6807,7 +4681,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2226:15:9", + "src": "1329:15:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6818,289 +4692,113 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1987, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2245:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2226:20:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1993, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1990, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1978, - "src": "2258:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$1861", - "typeString": "contract Module" - } - ], - "id": 1989, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2250:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1991, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2250:15:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1992, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1883, - "src": "2269:16:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2250:35:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2226:59:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206d6f64756c6520616464726573732070726f7669646564", - "id": 1995, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2287:33:9", - "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": 1983, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4039, - 4040 - ], - "referencedDeclaration": 4040, - "src": "2218:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1996, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2218:103:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1997, - "nodeType": "ExpressionStatement", - "src": "2218:103:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2005, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1999, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1887, - "src": "2339:7:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 2001, - "indexExpression": { - "argumentTypes": null, - "id": 2000, - "name": "prevModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1976, - "src": "2347:10:9", + "id": 986, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1348:1:10", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", - "typeString": "contract Module" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2339:19:9", + "src": "1329:20:10", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, "nodeType": "BinaryOperation", - "operator": "==", + "operator": "&&", "rightExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2003, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1978, - "src": "2370:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 992, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ { - "typeIdentifier": "t_contract$_Module_$1861", - "typeString": "contract Module" + "argumentTypes": null, + "id": 989, + "name": "module", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 977, + "src": "1361:6:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Module_$913", + "typeString": "contract Module" + } } ], - "id": 2002, + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Module_$913", + "typeString": "contract Module" + } + ], + "id": 988, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1353:7:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 990, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2362:7:9", + "names": [], + "nodeType": "FunctionCall", + "src": "1353:15:10", "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" + "typeIdentifier": "t_address", + "typeString": "address" + } }, - "id": 2004, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2362:15:9", + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 991, + "name": "SENTINEL_MODULES", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 934, + "src": "1372:16:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1353:35:10", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "src": "2339:38:9", + "src": "1329:59:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7108,356 +4806,66 @@ }, { "argumentTypes": null, - "hexValue": "496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722070726f7669646564", - "id": 2006, + "hexValue": "496e76616c6964206d6f64756c6520616464726573732070726f7669646564", + "id": 994, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2379:42:9", + "src": "1390:33:10", "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": 1998, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4039, - 4040 - ], - "referencedDeclaration": 4040, - "src": "2331:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2007, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2331:91:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2008, - "nodeType": "ExpressionStatement", - "src": "2331:91:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2015, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2009, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1887, - "src": "2432:7:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 2011, - "indexExpression": { - "argumentTypes": null, - "id": 2010, - "name": "prevModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1976, - "src": "2440:10:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", - "typeString": "contract Module" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2432:19:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2012, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1887, - "src": "2454:7:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 2014, - "indexExpression": { - "argumentTypes": null, - "id": 2013, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1978, - "src": "2462:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", - "typeString": "contract Module" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2454:15:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2432:37:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2016, - "nodeType": "ExpressionStatement", - "src": "2432:37:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2021, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2017, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1887, - "src": "2479:7:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 2019, - "indexExpression": { - "argumentTypes": null, - "id": 2018, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1978, - "src": "2487:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", - "typeString": "contract Module" + "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\"" } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2479:15:9", + ], + "id": 982, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3832, + "src": "1321:7:10", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 2020, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2497:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2479:19:9", + "id": 995, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1321:103:10", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 2022, + "id": 996, "nodeType": "ExpressionStatement", - "src": "2479:19:9" - } - ] - }, - "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": 2024, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 1981, - "modifierName": { - "argumentTypes": null, - "id": 1980, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3064, - "src": "2111:10:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2111:10:9" - } - ], - "name": "disableModule", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1979, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1976, - "name": "prevModule", - "nodeType": "VariableDeclaration", - "scope": 2024, - "src": "2054:17:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", - "typeString": "contract Module" - }, - "typeName": { - "contractScope": null, - "id": 1975, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1861, - "src": "2054:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", - "typeString": "contract Module" - } - }, - "value": null, - "visibility": "internal" + "src": "1321:103:10" }, - { - "constant": false, - "id": 1978, - "name": "module", - "nodeType": "VariableDeclaration", - "scope": 2024, - "src": "2073:13:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", - "typeString": "contract Module" - }, - "typeName": { - "contractScope": null, - "id": 1977, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1861, - "src": "2073:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", - "typeString": "contract Module" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2053:34:9" - }, - "payable": false, - "returnParameters": { - "id": 1982, - "nodeType": "ParameterList", - "parameters": [], - "src": "2126:0:9" - }, - "scope": 2232, - "src": "2031:474:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2058, - "nodeType": "Block", - "src": "2991:279:9", - "statements": [ { "expression": { "argumentTypes": null, @@ -7468,7 +4876,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2043, + "id": 1002, "isConstant": false, "isLValue": false, "isPure": false, @@ -7477,45 +4885,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2038, + "id": 998, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1887, - "src": "3058:7:9", + "referencedDeclaration": 938, + "src": "1483:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2041, + "id": 1000, "indexExpression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2039, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4036, - "src": "3066:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2040, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3066:10:9", + "id": 999, + "name": "module", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 977, + "src": "1491:6:10", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_contract$_Module_$913", + "typeString": "contract Module" } }, "isConstant": false, @@ -7523,25 +4915,25 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3058:19:9", + "src": "1483:15:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", - "operator": "!=", + "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2042, + "id": 1001, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3081:1:9", + "src": "1502:1:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7549,7 +4941,7 @@ }, "value": "0" }, - "src": "3058:24:9", + "src": "1483:20:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7557,21 +4949,21 @@ }, { "argumentTypes": null, - "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d20616e20656e61626c6564206d6f64756c65", - "id": 2044, + "hexValue": "4d6f64756c652068617320616c7265616479206265656e206164646564", + "id": 1003, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3084:50:9", + "src": "1505:31:10", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_cd36462b17a97c5a3df33333c859d5933a4fb7f5e1a0750f5def8eb51f3272e4", - "typeString": "literal_string \"Method can only be called from an enabled module\"" + "typeIdentifier": "t_stringliteral_ae2b4ea52eaf6de3fb2d8a64b7555be2dfd285b837a62821bf24e7dc6f329450", + "typeString": "literal_string \"Module has already been added\"" }, - "value": "Method can only be called from an enabled module" + "value": "Module has already been added" } ], "expression": { @@ -7581,25 +4973,25 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_cd36462b17a97c5a3df33333c859d5933a4fb7f5e1a0750f5def8eb51f3272e4", - "typeString": "literal_string \"Method can only be called from an enabled module\"" + "typeIdentifier": "t_stringliteral_ae2b4ea52eaf6de3fb2d8a64b7555be2dfd285b837a62821bf24e7dc6f329450", + "typeString": "literal_string \"Module has already been added\"" } ], - "id": 2037, + "id": 997, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, - "src": "3050:7:9", + "referencedDeclaration": 3832, + "src": "1475:7:10", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2045, + "id": 1004, "isConstant": false, "isLValue": false, "isPure": false, @@ -7607,1109 +4999,940 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3050:85:9", + "src": "1475:62:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1005, + "nodeType": "ExpressionStatement", + "src": "1475:62:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 1012, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1006, + "name": "modules", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 938, + "src": "1547:7:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 1008, + "indexExpression": { + "argumentTypes": null, + "id": 1007, + "name": "module", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 977, + "src": "1555:6:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Module_$913", + "typeString": "contract Module" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1547:15:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1009, + "name": "modules", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 938, + "src": "1565:7:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 1011, + "indexExpression": { + "argumentTypes": null, + "id": 1010, + "name": "SENTINEL_MODULES", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 934, + "src": "1573:16:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1565:25:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1547:43:10", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 2046, + "id": 1013, "nodeType": "ExpressionStatement", - "src": "3050:85:9" + "src": "1547:43:10" }, { "expression": { "argumentTypes": null, - "id": 2056, + "id": 1018, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2047, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2035, - "src": "3207:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2049, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2026, - "src": "3225:2:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2050, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2028, - "src": "3229:5:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2051, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2030, - "src": "3236:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 2052, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2032, - "src": "3242:9:9", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2053, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4029, - "src": "3253:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 2054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3253:9:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "baseExpression": { + "argumentTypes": null, + "id": 1014, + "name": "modules", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 938, + "src": "1600:7:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2048, - "name": "execute", + }, + "id": 1016, + "indexExpression": { + "argumentTypes": null, + "id": 1015, + "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2121, - "src": "3217:7:9", + "referencedDeclaration": 934, + "src": "1608:16:10", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 2055, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3217:46:9", + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1600:25:10", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1017, + "name": "module", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 977, + "src": "1628:6:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Module_$913", + "typeString": "contract Module" } }, - "src": "3207:56:9", + "src": "1600:34:10", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 2057, + "id": 1019, "nodeType": "ExpressionStatement", - "src": "3207:56:9" + "src": "1600:34:10" } ] }, - "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": 2059, + "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": 1021, "implemented": true, "isConstructor": false, "isDeclaredConst": false, - "modifiers": [], - "name": "execTransactionFromModule", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2033, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2026, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 2059, - "src": "2876:10:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2025, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2876:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2028, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 2059, - "src": "2888:13:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2027, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2888:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2030, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 2059, - "src": "2903:10:9", - "stateVariable": false, - "storageLocation": "default", + "modifiers": [ + { + "arguments": null, + "id": 980, + "modifierName": { + "argumentTypes": null, + "id": 979, + "name": "authorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1764, + "src": "1242:10:10", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2029, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2903:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } }, - { - "constant": false, - "id": 2032, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 2059, - "src": "2915:24:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 2031, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 29, - "src": "2915:14:9", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2875:65:9" - }, - "payable": false, - "returnParameters": { - "id": 2036, + "nodeType": "ModifierInvocation", + "src": "1242:10:10" + } + ], + "name": "enableModule", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 978, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2035, - "name": "success", + "id": 977, + "name": "module", "nodeType": "VariableDeclaration", - "scope": 2059, - "src": "2973:12:9", + "scope": 1021, + "src": "1204:13:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_contract$_Module_$913", + "typeString": "contract Module" }, "typeName": { - "id": 2034, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2973:4:9", + "contractScope": null, + "id": 976, + "name": "Module", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 913, + "src": "1204:6:10", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_contract$_Module_$913", + "typeString": "contract Module" } }, "value": null, "visibility": "internal" } ], - "src": "2972:14:9" + "src": "1203:15:10" + }, + "payable": false, + "returnParameters": { + "id": 981, + "nodeType": "ParameterList", + "parameters": [], + "src": "1257:0:10" }, - "scope": 2232, - "src": "2841:429:9", + "scope": 1180, + "src": "1182:459:10", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2120, + "id": 1070, "nodeType": "Block", - "src": "3425:399:9", + "src": "1997:379:10", "statements": [ { - "condition": { + "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - "id": 2078, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2074, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2067, - "src": "3439:9:9", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { + "arguments": [ + { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2075, - "name": "Enum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30, - "src": "3452:4:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$30_$", - "typeString": "type(contract Enum)" - } + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" }, - "id": 2076, + "id": 1041, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "Operation", - "nodeType": "MemberAccess", - "referencedDeclaration": 29, - "src": "3452:14:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$29_$", - "typeString": "type(enum Enum.Operation)" - } - }, - "id": 2077, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Call", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3452:19:9", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - "src": "3439:32:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - "id": 2092, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2088, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2067, - "src": "3549:9:9", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { + "leftExpression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2089, - "name": "Enum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30, - "src": "3562:4:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$30_$", - "typeString": "type(contract Enum)" - } + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 2090, + "id": 1035, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "Operation", - "nodeType": "MemberAccess", - "referencedDeclaration": 29, - "src": "3562:14:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$29_$", - "typeString": "type(enum Enum.Operation)" - } - }, - "id": 2091, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "DelegateCall", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3562:27:9", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - "src": "3549:40:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 2117, - "nodeType": "Block", - "src": "3664:154:9", - "statements": [ - { - "assignments": [ - 2102 - ], - "declarations": [ - { - "constant": false, - "id": 2102, - "name": "newContract", - "nodeType": "VariableDeclaration", - "scope": 2121, - "src": "3678:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2101, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3678:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2106, - "initialValue": { + "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2104, - "name": "data", + "id": 1032, + "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2065, - "src": "3714:4:9", + "referencedDeclaration": 1025, + "src": "2105:6:10", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_contract$_Module_$913", + "typeString": "contract Module" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_contract$_Module_$913", + "typeString": "contract Module" } ], - "id": 2103, - "name": "executeCreate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2158, - "src": "3700:13:9", + "id": 1031, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2097:7:10", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes memory) returns (address)" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 2105, + "id": 1033, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", + "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3700:19:9", + "src": "2097:15:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "nodeType": "VariableDeclarationStatement", - "src": "3678:41:9" - }, - { - "expression": { + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { "argumentTypes": null, - "id": 2111, + "hexValue": "30", + "id": 1034, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2107, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2072, - "src": "3733:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2108, - "name": "newContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2102, - "src": "3743:11:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2109, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3758:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3743:16:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3733:26:9", + "nodeType": "Literal", + "src": "2116:1:10", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, - "id": 2112, - "nodeType": "ExpressionStatement", - "src": "3733:26:9" + "src": "2097:20:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } }, - { - "eventCall": { + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1040, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2114, - "name": "newContract", + "id": 1037, + "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2102, - "src": "3795:11:9", + "referencedDeclaration": 1025, + "src": "2129:6:10", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_contract$_Module_$913", + "typeString": "contract Module" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_contract$_Module_$913", + "typeString": "contract Module" } ], - "id": 2113, - "name": "ContractCreation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1872, - "src": "3778:16:9", + "id": 1036, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2121:7:10", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 2115, + "id": 1038, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", + "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3778:29:9", + "src": "2121:15:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 1039, + "name": "SENTINEL_MODULES", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 934, + "src": "2140:16:10", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 2116, - "nodeType": "EmitStatement", - "src": "3773:34:9" + "src": "2121:35:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2097:59:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "496e76616c6964206d6f64756c6520616464726573732070726f7669646564", + "id": 1042, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2158:33:10", + "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": 1030, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3832, + "src": "2089:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } }, - "id": 2118, - "nodeType": "IfStatement", - "src": "3545:273:9", - "trueBody": { - "expression": { + "id": 1043, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2089:103:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1044, + "nodeType": "ExpressionStatement", + "src": "2089:103:10" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, - "id": 2099, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1052, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { + "leftExpression": { "argumentTypes": null, - "id": 2093, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2072, - "src": "3603:7:9", + "baseExpression": { + "argumentTypes": null, + "id": 1046, + "name": "modules", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 938, + "src": "2210:7:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 1048, + "indexExpression": { + "argumentTypes": null, + "id": 1047, + "name": "prevModule", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1023, + "src": "2218:10:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Module_$913", + "typeString": "contract Module" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2210:19:10", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2095, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2061, - "src": "3633:2:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2096, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2065, - "src": "3637:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 2097, - "name": "txGas", + "id": 1050, + "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2069, - "src": "3643:5:9", + "referencedDeclaration": 1025, + "src": "2241:6:10", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_contract$_Module_$913", + "typeString": "contract Module" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_contract$_Module_$913", + "typeString": "contract Module" } ], - "id": 2094, - "name": "executeDelegateCall", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2149, - "src": "3613:19:9", + "id": 1049, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2233:7:10", "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)" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 2098, + "id": 1051, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", + "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3613:36:9", + "src": "2233:15:10", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "src": "3603:46:9", + "src": "2210:38:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722070726f7669646564", + "id": 1053, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2250:42:10", + "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": 1045, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3832, + "src": "2202:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2202:91:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1055, + "nodeType": "ExpressionStatement", + "src": "2202:91:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 1062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1056, + "name": "modules", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 938, + "src": "2303:7:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 1058, + "indexExpression": { + "argumentTypes": null, + "id": 1057, + "name": "prevModule", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1023, + "src": "2311:10:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Module_$913", + "typeString": "contract Module" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2303:19:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1059, + "name": "modules", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 938, + "src": "2325:7:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 1061, + "indexExpression": { + "argumentTypes": null, + "id": 1060, + "name": "module", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1025, + "src": "2333:6:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Module_$913", + "typeString": "contract Module" } }, - "id": 2100, - "nodeType": "ExpressionStatement", - "src": "3603:46:9" + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2325:15:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2303:37:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 2119, - "nodeType": "IfStatement", - "src": "3435:383:9", - "trueBody": { - "expression": { + "id": 1063, + "nodeType": "ExpressionStatement", + "src": "2303:37:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 1068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { "argumentTypes": null, - "id": 2086, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { + "baseExpression": { "argumentTypes": null, - "id": 2079, - "name": "success", + "id": 1064, + "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2072, - "src": "3485:7:9", + "referencedDeclaration": 938, + "src": "2350:7:10", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "id": 1066, + "indexExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2081, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2061, - "src": "3507:2:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2082, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2063, - "src": "3511:5:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2083, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2065, - "src": "3518:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 2084, - "name": "txGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2069, - "src": "3524:5:9", - "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": 2080, - "name": "executeCall", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2136, - "src": "3495:11:9", - "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": 2085, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3495:35:9", + "id": 1065, + "name": "module", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1025, + "src": "2358:6:10", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_contract$_Module_$913", + "typeString": "contract Module" } }, - "src": "3485:45:9", + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2350:15:10", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 2087, - "nodeType": "ExpressionStatement", - "src": "3485:45:9" - } + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 1067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2368:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2350:19:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1069, + "nodeType": "ExpressionStatement", + "src": "2350:19:10" } ] }, - "documentation": null, - "id": 2121, + "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": 1071, "implemented": true, "isConstructor": false, "isDeclaredConst": false, - "modifiers": [], - "name": "execute", + "modifiers": [ + { + "arguments": null, + "id": 1028, + "modifierName": { + "argumentTypes": null, + "id": 1027, + "name": "authorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1764, + "src": "1982:10:10", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1982:10:10" + } + ], + "name": "disableModule", "nodeType": "FunctionDefinition", "parameters": { - "id": 2070, + "id": 1026, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2061, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 2121, - "src": "3293:10:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2060, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3293:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2063, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 2121, - "src": "3305:13:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2062, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3305:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2065, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 2121, - "src": "3320:10:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2064, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3320:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2067, - "name": "operation", + "id": 1023, + "name": "prevModule", "nodeType": "VariableDeclaration", - "scope": 2121, - "src": "3332:24:9", + "scope": 1071, + "src": "1925:17:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" + "typeIdentifier": "t_contract$_Module_$913", + "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 2066, - "name": "Enum.Operation", + "id": 1022, + "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 29, - "src": "3332:14:9", + "referencedDeclaration": 913, + "src": "1925:6:10", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" + "typeIdentifier": "t_contract$_Module_$913", + "typeString": "contract Module" } }, "value": null, @@ -8717,162 +5940,401 @@ }, { "constant": false, - "id": 2069, - "name": "txGas", - "nodeType": "VariableDeclaration", - "scope": 2121, - "src": "3358:13:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2068, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3358:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3292:80:9" - }, - "payable": false, - "returnParameters": { - "id": 2073, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2072, - "name": "success", + "id": 1025, + "name": "module", "nodeType": "VariableDeclaration", - "scope": 2121, - "src": "3407:12:9", + "scope": 1071, + "src": "1944:13:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_contract$_Module_$913", + "typeString": "contract Module" }, "typeName": { - "id": 2071, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3407:4:9", + "contractScope": null, + "id": 1024, + "name": "Module", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 913, + "src": "1944:6:10", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_contract$_Module_$913", + "typeString": "contract Module" } }, "value": null, "visibility": "internal" } ], - "src": "3406:14:9" + "src": "1924:34:10" + }, + "payable": false, + "returnParameters": { + "id": 1029, + "nodeType": "ParameterList", + "parameters": [], + "src": "1997:0:10" }, - "scope": 2232, - "src": "3276:548:9", + "scope": 1180, + "src": "1902:474:10", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 2135, + "id": 1105, "nodeType": "Block", - "src": "3957:182:9", + "src": "2862:279:10", "statements": [ { - "externalReferences": [ - { - "data": { - "declaration": 2127, - "isOffset": false, - "isSlot": false, - "src": "4111:4:9", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 2127, - "isOffset": false, - "isSlot": false, - "src": "4092:4:9", - "valueSize": 1 + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1085, + "name": "modules", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 938, + "src": "2929:7:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 1088, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1086, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "2937:3:10", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2937:10:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2929:19:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1089, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2952:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2929:24:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d20616e20656e61626c6564206d6f64756c65", + "id": 1091, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2955:50:10", + "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" } - }, - { - "success": { - "declaration": 2132, - "isOffset": false, - "isSlot": false, - "src": "4054:7:9", - "valueSize": 1 + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cd36462b17a97c5a3df33333c859d5933a4fb7f5e1a0750f5def8eb51f3272e4", + "typeString": "literal_string \"Method can only be called from an enabled module\"" + } + ], + "id": 1084, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3832, + "src": "2921:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" } }, - { - "txGas": { - "declaration": 2129, - "isOffset": false, - "isSlot": false, - "src": "4070:5:9", - "valueSize": 1 + "id": 1092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2921:85:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1093, + "nodeType": "ExpressionStatement", + "src": "2921:85:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 1103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1094, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1082, + "src": "3078:7:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - { - "to": { - "declaration": 2123, - "isOffset": false, - "isSlot": false, - "src": "4077:2:9", - "valueSize": 1 + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1096, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1073, + "src": "3096:2:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1097, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1075, + "src": "3100:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1098, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1077, + "src": "3107:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 1099, + "name": "operation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1079, + "src": "3113:9:10", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + } + }, + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1100, + "name": "gasleft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3821, + "src": "3124:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 1101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3124:9:10", + "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_$29", + "typeString": "enum Enum.Operation" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1095, + "name": "execute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 115, + "src": "3088:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)" + } + }, + "id": 1102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3088:46:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - { - "value": { - "declaration": 2125, - "isOffset": false, - "isSlot": false, - "src": "4081:5:9", - "valueSize": 1 - } + "src": "3078:56:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" } - ], - "id": 2134, - "nodeType": "InlineAssembly", - "operations": "{\n success := call(txGas, to, value, add(data, 0x20), mload(data), 0, 0)\n}", - "src": "4031:108:9" + }, + "id": 1104, + "nodeType": "ExpressionStatement", + "src": "3078:56:10" } ] }, - "documentation": null, - "id": 2136, + "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": 1106, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "executeCall", + "name": "execTransactionFromModule", "nodeType": "FunctionDefinition", "parameters": { - "id": 2130, + "id": 1080, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2123, + "id": 1073, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2136, - "src": "3851:10:9", + "scope": 1106, + "src": "2747:10:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8880,10 +6342,10 @@ "typeString": "address" }, "typeName": { - "id": 2122, + "id": 1072, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3851:7:9", + "src": "2747:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8894,63 +6356,11 @@ }, { "constant": false, - "id": 2125, + "id": 1075, "name": "value", "nodeType": "VariableDeclaration", - "scope": 2136, - "src": "3863:13:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2124, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3863:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2127, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 2136, - "src": "3878:10:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2126, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3878:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2129, - "name": "txGas", - "nodeType": "VariableDeclaration", - "scope": 2136, - "src": "3890:13:9", + "scope": 1106, + "src": "2759:13:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8958,10 +6368,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2128, + "id": 1074, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3890:7:9", + "src": "2759:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8969,156 +6379,14 @@ }, "value": null, "visibility": "internal" - } - ], - "src": "3850:54:9" - }, - "payable": false, - "returnParameters": { - "id": 2133, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2132, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 2136, - "src": "3939:12:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2131, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3939:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3938:14:9" - }, - "scope": 2232, - "src": "3830:309:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 2148, - "nodeType": "Block", - "src": "4265:183:9", - "statements": [ - { - "externalReferences": [ - { - "data": { - "declaration": 2140, - "isOffset": false, - "isSlot": false, - "src": "4420:4:9", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 2140, - "isOffset": false, - "isSlot": false, - "src": "4401:4:9", - "valueSize": 1 - } - }, - { - "success": { - "declaration": 2145, - "isOffset": false, - "isSlot": false, - "src": "4362:7:9", - "valueSize": 1 - } - }, - { - "txGas": { - "declaration": 2142, - "isOffset": false, - "isSlot": false, - "src": "4386:5:9", - "valueSize": 1 - } - }, - { - "to": { - "declaration": 2138, - "isOffset": false, - "isSlot": false, - "src": "4393:2:9", - "valueSize": 1 - } - } - ], - "id": 2147, - "nodeType": "InlineAssembly", - "operations": "{\n success := delegatecall(txGas, to, add(data, 0x20), mload(data), 0, 0)\n}", - "src": "4339:109:9" - } - ] - }, - "documentation": null, - "id": 2149, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "executeDelegateCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2143, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2138, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 2149, - "src": "4174:10:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2137, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4174:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" }, { "constant": false, - "id": 2140, + "id": 1077, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2149, - "src": "4186:10:9", + "scope": 1106, + "src": "2774:10:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9126,10 +6394,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2139, + "id": 1076, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "4186:5:9", + "src": "2774:5:10", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -9140,45 +6408,47 @@ }, { "constant": false, - "id": 2142, - "name": "txGas", + "id": 1079, + "name": "operation", "nodeType": "VariableDeclaration", - "scope": 2149, - "src": "4198:13:9", + "scope": 1106, + "src": "2786:24:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" }, "typeName": { - "id": 2141, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4198:7:9", + "contractScope": null, + "id": 1078, + "name": "Enum.Operation", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 29, + "src": "2786:14:10", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" } }, "value": null, "visibility": "internal" } ], - "src": "4173:39:9" + "src": "2746:65:10" }, "payable": false, "returnParameters": { - "id": 2146, + "id": 1083, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2145, + "id": 1082, "name": "success", "nodeType": "VariableDeclaration", - "scope": 2149, - "src": "4247:12:9", + "scope": 1106, + "src": "2844:12:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9186,10 +6456,10 @@ "typeString": "bool" }, "typeName": { - "id": 2144, + "id": 1081, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4247:4:9", + "src": "2844:4:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9199,156 +6469,32 @@ "visibility": "internal" } ], - "src": "4246:14:9" - }, - "scope": 2232, - "src": "4145:303:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 2157, - "nodeType": "Block", - "src": "4548:167:9", - "statements": [ - { - "externalReferences": [ - { - "newContract": { - "declaration": 2154, - "isOffset": false, - "isSlot": false, - "src": "4645:11:9", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 2151, - "isOffset": false, - "isSlot": false, - "src": "4674:4:9", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 2151, - "isOffset": false, - "isSlot": false, - "src": "4693:4:9", - "valueSize": 1 - } - } - ], - "id": 2156, - "nodeType": "InlineAssembly", - "operations": "{\n newContract := create(0, add(data, 0x20), mload(data))\n}", - "src": "4622:93:9" - } - ] - }, - "documentation": null, - "id": 2158, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "executeCreate", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2152, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2151, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 2158, - "src": "4477:10:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2150, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4477:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4476:12:9" - }, - "payable": false, - "returnParameters": { - "id": 2155, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2154, - "name": "newContract", - "nodeType": "VariableDeclaration", - "scope": 2158, - "src": "4523:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2153, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4523:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4522:21:9" + "src": "2843:14:10" }, - "scope": 2232, - "src": "4454:261:9", + "scope": 1180, + "src": "2712:429:10", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 2230, + "id": 1178, "nodeType": "Block", - "src": "4876:656:9", + "src": "3302:656:10", "statements": [ { "assignments": [ - 2165 + 1113 ], "declarations": [ { "constant": false, - "id": 2165, + "id": 1113, "name": "moduleCount", "nodeType": "VariableDeclaration", - "scope": 2231, - "src": "4920:19:9", + "scope": 1179, + "src": "3346:19:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9356,10 +6502,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2164, + "id": 1112, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4920:7:9", + "src": "3346:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9369,18 +6515,18 @@ "visibility": "internal" } ], - "id": 2167, + "id": 1115, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 2166, + "id": 1114, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4942:1:9", + "src": "3368:1:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -9389,20 +6535,20 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "4920:23:9" + "src": "3346:23:10" }, { "assignments": [ - 2169 + 1117 ], "declarations": [ { "constant": false, - "id": 2169, + "id": 1117, "name": "currentModule", "nodeType": "VariableDeclaration", - "scope": 2231, - "src": "4953:21:9", + "scope": 1179, + "src": "3379:21:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9410,10 +6556,10 @@ "typeString": "address" }, "typeName": { - "id": 2168, + "id": 1116, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4953:7:9", + "src": "3379:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9423,31 +6569,31 @@ "visibility": "internal" } ], - "id": 2173, + "id": 1121, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2170, + "id": 1118, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1887, - "src": "4977:7:9", + "referencedDeclaration": 938, + "src": "3403:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2172, + "id": 1120, "indexExpression": { "argumentTypes": null, - "id": 2171, + "id": 1119, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1883, - "src": "4985:16:9", + "referencedDeclaration": 934, + "src": "3411:16:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9458,37 +6604,37 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4977:25:9", + "src": "3403:25:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "4953:49:9" + "src": "3379:49:10" }, { "body": { - "id": 2186, + "id": 1134, "nodeType": "Block", - "src": "5053:91:9", + "src": "3479:91:10", "statements": [ { "expression": { "argumentTypes": null, - "id": 2181, + "id": 1129, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2177, + "id": 1125, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2169, - "src": "5067:13:9", + "referencedDeclaration": 1117, + "src": "3493:13:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9500,26 +6646,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2178, + "id": 1126, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1887, - "src": "5083:7:9", + "referencedDeclaration": 938, + "src": "3509:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2180, + "id": 1128, "indexExpression": { "argumentTypes": null, - "id": 2179, + "id": 1127, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2169, - "src": "5091:13:9", + "referencedDeclaration": 1117, + "src": "3517:13:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9530,26 +6676,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5083:22:9", + "src": "3509:22:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5067:38:9", + "src": "3493:38:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2182, + "id": 1130, "nodeType": "ExpressionStatement", - "src": "5067:38:9" + "src": "3493:38:10" }, { "expression": { "argumentTypes": null, - "id": 2184, + "id": 1132, "isConstant": false, "isLValue": false, "isPure": false, @@ -9557,15 +6703,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "5119:14:9", + "src": "3545:14:10", "subExpression": { "argumentTypes": null, - "id": 2183, + "id": 1131, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2165, - "src": "5119:11:9", + "referencedDeclaration": 1113, + "src": "3545:11:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9576,9 +6722,9 @@ "typeString": "uint256" } }, - "id": 2185, + "id": 1133, "nodeType": "ExpressionStatement", - "src": "5119:14:9" + "src": "3545:14:10" } ] }, @@ -9588,19 +6734,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2176, + "id": 1124, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2174, + "id": 1122, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2169, - "src": "5018:13:9", + "referencedDeclaration": 1117, + "src": "3444:13:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9610,39 +6756,39 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 2175, + "id": 1123, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1883, - "src": "5035:16:9", + "referencedDeclaration": 934, + "src": "3461:16:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5018:33:9", + "src": "3444:33:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2187, + "id": 1135, "nodeType": "WhileStatement", - "src": "5012:132:9" + "src": "3438:132:10" }, { "assignments": [ - 2191 + 1139 ], "declarations": [ { "constant": false, - "id": 2191, + "id": 1139, "name": "array", "nodeType": "VariableDeclaration", - "scope": 2231, - "src": "5153:22:9", + "scope": 1179, + "src": "3579:22:10", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -9651,19 +6797,19 @@ }, "typeName": { "baseType": { - "id": 2189, + "id": 1137, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5153:7:9", + "src": "3579:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2190, + "id": 1138, "length": null, "nodeType": "ArrayTypeName", - "src": "5153:9:9", + "src": "3579:9:10", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -9673,18 +6819,18 @@ "visibility": "internal" } ], - "id": 2197, + "id": 1145, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2195, + "id": 1143, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2165, - "src": "5192:11:9", + "referencedDeclaration": 1113, + "src": "3618:11:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9698,39 +6844,39 @@ "typeString": "uint256" } ], - "id": 2194, + "id": 1142, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "5178:13:9", + "src": "3604:13:10", "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": 2192, + "id": 1140, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5182:7:9", + "src": "3608:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2193, + "id": 1141, "length": null, "nodeType": "ArrayTypeName", - "src": "5182:9:9", + "src": "3608:9:10", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } } }, - "id": 2196, + "id": 1144, "isConstant": false, "isLValue": false, "isPure": false, @@ -9738,31 +6884,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5178:26:9", + "src": "3604:26:10", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory", "typeString": "address[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "5153:51:9" + "src": "3579:51:10" }, { "expression": { "argumentTypes": null, - "id": 2200, + "id": 1148, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2198, + "id": 1146, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2165, - "src": "5248:11:9", + "referencedDeclaration": 1113, + "src": "3674:11:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9773,14 +6919,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 2199, + "id": 1147, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5262:1:9", + "src": "3688:1:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -9788,32 +6934,32 @@ }, "value": "0" }, - "src": "5248:15:9", + "src": "3674:15:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2201, + "id": 1149, "nodeType": "ExpressionStatement", - "src": "5248:15:9" + "src": "3674:15:10" }, { "expression": { "argumentTypes": null, - "id": 2206, + "id": 1154, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2202, + "id": 1150, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2169, - "src": "5273:13:9", + "referencedDeclaration": 1117, + "src": "3699:13:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9825,26 +6971,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2203, + "id": 1151, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1887, - "src": "5289:7:9", + "referencedDeclaration": 938, + "src": "3715:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2205, + "id": 1153, "indexExpression": { "argumentTypes": null, - "id": 2204, + "id": 1152, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1883, - "src": "5297:16:9", + "referencedDeclaration": 934, + "src": "3723:16:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9855,32 +7001,32 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5289:25:9", + "src": "3715:25:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5273:41:9", + "src": "3699:41:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2207, + "id": 1155, "nodeType": "ExpressionStatement", - "src": "5273:41:9" + "src": "3699:41:10" }, { "body": { - "id": 2226, + "id": 1174, "nodeType": "Block", - "src": "5365:139:9", + "src": "3791:139:10", "statements": [ { "expression": { "argumentTypes": null, - "id": 2215, + "id": 1163, "isConstant": false, "isLValue": false, "isPure": false, @@ -9889,26 +7035,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2211, + "id": 1159, "name": "array", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2191, - "src": "5379:5:9", + "referencedDeclaration": 1139, + "src": "3805:5:10", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2213, + "id": 1161, "indexExpression": { "argumentTypes": null, - "id": 2212, + "id": 1160, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2165, - "src": "5385:11:9", + "referencedDeclaration": 1113, + "src": "3811:11:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9919,7 +7065,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5379:18:9", + "src": "3805:18:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9929,43 +7075,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2214, + "id": 1162, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2169, - "src": "5400:13:9", + "referencedDeclaration": 1117, + "src": "3826:13:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5379:34:9", + "src": "3805:34:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2216, + "id": 1164, "nodeType": "ExpressionStatement", - "src": "5379:34:9" + "src": "3805:34:10" }, { "expression": { "argumentTypes": null, - "id": 2221, + "id": 1169, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2217, + "id": 1165, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2169, - "src": "5427:13:9", + "referencedDeclaration": 1117, + "src": "3853:13:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9977,26 +7123,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2218, + "id": 1166, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1887, - "src": "5443:7:9", + "referencedDeclaration": 938, + "src": "3869:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2220, + "id": 1168, "indexExpression": { "argumentTypes": null, - "id": 2219, + "id": 1167, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2169, - "src": "5451:13:9", + "referencedDeclaration": 1117, + "src": "3877:13:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10007,26 +7153,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5443:22:9", + "src": "3869:22:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5427:38:9", + "src": "3853:38:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2222, + "id": 1170, "nodeType": "ExpressionStatement", - "src": "5427:38:9" + "src": "3853:38:10" }, { "expression": { "argumentTypes": null, - "id": 2224, + "id": 1172, "isConstant": false, "isLValue": false, "isPure": false, @@ -10034,15 +7180,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "5479:14:9", + "src": "3905:14:10", "subExpression": { "argumentTypes": null, - "id": 2223, + "id": 1171, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2165, - "src": "5479:11:9", + "referencedDeclaration": 1113, + "src": "3905:11:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10053,9 +7199,9 @@ "typeString": "uint256" } }, - "id": 2225, + "id": 1173, "nodeType": "ExpressionStatement", - "src": "5479:14:9" + "src": "3905:14:10" } ] }, @@ -10065,19 +7211,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2210, + "id": 1158, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2208, + "id": 1156, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2169, - "src": "5330:13:9", + "referencedDeclaration": 1117, + "src": "3756:13:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10087,50 +7233,50 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 2209, + "id": 1157, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1883, - "src": "5347:16:9", + "referencedDeclaration": 934, + "src": "3773:16:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5330:33:9", + "src": "3756:33:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2227, + "id": 1175, "nodeType": "WhileStatement", - "src": "5324:180:9" + "src": "3750:180:10" }, { "expression": { "argumentTypes": null, - "id": 2228, + "id": 1176, "name": "array", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2191, - "src": "5520:5:9", + "referencedDeclaration": 1139, + "src": "3946:5:10", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "functionReturnParameters": 2163, - "id": 2229, + "functionReturnParameters": 1111, + "id": 1177, "nodeType": "Return", - "src": "5513:12:9" + "src": "3939:12:10" } ] }, "documentation": "@dev Returns array of modules.\n @return Array of modules.", - "id": 2231, + "id": 1179, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -10138,23 +7284,23 @@ "name": "getModules", "nodeType": "FunctionDefinition", "parameters": { - "id": 2159, + "id": 1107, "nodeType": "ParameterList", "parameters": [], - "src": "4813:2:9" + "src": "3239:2:10" }, "payable": false, "returnParameters": { - "id": 2163, + "id": 1111, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2162, + "id": 1110, "name": "", "nodeType": "VariableDeclaration", - "scope": 2231, - "src": "4861:9:9", + "scope": 1179, + "src": "3287:9:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10163,19 +7309,19 @@ }, "typeName": { "baseType": { - "id": 2160, + "id": 1108, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4861:7:9", + "src": "3287:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2161, + "id": 1109, "length": null, "nodeType": "ArrayTypeName", - "src": "4861:9:9", + "src": "3287:9:10", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -10185,20 +7331,20 @@ "visibility": "internal" } ], - "src": "4860:11:9" + "src": "3286:11:10" }, - "scope": 2232, - "src": "4794:738:9", + "scope": 1180, + "src": "3220:738:10", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 2233, - "src": "303:5231:9" + "scope": 1181, + "src": "332:3628:10" } ], - "src": "0:5535:9" + "src": "0:3961:10" }, "compiler": { "name": "solc", @@ -10206,5 +7352,5 @@ }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-06-29T09:01:22.064Z" + "updatedAt": "2018-08-20T07:44:41.088Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/MultiSend.json b/safe-contracts/build/contracts/MultiSend.json index a221e4f9de..fea297e21b 100644 --- a/safe-contracts/build/contracts/MultiSend.json +++ b/safe-contracts/build/contracts/MultiSend.json @@ -26,14 +26,14 @@ "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/libraries/MultiSend.sol", "exportedSymbols": { "MultiSend": [ - 3176 + 1876 ] }, - "id": 3177, + "id": 1877, "nodeType": "SourceUnit", "nodes": [ { - "id": 3168, + "id": 1868, "literals": [ "solidity", "0.4", @@ -48,16 +48,16 @@ "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": 3176, + "id": 1876, "linearizedBaseContracts": [ - 3176 + 1876 ], "name": "MultiSend", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 3174, + "id": 1874, "nodeType": "Block", "src": "753:922:19", "statements": [ @@ -65,7 +65,7 @@ "externalReferences": [ { "transactions": { - "declaration": 3170, + "declaration": 1870, "isOffset": false, "isSlot": false, "src": "870:12:19", @@ -74,7 +74,7 @@ }, { "transactions": { - "declaration": 3170, + "declaration": 1870, "isOffset": false, "isSlot": false, "src": "993:12:19", @@ -83,7 +83,7 @@ }, { "transactions": { - "declaration": 3170, + "declaration": 1870, "isOffset": false, "isSlot": false, "src": "1047:12:19", @@ -92,7 +92,7 @@ }, { "transactions": { - "declaration": 3170, + "declaration": 1870, "isOffset": false, "isSlot": false, "src": "1188:12:19", @@ -101,7 +101,7 @@ }, { "transactions": { - "declaration": 3170, + "declaration": 1870, "isOffset": false, "isSlot": false, "src": "1115:12:19", @@ -110,7 +110,7 @@ }, { "transactions": { - "declaration": 3170, + "declaration": 1870, "isOffset": false, "isSlot": false, "src": "1249:12:19", @@ -118,7 +118,7 @@ } } ], - "id": 3173, + "id": 1873, "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:19" @@ -126,7 +126,7 @@ ] }, "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": 3175, + "id": 1875, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -134,15 +134,15 @@ "name": "multiSend", "nodeType": "FunctionDefinition", "parameters": { - "id": 3171, + "id": 1871, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3170, + "id": 1870, "name": "transactions", "nodeType": "VariableDeclaration", - "scope": 3175, + "scope": 1875, "src": "714:18:19", "stateVariable": false, "storageLocation": "default", @@ -151,7 +151,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3169, + "id": 1869, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "714:5:19", @@ -168,19 +168,19 @@ }, "payable": false, "returnParameters": { - "id": 3172, + "id": 1872, "nodeType": "ParameterList", "parameters": [], "src": "753:0:19" }, - "scope": 3176, + "scope": 1876, "src": "695:980:19", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 3177, + "scope": 1877, "src": "253:1424:19" } ], @@ -190,14 +190,14 @@ "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/libraries/MultiSend.sol", "exportedSymbols": { "MultiSend": [ - 3176 + 1876 ] }, - "id": 3177, + "id": 1877, "nodeType": "SourceUnit", "nodes": [ { - "id": 3168, + "id": 1868, "literals": [ "solidity", "0.4", @@ -212,16 +212,16 @@ "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": 3176, + "id": 1876, "linearizedBaseContracts": [ - 3176 + 1876 ], "name": "MultiSend", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 3174, + "id": 1874, "nodeType": "Block", "src": "753:922:19", "statements": [ @@ -229,7 +229,7 @@ "externalReferences": [ { "transactions": { - "declaration": 3170, + "declaration": 1870, "isOffset": false, "isSlot": false, "src": "870:12:19", @@ -238,7 +238,7 @@ }, { "transactions": { - "declaration": 3170, + "declaration": 1870, "isOffset": false, "isSlot": false, "src": "993:12:19", @@ -247,7 +247,7 @@ }, { "transactions": { - "declaration": 3170, + "declaration": 1870, "isOffset": false, "isSlot": false, "src": "1047:12:19", @@ -256,7 +256,7 @@ }, { "transactions": { - "declaration": 3170, + "declaration": 1870, "isOffset": false, "isSlot": false, "src": "1188:12:19", @@ -265,7 +265,7 @@ }, { "transactions": { - "declaration": 3170, + "declaration": 1870, "isOffset": false, "isSlot": false, "src": "1115:12:19", @@ -274,7 +274,7 @@ }, { "transactions": { - "declaration": 3170, + "declaration": 1870, "isOffset": false, "isSlot": false, "src": "1249:12:19", @@ -282,7 +282,7 @@ } } ], - "id": 3173, + "id": 1873, "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:19" @@ -290,7 +290,7 @@ ] }, "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": 3175, + "id": 1875, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -298,15 +298,15 @@ "name": "multiSend", "nodeType": "FunctionDefinition", "parameters": { - "id": 3171, + "id": 1871, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3170, + "id": 1870, "name": "transactions", "nodeType": "VariableDeclaration", - "scope": 3175, + "scope": 1875, "src": "714:18:19", "stateVariable": false, "storageLocation": "default", @@ -315,7 +315,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3169, + "id": 1869, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "714:5:19", @@ -332,19 +332,19 @@ }, "payable": false, "returnParameters": { - "id": 3172, + "id": 1872, "nodeType": "ParameterList", "parameters": [], "src": "753:0:19" }, - "scope": 3176, + "scope": 1876, "src": "695:980:19", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 3177, + "scope": 1877, "src": "253:1424:19" } ], @@ -358,28 +358,16 @@ "4": { "events": {}, "links": {}, - "address": "0x7115893bc1477bc22f127bc2d82fcb4dd99e5838", - "transactionHash": "0x1f321cf880f5ec5b189cb1ac1c1c1b71ef8d854fc059c345fea6e6129bb19645" + "address": "0x3a29cf32d22f38b7338874b689a88f185663a1c3", + "transactionHash": "0x86b6895207dff0b3e19c202e140dc9cf823cbfc02672e02636af23a1b580e7e7" }, - "1530013596495": { + "1534750848541": { "events": {}, "links": {}, - "address": "0x18a8eaa498a58752858e5a912c8ff136b0bc6c69", - "transactionHash": "0x7da393438ee13b991e6d94278addb64e86b0c13101efb8a0f0f00d9f86ba51d0" - }, - "1530525742205": { - "events": {}, - "links": {}, - "address": "0x0a25374d1738169d8653e6ee01f464bf4cdc8dea", - "transactionHash": "0x2d7f72a94ced345c372040faa1f51a51f3e8da27a02dd04b9eefef487de3ba05" - }, - "1530611935189": { - "events": {}, - "links": {}, - "address": "0x0b98f9d8fbd164d8d4884a997a3ef8e7275d5e0e", - "transactionHash": "0x2d7f72a94ced345c372040faa1f51a51f3e8da27a02dd04b9eefef487de3ba05" + "address": "0x5b9b42d6e4b2e4bf8d42eba32d46918e10899b66", + "transactionHash": "0xaf733882096b301ccf5bf4a12ebf84616b88927c71cc656cc037fbd892a24104" } }, "schemaVersion": "2.0.0", - "updatedAt": "2018-07-03T09:59:18.515Z" + "updatedAt": "2018-08-20T07:50:29.677Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/OwnerManager.json b/safe-contracts/build/contracts/OwnerManager.json index 9e4bf0fb2d..71f32af416 100644 --- a/safe-contracts/build/contracts/OwnerManager.json +++ b/safe-contracts/build/contracts/OwnerManager.json @@ -149,14 +149,14 @@ "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", "exportedSymbols": { "OwnerManager": [ - 2888 + 1588 ] }, - "id": 2889, + "id": 1589, "nodeType": "SourceUnit", "nodes": [ { - "id": 2482, + "id": 1182, "literals": [ "solidity", "0.4", @@ -168,10 +168,10 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SelfAuthorized.sol", "file": "./SelfAuthorized.sol", - "id": 2483, + "id": 1183, "nodeType": "ImportDirective", - "scope": 2889, - "sourceUnit": 3066, + "scope": 1589, + "sourceUnit": 1766, "src": "24:30:11", "symbolAliases": [], "unitAlias": "" @@ -182,41 +182,41 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2484, + "id": 1184, "name": "SelfAuthorized", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3065, + "referencedDeclaration": 1765, "src": "265:14:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$3065", + "typeIdentifier": "t_contract$_SelfAuthorized_$1765", "typeString": "contract SelfAuthorized" } }, - "id": 2485, + "id": 1185, "nodeType": "InheritanceSpecifier", "src": "265:14:11" } ], "contractDependencies": [ - 3065 + 1765 ], "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": 2888, + "id": 1588, "linearizedBaseContracts": [ - 2888, - 3065 + 1588, + 1765 ], "name": "OwnerManager", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 2490, + "id": 1190, "name": "SENTINEL_OWNERS", "nodeType": "VariableDeclaration", - "scope": 2888, + "scope": 1588, "src": "287:54:11", "stateVariable": true, "storageLocation": "default", @@ -225,7 +225,7 @@ "typeString": "address" }, "typeName": { - "id": 2486, + "id": 1186, "name": "address", "nodeType": "ElementaryTypeName", "src": "287:7:11", @@ -240,7 +240,7 @@ { "argumentTypes": null, "hexValue": "307831", - "id": 2488, + "id": 1188, "isConstant": false, "isLValue": false, "isPure": true, @@ -263,7 +263,7 @@ "typeString": "int_const 1" } ], - "id": 2487, + "id": 1187, "isConstant": false, "isLValue": false, "isPure": true, @@ -276,7 +276,7 @@ }, "typeName": "address" }, - "id": 2489, + "id": 1189, "isConstant": false, "isLValue": false, "isPure": true, @@ -294,10 +294,10 @@ }, { "constant": false, - "id": 2494, + "id": 1194, "name": "owners", "nodeType": "VariableDeclaration", - "scope": 2888, + "scope": 1588, "src": "348:43:11", "stateVariable": true, "storageLocation": "default", @@ -306,9 +306,9 @@ "typeString": "mapping(address => address)" }, "typeName": { - "id": 2493, + "id": 1193, "keyType": { - "id": 2491, + "id": 1191, "name": "address", "nodeType": "ElementaryTypeName", "src": "356:7:11", @@ -324,7 +324,7 @@ "typeString": "mapping(address => address)" }, "valueType": { - "id": 2492, + "id": 1192, "name": "address", "nodeType": "ElementaryTypeName", "src": "367:7:11", @@ -339,10 +339,10 @@ }, { "constant": false, - "id": 2496, + "id": 1196, "name": "ownerCount", "nodeType": "VariableDeclaration", - "scope": 2888, + "scope": 1588, "src": "397:18:11", "stateVariable": true, "storageLocation": "default", @@ -351,7 +351,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2495, + "id": 1195, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "397:7:11", @@ -365,10 +365,10 @@ }, { "constant": false, - "id": 2498, + "id": 1198, "name": "threshold", "nodeType": "VariableDeclaration", - "scope": 2888, + "scope": 1588, "src": "421:26:11", "stateVariable": true, "storageLocation": "default", @@ -377,7 +377,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2497, + "id": 1197, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "421:7:11", @@ -391,7 +391,7 @@ }, { "body": { - "id": 2596, + "id": 1296, "nodeType": "Block", "src": "724:1129:11", "statements": [ @@ -405,18 +405,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2509, + "id": 1209, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2507, + "id": 1207, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2498, + "referencedDeclaration": 1198, "src": "866:9:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -428,7 +428,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2508, + "id": 1208, "isConstant": false, "isLValue": false, "isPure": true, @@ -452,7 +452,7 @@ { "argumentTypes": null, "hexValue": "4f776e657273206861766520616c7265616479206265656e207365747570", - "id": 2510, + "id": 1210, "isConstant": false, "isLValue": false, "isPure": true, @@ -479,21 +479,21 @@ "typeString": "literal_string \"Owners have already been setup\"" } ], - "id": 2506, + "id": 1206, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "858:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2511, + "id": 1211, "isConstant": false, "isLValue": false, "isPure": false, @@ -507,7 +507,7 @@ "typeString": "tuple()" } }, - "id": 2512, + "id": 1212, "nodeType": "ExpressionStatement", "src": "858:57:11" }, @@ -521,18 +521,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2517, + "id": 1217, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2514, + "id": 1214, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2503, + "referencedDeclaration": 1203, "src": "1008:10:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -545,18 +545,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2515, + "id": 1215, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2501, + "referencedDeclaration": 1201, "src": "1022:7:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2516, + "id": 1216, "isConstant": false, "isLValue": false, "isPure": false, @@ -579,7 +579,7 @@ { "argumentTypes": null, "hexValue": "5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f756e74", - "id": 2518, + "id": 1218, "isConstant": false, "isLValue": false, "isPure": true, @@ -606,21 +606,21 @@ "typeString": "literal_string \"Threshold cannot exceed owner count\"" } ], - "id": 2513, + "id": 1213, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "1000:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2519, + "id": 1219, "isConstant": false, "isLValue": false, "isPure": false, @@ -634,7 +634,7 @@ "typeString": "tuple()" } }, - "id": 2520, + "id": 1220, "nodeType": "ExpressionStatement", "src": "1000:76:11" }, @@ -648,18 +648,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2524, + "id": 1224, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2522, + "id": 1222, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2503, + "referencedDeclaration": 1203, "src": "1146:10:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -671,7 +671,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 2523, + "id": 1223, "isConstant": false, "isLValue": false, "isPure": true, @@ -695,7 +695,7 @@ { "argumentTypes": null, "hexValue": "5468726573686f6c64206e6565647320746f2062652067726561746572207468616e2030", - "id": 2525, + "id": 1225, "isConstant": false, "isLValue": false, "isPure": true, @@ -722,21 +722,21 @@ "typeString": "literal_string \"Threshold needs to be greater than 0\"" } ], - "id": 2521, + "id": 1221, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "1138:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2526, + "id": 1226, "isConstant": false, "isLValue": false, "isPure": false, @@ -750,21 +750,21 @@ "typeString": "tuple()" } }, - "id": 2527, + "id": 1227, "nodeType": "ExpressionStatement", "src": "1138:64:11" }, { "assignments": [ - 2529 + 1229 ], "declarations": [ { "constant": false, - "id": 2529, + "id": 1229, "name": "currentOwner", "nodeType": "VariableDeclaration", - "scope": 2597, + "scope": 1297, "src": "1249:20:11", "stateVariable": false, "storageLocation": "default", @@ -773,7 +773,7 @@ "typeString": "address" }, "typeName": { - "id": 2528, + "id": 1228, "name": "address", "nodeType": "ElementaryTypeName", "src": "1249:7:11", @@ -786,14 +786,14 @@ "visibility": "internal" } ], - "id": 2531, + "id": 1231, "initialValue": { "argumentTypes": null, - "id": 2530, + "id": 1230, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2490, + "referencedDeclaration": 1190, "src": "1272:15:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -805,21 +805,21 @@ }, { "body": { - "id": 2579, + "id": 1279, "nodeType": "Block", "src": "1342:388:11", "statements": [ { "assignments": [ - 2544 + 1244 ], "declarations": [ { "constant": false, - "id": 2544, + "id": 1244, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 2597, + "scope": 1297, "src": "1401:13:11", "stateVariable": false, "storageLocation": "default", @@ -828,7 +828,7 @@ "typeString": "address" }, "typeName": { - "id": 2543, + "id": 1243, "name": "address", "nodeType": "ElementaryTypeName", "src": "1401:7:11", @@ -841,30 +841,30 @@ "visibility": "internal" } ], - "id": 2548, + "id": 1248, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2545, + "id": 1245, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2501, + "referencedDeclaration": 1201, "src": "1417:7:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2547, + "id": 1247, "indexExpression": { "argumentTypes": null, - "id": 2546, + "id": 1246, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2533, + "referencedDeclaration": 1233, "src": "1425:1:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -895,7 +895,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 2556, + "id": 1256, "isConstant": false, "isLValue": false, "isPure": false, @@ -906,18 +906,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2552, + "id": 1252, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2550, + "id": 1250, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2544, + "referencedDeclaration": 1244, "src": "1449:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -929,7 +929,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2551, + "id": 1251, "isConstant": false, "isLValue": false, "isPure": true, @@ -958,18 +958,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2555, + "id": 1255, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2553, + "id": 1253, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2544, + "referencedDeclaration": 1244, "src": "1463:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -980,11 +980,11 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 2554, + "id": 1254, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2490, + "referencedDeclaration": 1190, "src": "1472:15:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1006,7 +1006,7 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 2557, + "id": 1257, "isConstant": false, "isLValue": false, "isPure": true, @@ -1033,21 +1033,21 @@ "typeString": "literal_string \"Invalid owner address provided\"" } ], - "id": 2549, + "id": 1249, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "1441:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2558, + "id": 1258, "isConstant": false, "isLValue": false, "isPure": false, @@ -1061,7 +1061,7 @@ "typeString": "tuple()" } }, - "id": 2559, + "id": 1259, "nodeType": "ExpressionStatement", "src": "1441:81:11" }, @@ -1075,7 +1075,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2565, + "id": 1265, "isConstant": false, "isLValue": false, "isPure": false, @@ -1084,25 +1084,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2561, + "id": 1261, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, + "referencedDeclaration": 1194, "src": "1588:6:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2563, + "id": 1263, "indexExpression": { "argumentTypes": null, - "id": 2562, + "id": 1262, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2544, + "referencedDeclaration": 1244, "src": "1595:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1125,7 +1125,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2564, + "id": 1264, "isConstant": false, "isLValue": false, "isPure": true, @@ -1149,7 +1149,7 @@ { "argumentTypes": null, "hexValue": "4475706c6963617465206f776e657220616464726573732070726f7669646564", - "id": 2566, + "id": 1266, "isConstant": false, "isLValue": false, "isPure": true, @@ -1176,21 +1176,21 @@ "typeString": "literal_string \"Duplicate owner address provided\"" } ], - "id": 2560, + "id": 1260, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "1580:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2567, + "id": 1267, "isConstant": false, "isLValue": false, "isPure": false, @@ -1204,14 +1204,14 @@ "typeString": "tuple()" } }, - "id": 2568, + "id": 1268, "nodeType": "ExpressionStatement", "src": "1580:63:11" }, { "expression": { "argumentTypes": null, - "id": 2573, + "id": 1273, "isConstant": false, "isLValue": false, "isPure": false, @@ -1220,25 +1220,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2569, + "id": 1269, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, + "referencedDeclaration": 1194, "src": "1657:6:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2571, + "id": 1271, "indexExpression": { "argumentTypes": null, - "id": 2570, + "id": 1270, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2529, + "referencedDeclaration": 1229, "src": "1664:12:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1260,11 +1260,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2572, + "id": 1272, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2544, + "referencedDeclaration": 1244, "src": "1680:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1277,25 +1277,25 @@ "typeString": "address" } }, - "id": 2574, + "id": 1274, "nodeType": "ExpressionStatement", "src": "1657:28:11" }, { "expression": { "argumentTypes": null, - "id": 2577, + "id": 1277, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2575, + "id": 1275, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2529, + "referencedDeclaration": 1229, "src": "1699:12:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1306,11 +1306,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2576, + "id": 1276, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2544, + "referencedDeclaration": 1244, "src": "1714:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1323,7 +1323,7 @@ "typeString": "address" } }, - "id": 2578, + "id": 1278, "nodeType": "ExpressionStatement", "src": "1699:20:11" } @@ -1335,18 +1335,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2539, + "id": 1239, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2536, + "id": 1236, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2533, + "referencedDeclaration": 1233, "src": "1317:1:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1359,18 +1359,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2537, + "id": 1237, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2501, + "referencedDeclaration": 1201, "src": "1321:7:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2538, + "id": 1238, "isConstant": false, "isLValue": false, "isPure": false, @@ -1390,18 +1390,18 @@ "typeString": "bool" } }, - "id": 2580, + "id": 1280, "initializationExpression": { "assignments": [ - 2533 + 1233 ], "declarations": [ { "constant": false, - "id": 2533, + "id": 1233, "name": "i", "nodeType": "VariableDeclaration", - "scope": 2597, + "scope": 1297, "src": "1302:9:11", "stateVariable": false, "storageLocation": "default", @@ -1410,7 +1410,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2532, + "id": 1232, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1302:7:11", @@ -1423,11 +1423,11 @@ "visibility": "internal" } ], - "id": 2535, + "id": 1235, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 2534, + "id": 1234, "isConstant": false, "isLValue": false, "isPure": true, @@ -1448,7 +1448,7 @@ "loopExpression": { "expression": { "argumentTypes": null, - "id": 2541, + "id": 1241, "isConstant": false, "isLValue": false, "isPure": false, @@ -1459,11 +1459,11 @@ "src": "1337:3:11", "subExpression": { "argumentTypes": null, - "id": 2540, + "id": 1240, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2533, + "referencedDeclaration": 1233, "src": "1337:1:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1475,7 +1475,7 @@ "typeString": "uint256" } }, - "id": 2542, + "id": 1242, "nodeType": "ExpressionStatement", "src": "1337:3:11" }, @@ -1485,7 +1485,7 @@ { "expression": { "argumentTypes": null, - "id": 2585, + "id": 1285, "isConstant": false, "isLValue": false, "isPure": false, @@ -1494,25 +1494,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2581, + "id": 1281, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, + "referencedDeclaration": 1194, "src": "1739:6:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2583, + "id": 1283, "indexExpression": { "argumentTypes": null, - "id": 2582, + "id": 1282, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2529, + "referencedDeclaration": 1229, "src": "1746:12:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1534,11 +1534,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2584, + "id": 1284, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2490, + "referencedDeclaration": 1190, "src": "1762:15:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1551,25 +1551,25 @@ "typeString": "address" } }, - "id": 2586, + "id": 1286, "nodeType": "ExpressionStatement", "src": "1739:38:11" }, { "expression": { "argumentTypes": null, - "id": 2590, + "id": 1290, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2587, + "id": 1287, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2496, + "referencedDeclaration": 1196, "src": "1787:10:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1582,18 +1582,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2588, + "id": 1288, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2501, + "referencedDeclaration": 1201, "src": "1800:7:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2589, + "id": 1289, "isConstant": false, "isLValue": false, "isPure": false, @@ -1613,25 +1613,25 @@ "typeString": "uint256" } }, - "id": 2591, + "id": 1291, "nodeType": "ExpressionStatement", "src": "1787:27:11" }, { "expression": { "argumentTypes": null, - "id": 2594, + "id": 1294, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2592, + "id": 1292, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2498, + "referencedDeclaration": 1198, "src": "1824:9:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1642,11 +1642,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2593, + "id": 1293, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2503, + "referencedDeclaration": 1203, "src": "1836:10:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1659,14 +1659,14 @@ "typeString": "uint256" } }, - "id": 2595, + "id": 1295, "nodeType": "ExpressionStatement", "src": "1824:22:11" } ] }, "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": 2597, + "id": 1297, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1674,15 +1674,15 @@ "name": "setupOwners", "nodeType": "FunctionDefinition", "parameters": { - "id": 2504, + "id": 1204, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2501, + "id": 1201, "name": "_owners", "nodeType": "VariableDeclaration", - "scope": 2597, + "scope": 1297, "src": "664:17:11", "stateVariable": false, "storageLocation": "default", @@ -1692,7 +1692,7 @@ }, "typeName": { "baseType": { - "id": 2499, + "id": 1199, "name": "address", "nodeType": "ElementaryTypeName", "src": "664:7:11", @@ -1701,7 +1701,7 @@ "typeString": "address" } }, - "id": 2500, + "id": 1200, "length": null, "nodeType": "ArrayTypeName", "src": "664:9:11", @@ -1715,10 +1715,10 @@ }, { "constant": false, - "id": 2503, + "id": 1203, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 2597, + "scope": 1297, "src": "683:18:11", "stateVariable": false, "storageLocation": "default", @@ -1727,7 +1727,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2502, + "id": 1202, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "683:7:11", @@ -1744,12 +1744,12 @@ }, "payable": false, "returnParameters": { - "id": 2505, + "id": 1205, "nodeType": "ParameterList", "parameters": [], "src": "724:0:11" }, - "scope": 2888, + "scope": 1588, "src": "643:1210:11", "stateMutability": "nonpayable", "superFunction": null, @@ -1757,7 +1757,7 @@ }, { "body": { - "id": 2651, + "id": 1351, "nodeType": "Block", "src": "2197:491:11", "statements": [ @@ -1771,7 +1771,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 2613, + "id": 1313, "isConstant": false, "isLValue": false, "isPure": false, @@ -1782,18 +1782,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2609, + "id": 1309, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2607, + "id": 1307, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2599, + "referencedDeclaration": 1299, "src": "2256:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1805,7 +1805,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2608, + "id": 1308, "isConstant": false, "isLValue": false, "isPure": true, @@ -1834,18 +1834,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2612, + "id": 1312, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2610, + "id": 1310, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2599, + "referencedDeclaration": 1299, "src": "2270:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1856,11 +1856,11 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 2611, + "id": 1311, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2490, + "referencedDeclaration": 1190, "src": "2279:15:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1882,7 +1882,7 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 2614, + "id": 1314, "isConstant": false, "isLValue": false, "isPure": true, @@ -1909,21 +1909,21 @@ "typeString": "literal_string \"Invalid owner address provided\"" } ], - "id": 2606, + "id": 1306, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "2248:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2615, + "id": 1315, "isConstant": false, "isLValue": false, "isPure": false, @@ -1937,7 +1937,7 @@ "typeString": "tuple()" } }, - "id": 2616, + "id": 1316, "nodeType": "ExpressionStatement", "src": "2248:81:11" }, @@ -1951,7 +1951,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2622, + "id": 1322, "isConstant": false, "isLValue": false, "isPure": false, @@ -1960,25 +1960,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2618, + "id": 1318, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, + "referencedDeclaration": 1194, "src": "2387:6:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2620, + "id": 1320, "indexExpression": { "argumentTypes": null, - "id": 2619, + "id": 1319, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2599, + "referencedDeclaration": 1299, "src": "2394:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2001,7 +2001,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2621, + "id": 1321, "isConstant": false, "isLValue": false, "isPure": true, @@ -2025,7 +2025,7 @@ { "argumentTypes": null, "hexValue": "4164647265737320697320616c726561647920616e206f776e6572", - "id": 2623, + "id": 1323, "isConstant": false, "isLValue": false, "isPure": true, @@ -2052,21 +2052,21 @@ "typeString": "literal_string \"Address is already an owner\"" } ], - "id": 2617, + "id": 1317, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "2379:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2624, + "id": 1324, "isConstant": false, "isLValue": false, "isPure": false, @@ -2080,14 +2080,14 @@ "typeString": "tuple()" } }, - "id": 2625, + "id": 1325, "nodeType": "ExpressionStatement", "src": "2379:58:11" }, { "expression": { "argumentTypes": null, - "id": 2632, + "id": 1332, "isConstant": false, "isLValue": false, "isPure": false, @@ -2096,25 +2096,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2626, + "id": 1326, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, + "referencedDeclaration": 1194, "src": "2447:6:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2628, + "id": 1328, "indexExpression": { "argumentTypes": null, - "id": 2627, + "id": 1327, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2599, + "referencedDeclaration": 1299, "src": "2454:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2138,25 +2138,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2629, + "id": 1329, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, + "referencedDeclaration": 1194, "src": "2463:6:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2631, + "id": 1331, "indexExpression": { "argumentTypes": null, - "id": 2630, + "id": 1330, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2490, + "referencedDeclaration": 1190, "src": "2470:15:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2180,14 +2180,14 @@ "typeString": "address" } }, - "id": 2633, + "id": 1333, "nodeType": "ExpressionStatement", "src": "2447:39:11" }, { "expression": { "argumentTypes": null, - "id": 2638, + "id": 1338, "isConstant": false, "isLValue": false, "isPure": false, @@ -2196,25 +2196,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2634, + "id": 1334, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, + "referencedDeclaration": 1194, "src": "2496:6:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2636, + "id": 1336, "indexExpression": { "argumentTypes": null, - "id": 2635, + "id": 1335, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2490, + "referencedDeclaration": 1190, "src": "2503:15:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2236,11 +2236,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2637, + "id": 1337, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2599, + "referencedDeclaration": 1299, "src": "2522:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2253,14 +2253,14 @@ "typeString": "address" } }, - "id": 2639, + "id": 1339, "nodeType": "ExpressionStatement", "src": "2496:31:11" }, { "expression": { "argumentTypes": null, - "id": 2641, + "id": 1341, "isConstant": false, "isLValue": false, "isPure": false, @@ -2271,11 +2271,11 @@ "src": "2537:12:11", "subExpression": { "argumentTypes": null, - "id": 2640, + "id": 1340, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2496, + "referencedDeclaration": 1196, "src": "2537:10:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2287,7 +2287,7 @@ "typeString": "uint256" } }, - "id": 2642, + "id": 1342, "nodeType": "ExpressionStatement", "src": "2537:12:11" }, @@ -2298,18 +2298,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2645, + "id": 1345, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2643, + "id": 1343, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2498, + "referencedDeclaration": 1198, "src": "2617:9:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2320,11 +2320,11 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 2644, + "id": 1344, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2601, + "referencedDeclaration": 1301, "src": "2630:10:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2338,7 +2338,7 @@ } }, "falseBody": null, - "id": 2650, + "id": 1350, "nodeType": "IfStatement", "src": "2613:68:11", "trueBody": { @@ -2347,11 +2347,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2647, + "id": 1347, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2601, + "referencedDeclaration": 1301, "src": "2670:10:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2366,18 +2366,18 @@ "typeString": "uint256" } ], - "id": 2646, + "id": 1346, "name": "changeThreshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2816, + "referencedDeclaration": 1516, "src": "2654:15:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 2648, + "id": 1348, "isConstant": false, "isLValue": false, "isPure": false, @@ -2391,7 +2391,7 @@ "typeString": "tuple()" } }, - "id": 2649, + "id": 1349, "nodeType": "ExpressionStatement", "src": "2654:27:11" } @@ -2399,21 +2399,21 @@ ] }, "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": 2652, + "id": 1352, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2604, + "id": 1304, "modifierName": { "argumentTypes": null, - "id": 2603, + "id": 1303, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3064, + "referencedDeclaration": 1764, "src": "2182:10:11", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -2427,15 +2427,15 @@ "name": "addOwnerWithThreshold", "nodeType": "FunctionDefinition", "parameters": { - "id": 2602, + "id": 1302, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2599, + "id": 1299, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 2652, + "scope": 1352, "src": "2124:13:11", "stateVariable": false, "storageLocation": "default", @@ -2444,7 +2444,7 @@ "typeString": "address" }, "typeName": { - "id": 2598, + "id": 1298, "name": "address", "nodeType": "ElementaryTypeName", "src": "2124:7:11", @@ -2458,10 +2458,10 @@ }, { "constant": false, - "id": 2601, + "id": 1301, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 2652, + "scope": 1352, "src": "2139:18:11", "stateVariable": false, "storageLocation": "default", @@ -2470,7 +2470,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2600, + "id": 1300, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2139:7:11", @@ -2487,12 +2487,12 @@ }, "payable": false, "returnParameters": { - "id": 2605, + "id": 1305, "nodeType": "ParameterList", "parameters": [], "src": "2197:0:11" }, - "scope": 2888, + "scope": 1588, "src": "2093:595:11", "stateMutability": "nonpayable", "superFunction": null, @@ -2500,7 +2500,7 @@ }, { "body": { - "id": 2717, + "id": 1417, "nodeType": "Block", "src": "3143:670:11", "statements": [ @@ -2514,7 +2514,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2668, + "id": 1368, "isConstant": false, "isLValue": false, "isPure": false, @@ -2525,18 +2525,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2666, + "id": 1366, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2664, + "id": 1364, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2496, + "referencedDeclaration": 1196, "src": "3238:10:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2548,7 +2548,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 2665, + "id": 1365, "isConstant": false, "isLValue": false, "isPure": true, @@ -2573,11 +2573,11 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 2667, + "id": 1367, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2658, + "referencedDeclaration": 1358, "src": "3256:10:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2593,7 +2593,7 @@ { "argumentTypes": null, "hexValue": "4e6577206f776e657220636f756e74206e6565647320746f206265206c6172676572207468616e206e6577207468726573686f6c64", - "id": 2669, + "id": 1369, "isConstant": false, "isLValue": false, "isPure": true, @@ -2620,21 +2620,21 @@ "typeString": "literal_string \"New owner count needs to be larger than new threshold\"" } ], - "id": 2663, + "id": 1363, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "3230:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2670, + "id": 1370, "isConstant": false, "isLValue": false, "isPure": false, @@ -2648,7 +2648,7 @@ "typeString": "tuple()" } }, - "id": 2671, + "id": 1371, "nodeType": "ExpressionStatement", "src": "3230:94:11" }, @@ -2662,7 +2662,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 2679, + "id": 1379, "isConstant": false, "isLValue": false, "isPure": false, @@ -2673,18 +2673,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2675, + "id": 1375, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2673, + "id": 1373, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2656, + "referencedDeclaration": 1356, "src": "3422:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2696,7 +2696,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2674, + "id": 1374, "isConstant": false, "isLValue": false, "isPure": true, @@ -2725,18 +2725,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2678, + "id": 1378, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2676, + "id": 1376, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2656, + "referencedDeclaration": 1356, "src": "3436:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2747,11 +2747,11 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 2677, + "id": 1377, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2490, + "referencedDeclaration": 1190, "src": "3445:15:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2773,7 +2773,7 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 2680, + "id": 1380, "isConstant": false, "isLValue": false, "isPure": true, @@ -2800,21 +2800,21 @@ "typeString": "literal_string \"Invalid owner address provided\"" } ], - "id": 2672, + "id": 1372, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "3414:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2681, + "id": 1381, "isConstant": false, "isLValue": false, "isPure": false, @@ -2828,7 +2828,7 @@ "typeString": "tuple()" } }, - "id": 2682, + "id": 1382, "nodeType": "ExpressionStatement", "src": "3414:81:11" }, @@ -2842,7 +2842,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2688, + "id": 1388, "isConstant": false, "isLValue": false, "isPure": false, @@ -2851,25 +2851,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2684, + "id": 1384, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, + "referencedDeclaration": 1194, "src": "3513:6:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2686, + "id": 1386, "indexExpression": { "argumentTypes": null, - "id": 2685, + "id": 1385, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2654, + "referencedDeclaration": 1354, "src": "3520:9:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2891,11 +2891,11 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 2687, + "id": 1387, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2656, + "referencedDeclaration": 1356, "src": "3534:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2911,7 +2911,7 @@ { "argumentTypes": null, "hexValue": "496e76616c696420707265764f776e65722c206f776e657220706169722070726f7669646564", - "id": 2689, + "id": 1389, "isConstant": false, "isLValue": false, "isPure": true, @@ -2938,21 +2938,21 @@ "typeString": "literal_string \"Invalid prevOwner, owner pair provided\"" } ], - "id": 2683, + "id": 1383, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "3505:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2690, + "id": 1390, "isConstant": false, "isLValue": false, "isPure": false, @@ -2966,14 +2966,14 @@ "typeString": "tuple()" } }, - "id": 2691, + "id": 1391, "nodeType": "ExpressionStatement", "src": "3505:77:11" }, { "expression": { "argumentTypes": null, - "id": 2698, + "id": 1398, "isConstant": false, "isLValue": false, "isPure": false, @@ -2982,25 +2982,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2692, + "id": 1392, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, + "referencedDeclaration": 1194, "src": "3592:6:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2694, + "id": 1394, "indexExpression": { "argumentTypes": null, - "id": 2693, + "id": 1393, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2654, + "referencedDeclaration": 1354, "src": "3599:9:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3024,25 +3024,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2695, + "id": 1395, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, + "referencedDeclaration": 1194, "src": "3612:6:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2697, + "id": 1397, "indexExpression": { "argumentTypes": null, - "id": 2696, + "id": 1396, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2656, + "referencedDeclaration": 1356, "src": "3619:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3066,14 +3066,14 @@ "typeString": "address" } }, - "id": 2699, + "id": 1399, "nodeType": "ExpressionStatement", "src": "3592:33:11" }, { "expression": { "argumentTypes": null, - "id": 2704, + "id": 1404, "isConstant": false, "isLValue": false, "isPure": false, @@ -3082,25 +3082,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2700, + "id": 1400, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, + "referencedDeclaration": 1194, "src": "3635:6:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2702, + "id": 1402, "indexExpression": { "argumentTypes": null, - "id": 2701, + "id": 1401, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2656, + "referencedDeclaration": 1356, "src": "3642:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3123,7 +3123,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 2703, + "id": 1403, "isConstant": false, "isLValue": false, "isPure": true, @@ -3144,14 +3144,14 @@ "typeString": "address" } }, - "id": 2705, + "id": 1405, "nodeType": "ExpressionStatement", "src": "3635:17:11" }, { "expression": { "argumentTypes": null, - "id": 2707, + "id": 1407, "isConstant": false, "isLValue": false, "isPure": false, @@ -3162,11 +3162,11 @@ "src": "3662:12:11", "subExpression": { "argumentTypes": null, - "id": 2706, + "id": 1406, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2496, + "referencedDeclaration": 1196, "src": "3662:10:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3178,7 +3178,7 @@ "typeString": "uint256" } }, - "id": 2708, + "id": 1408, "nodeType": "ExpressionStatement", "src": "3662:12:11" }, @@ -3189,18 +3189,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2711, + "id": 1411, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2709, + "id": 1409, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2498, + "referencedDeclaration": 1198, "src": "3742:9:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3211,11 +3211,11 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 2710, + "id": 1410, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2658, + "referencedDeclaration": 1358, "src": "3755:10:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3229,7 +3229,7 @@ } }, "falseBody": null, - "id": 2716, + "id": 1416, "nodeType": "IfStatement", "src": "3738:68:11", "trueBody": { @@ -3238,11 +3238,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2713, + "id": 1413, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2658, + "referencedDeclaration": 1358, "src": "3795:10:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3257,18 +3257,18 @@ "typeString": "uint256" } ], - "id": 2712, + "id": 1412, "name": "changeThreshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2816, + "referencedDeclaration": 1516, "src": "3779:15:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 2714, + "id": 1414, "isConstant": false, "isLValue": false, "isPure": false, @@ -3282,7 +3282,7 @@ "typeString": "tuple()" } }, - "id": 2715, + "id": 1415, "nodeType": "ExpressionStatement", "src": "3779:27:11" } @@ -3290,21 +3290,21 @@ ] }, "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": 2718, + "id": 1418, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2661, + "id": 1361, "modifierName": { "argumentTypes": null, - "id": 2660, + "id": 1360, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3064, + "referencedDeclaration": 1764, "src": "3128:10:11", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -3318,15 +3318,15 @@ "name": "removeOwner", "nodeType": "FunctionDefinition", "parameters": { - "id": 2659, + "id": 1359, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2654, + "id": 1354, "name": "prevOwner", "nodeType": "VariableDeclaration", - "scope": 2718, + "scope": 1418, "src": "3051:17:11", "stateVariable": false, "storageLocation": "default", @@ -3335,7 +3335,7 @@ "typeString": "address" }, "typeName": { - "id": 2653, + "id": 1353, "name": "address", "nodeType": "ElementaryTypeName", "src": "3051:7:11", @@ -3349,10 +3349,10 @@ }, { "constant": false, - "id": 2656, + "id": 1356, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 2718, + "scope": 1418, "src": "3070:13:11", "stateVariable": false, "storageLocation": "default", @@ -3361,7 +3361,7 @@ "typeString": "address" }, "typeName": { - "id": 2655, + "id": 1355, "name": "address", "nodeType": "ElementaryTypeName", "src": "3070:7:11", @@ -3375,10 +3375,10 @@ }, { "constant": false, - "id": 2658, + "id": 1358, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 2718, + "scope": 1418, "src": "3085:18:11", "stateVariable": false, "storageLocation": "default", @@ -3387,7 +3387,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2657, + "id": 1357, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3085:7:11", @@ -3404,12 +3404,12 @@ }, "payable": false, "returnParameters": { - "id": 2662, + "id": 1362, "nodeType": "ParameterList", "parameters": [], "src": "3143:0:11" }, - "scope": 2888, + "scope": 1588, "src": "3030:783:11", "stateMutability": "nonpayable", "superFunction": null, @@ -3417,7 +3417,7 @@ }, { "body": { - "id": 2789, + "id": 1489, "nodeType": "Block", "src": "4259:639:11", "statements": [ @@ -3431,7 +3431,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 2736, + "id": 1436, "isConstant": false, "isLValue": false, "isPure": false, @@ -3442,18 +3442,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2732, + "id": 1432, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2730, + "id": 1430, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2724, + "referencedDeclaration": 1424, "src": "4318:8:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3465,7 +3465,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2731, + "id": 1431, "isConstant": false, "isLValue": false, "isPure": true, @@ -3494,18 +3494,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2735, + "id": 1435, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2733, + "id": 1433, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2724, + "referencedDeclaration": 1424, "src": "4335:8:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3516,11 +3516,11 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 2734, + "id": 1434, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2490, + "referencedDeclaration": 1190, "src": "4347:15:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3542,7 +3542,7 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 2737, + "id": 1437, "isConstant": false, "isLValue": false, "isPure": true, @@ -3569,21 +3569,21 @@ "typeString": "literal_string \"Invalid owner address provided\"" } ], - "id": 2729, + "id": 1429, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "4310:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2738, + "id": 1438, "isConstant": false, "isLValue": false, "isPure": false, @@ -3597,7 +3597,7 @@ "typeString": "tuple()" } }, - "id": 2739, + "id": 1439, "nodeType": "ExpressionStatement", "src": "4310:87:11" }, @@ -3611,7 +3611,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2745, + "id": 1445, "isConstant": false, "isLValue": false, "isPure": false, @@ -3620,25 +3620,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2741, + "id": 1441, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, + "referencedDeclaration": 1194, "src": "4455:6:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2743, + "id": 1443, "indexExpression": { "argumentTypes": null, - "id": 2742, + "id": 1442, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2724, + "referencedDeclaration": 1424, "src": "4462:8:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3661,7 +3661,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2744, + "id": 1444, "isConstant": false, "isLValue": false, "isPure": true, @@ -3685,7 +3685,7 @@ { "argumentTypes": null, "hexValue": "4164647265737320697320616c726561647920616e206f776e6572", - "id": 2746, + "id": 1446, "isConstant": false, "isLValue": false, "isPure": true, @@ -3712,21 +3712,21 @@ "typeString": "literal_string \"Address is already an owner\"" } ], - "id": 2740, + "id": 1440, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "4447:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2747, + "id": 1447, "isConstant": false, "isLValue": false, "isPure": false, @@ -3740,7 +3740,7 @@ "typeString": "tuple()" } }, - "id": 2748, + "id": 1448, "nodeType": "ExpressionStatement", "src": "4447:61:11" }, @@ -3754,7 +3754,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 2756, + "id": 1456, "isConstant": false, "isLValue": false, "isPure": false, @@ -3765,18 +3765,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2752, + "id": 1452, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2750, + "id": 1450, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2722, + "referencedDeclaration": 1422, "src": "4609:8:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3788,7 +3788,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2751, + "id": 1451, "isConstant": false, "isLValue": false, "isPure": true, @@ -3817,18 +3817,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2755, + "id": 1455, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2753, + "id": 1453, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2722, + "referencedDeclaration": 1422, "src": "4626:8:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3839,11 +3839,11 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 2754, + "id": 1454, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2490, + "referencedDeclaration": 1190, "src": "4638:15:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3865,7 +3865,7 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 2757, + "id": 1457, "isConstant": false, "isLValue": false, "isPure": true, @@ -3892,21 +3892,21 @@ "typeString": "literal_string \"Invalid owner address provided\"" } ], - "id": 2749, + "id": 1449, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "4601:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2758, + "id": 1458, "isConstant": false, "isLValue": false, "isPure": false, @@ -3920,7 +3920,7 @@ "typeString": "tuple()" } }, - "id": 2759, + "id": 1459, "nodeType": "ExpressionStatement", "src": "4601:87:11" }, @@ -3934,7 +3934,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2765, + "id": 1465, "isConstant": false, "isLValue": false, "isPure": false, @@ -3943,25 +3943,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2761, + "id": 1461, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, + "referencedDeclaration": 1194, "src": "4706:6:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2763, + "id": 1463, "indexExpression": { "argumentTypes": null, - "id": 2762, + "id": 1462, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2720, + "referencedDeclaration": 1420, "src": "4713:9:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3983,11 +3983,11 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 2764, + "id": 1464, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2722, + "referencedDeclaration": 1422, "src": "4727:8:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4003,7 +4003,7 @@ { "argumentTypes": null, "hexValue": "496e76616c696420707265764f776e65722c206f776e657220706169722070726f7669646564", - "id": 2766, + "id": 1466, "isConstant": false, "isLValue": false, "isPure": true, @@ -4030,21 +4030,21 @@ "typeString": "literal_string \"Invalid prevOwner, owner pair provided\"" } ], - "id": 2760, + "id": 1460, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "4698:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2767, + "id": 1467, "isConstant": false, "isLValue": false, "isPure": false, @@ -4058,14 +4058,14 @@ "typeString": "tuple()" } }, - "id": 2768, + "id": 1468, "nodeType": "ExpressionStatement", "src": "4698:80:11" }, { "expression": { "argumentTypes": null, - "id": 2775, + "id": 1475, "isConstant": false, "isLValue": false, "isPure": false, @@ -4074,25 +4074,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2769, + "id": 1469, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, + "referencedDeclaration": 1194, "src": "4788:6:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2771, + "id": 1471, "indexExpression": { "argumentTypes": null, - "id": 2770, + "id": 1470, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2724, + "referencedDeclaration": 1424, "src": "4795:8:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4116,25 +4116,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2772, + "id": 1472, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, + "referencedDeclaration": 1194, "src": "4807:6:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2774, + "id": 1474, "indexExpression": { "argumentTypes": null, - "id": 2773, + "id": 1473, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2722, + "referencedDeclaration": 1422, "src": "4814:8:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4158,14 +4158,14 @@ "typeString": "address" } }, - "id": 2776, + "id": 1476, "nodeType": "ExpressionStatement", "src": "4788:35:11" }, { "expression": { "argumentTypes": null, - "id": 2781, + "id": 1481, "isConstant": false, "isLValue": false, "isPure": false, @@ -4174,25 +4174,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2777, + "id": 1477, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, + "referencedDeclaration": 1194, "src": "4833:6:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2779, + "id": 1479, "indexExpression": { "argumentTypes": null, - "id": 2778, + "id": 1478, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2720, + "referencedDeclaration": 1420, "src": "4840:9:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4214,11 +4214,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2780, + "id": 1480, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2724, + "referencedDeclaration": 1424, "src": "4853:8:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4231,14 +4231,14 @@ "typeString": "address" } }, - "id": 2782, + "id": 1482, "nodeType": "ExpressionStatement", "src": "4833:28:11" }, { "expression": { "argumentTypes": null, - "id": 2787, + "id": 1487, "isConstant": false, "isLValue": false, "isPure": false, @@ -4247,25 +4247,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2783, + "id": 1483, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, + "referencedDeclaration": 1194, "src": "4871:6:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2785, + "id": 1485, "indexExpression": { "argumentTypes": null, - "id": 2784, + "id": 1484, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2722, + "referencedDeclaration": 1422, "src": "4878:8:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4288,7 +4288,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 2786, + "id": 1486, "isConstant": false, "isLValue": false, "isPure": true, @@ -4309,28 +4309,28 @@ "typeString": "address" } }, - "id": 2788, + "id": 1488, "nodeType": "ExpressionStatement", "src": "4871:20:11" } ] }, "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": 2790, + "id": 1490, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2727, + "id": 1427, "modifierName": { "argumentTypes": null, - "id": 2726, + "id": 1426, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3064, + "referencedDeclaration": 1764, "src": "4244:10:11", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -4344,15 +4344,15 @@ "name": "swapOwner", "nodeType": "FunctionDefinition", "parameters": { - "id": 2725, + "id": 1425, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2720, + "id": 1420, "name": "prevOwner", "nodeType": "VariableDeclaration", - "scope": 2790, + "scope": 1490, "src": "4166:17:11", "stateVariable": false, "storageLocation": "default", @@ -4361,7 +4361,7 @@ "typeString": "address" }, "typeName": { - "id": 2719, + "id": 1419, "name": "address", "nodeType": "ElementaryTypeName", "src": "4166:7:11", @@ -4375,10 +4375,10 @@ }, { "constant": false, - "id": 2722, + "id": 1422, "name": "oldOwner", "nodeType": "VariableDeclaration", - "scope": 2790, + "scope": 1490, "src": "4185:16:11", "stateVariable": false, "storageLocation": "default", @@ -4387,7 +4387,7 @@ "typeString": "address" }, "typeName": { - "id": 2721, + "id": 1421, "name": "address", "nodeType": "ElementaryTypeName", "src": "4185:7:11", @@ -4401,10 +4401,10 @@ }, { "constant": false, - "id": 2724, + "id": 1424, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 2790, + "scope": 1490, "src": "4203:16:11", "stateVariable": false, "storageLocation": "default", @@ -4413,7 +4413,7 @@ "typeString": "address" }, "typeName": { - "id": 2723, + "id": 1423, "name": "address", "nodeType": "ElementaryTypeName", "src": "4203:7:11", @@ -4430,12 +4430,12 @@ }, "payable": false, "returnParameters": { - "id": 2728, + "id": 1428, "nodeType": "ParameterList", "parameters": [], "src": "4259:0:11" }, - "scope": 2888, + "scope": 1588, "src": "4147:751:11", "stateMutability": "nonpayable", "superFunction": null, @@ -4443,7 +4443,7 @@ }, { "body": { - "id": 2815, + "id": 1515, "nodeType": "Block", "src": "5170:316:11", "statements": [ @@ -4457,18 +4457,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2800, + "id": 1500, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2798, + "id": 1498, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2792, + "referencedDeclaration": 1492, "src": "5257:10:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4479,11 +4479,11 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 2799, + "id": 1499, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2496, + "referencedDeclaration": 1196, "src": "5271:10:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4499,7 +4499,7 @@ { "argumentTypes": null, "hexValue": "5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f756e74", - "id": 2801, + "id": 1501, "isConstant": false, "isLValue": false, "isPure": true, @@ -4526,21 +4526,21 @@ "typeString": "literal_string \"Threshold cannot exceed owner count\"" } ], - "id": 2797, + "id": 1497, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "5249:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2802, + "id": 1502, "isConstant": false, "isLValue": false, "isPure": false, @@ -4554,7 +4554,7 @@ "typeString": "tuple()" } }, - "id": 2803, + "id": 1503, "nodeType": "ExpressionStatement", "src": "5249:72:11" }, @@ -4568,18 +4568,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2807, + "id": 1507, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2805, + "id": 1505, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2792, + "referencedDeclaration": 1492, "src": "5391:10:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4591,7 +4591,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 2806, + "id": 1506, "isConstant": false, "isLValue": false, "isPure": true, @@ -4615,7 +4615,7 @@ { "argumentTypes": null, "hexValue": "5468726573686f6c64206e6565647320746f2062652067726561746572207468616e2030", - "id": 2808, + "id": 1508, "isConstant": false, "isLValue": false, "isPure": true, @@ -4642,21 +4642,21 @@ "typeString": "literal_string \"Threshold needs to be greater than 0\"" } ], - "id": 2804, + "id": 1504, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "5383:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2809, + "id": 1509, "isConstant": false, "isLValue": false, "isPure": false, @@ -4670,25 +4670,25 @@ "typeString": "tuple()" } }, - "id": 2810, + "id": 1510, "nodeType": "ExpressionStatement", "src": "5383:64:11" }, { "expression": { "argumentTypes": null, - "id": 2813, + "id": 1513, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2811, + "id": 1511, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2498, + "referencedDeclaration": 1198, "src": "5457:9:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4699,11 +4699,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2812, + "id": 1512, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2792, + "referencedDeclaration": 1492, "src": "5469:10:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4716,28 +4716,28 @@ "typeString": "uint256" } }, - "id": 2814, + "id": 1514, "nodeType": "ExpressionStatement", "src": "5457:22:11" } ] }, "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": 2816, + "id": 1516, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2795, + "id": 1495, "modifierName": { "argumentTypes": null, - "id": 2794, + "id": 1494, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3064, + "referencedDeclaration": 1764, "src": "5155:10:11", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -4751,15 +4751,15 @@ "name": "changeThreshold", "nodeType": "FunctionDefinition", "parameters": { - "id": 2793, + "id": 1493, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2792, + "id": 1492, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 2816, + "scope": 1516, "src": "5112:18:11", "stateVariable": false, "storageLocation": "default", @@ -4768,7 +4768,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2791, + "id": 1491, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5112:7:11", @@ -4785,12 +4785,12 @@ }, "payable": false, "returnParameters": { - "id": 2796, + "id": 1496, "nodeType": "ParameterList", "parameters": [], "src": "5170:0:11" }, - "scope": 2888, + "scope": 1588, "src": "5087:399:11", "stateMutability": "nonpayable", "superFunction": null, @@ -4798,33 +4798,33 @@ }, { "body": { - "id": 2823, + "id": 1523, "nodeType": "Block", "src": "5574:33:11", "statements": [ { "expression": { "argumentTypes": null, - "id": 2821, + "id": 1521, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2498, + "referencedDeclaration": 1198, "src": "5591:9:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2820, - "id": 2822, + "functionReturnParameters": 1520, + "id": 1522, "nodeType": "Return", "src": "5584:16:11" } ] }, "documentation": null, - "id": 2824, + "id": 1524, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4832,22 +4832,22 @@ "name": "getThreshold", "nodeType": "FunctionDefinition", "parameters": { - "id": 2817, + "id": 1517, "nodeType": "ParameterList", "parameters": [], "src": "5513:2:11" }, "payable": false, "returnParameters": { - "id": 2820, + "id": 1520, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2819, + "id": 1519, "name": "", "nodeType": "VariableDeclaration", - "scope": 2824, + "scope": 1524, "src": "5561:7:11", "stateVariable": false, "storageLocation": "default", @@ -4856,7 +4856,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2818, + "id": 1518, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5561:7:11", @@ -4871,7 +4871,7 @@ ], "src": "5560:9:11" }, - "scope": 2888, + "scope": 1588, "src": "5492:115:11", "stateMutability": "view", "superFunction": null, @@ -4879,7 +4879,7 @@ }, { "body": { - "id": 2837, + "id": 1537, "nodeType": "Block", "src": "5700:42:11", "statements": [ @@ -4890,7 +4890,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2835, + "id": 1535, "isConstant": false, "isLValue": false, "isPure": false, @@ -4899,25 +4899,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2831, + "id": 1531, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, + "referencedDeclaration": 1194, "src": "5717:6:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2833, + "id": 1533, "indexExpression": { "argumentTypes": null, - "id": 2832, + "id": 1532, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2826, + "referencedDeclaration": 1526, "src": "5724:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4940,7 +4940,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2834, + "id": 1534, "isConstant": false, "isLValue": false, "isPure": true, @@ -4961,15 +4961,15 @@ "typeString": "bool" } }, - "functionReturnParameters": 2830, - "id": 2836, + "functionReturnParameters": 1530, + "id": 1536, "nodeType": "Return", "src": "5710:25:11" } ] }, "documentation": null, - "id": 2838, + "id": 1538, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4977,15 +4977,15 @@ "name": "isOwner", "nodeType": "FunctionDefinition", "parameters": { - "id": 2827, + "id": 1527, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2826, + "id": 1526, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 2838, + "scope": 1538, "src": "5630:13:11", "stateVariable": false, "storageLocation": "default", @@ -4994,7 +4994,7 @@ "typeString": "address" }, "typeName": { - "id": 2825, + "id": 1525, "name": "address", "nodeType": "ElementaryTypeName", "src": "5630:7:11", @@ -5011,15 +5011,15 @@ }, "payable": false, "returnParameters": { - "id": 2830, + "id": 1530, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2829, + "id": 1529, "name": "", "nodeType": "VariableDeclaration", - "scope": 2838, + "scope": 1538, "src": "5690:4:11", "stateVariable": false, "storageLocation": "default", @@ -5028,7 +5028,7 @@ "typeString": "bool" }, "typeName": { - "id": 2828, + "id": 1528, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5690:4:11", @@ -5043,7 +5043,7 @@ ], "src": "5689:6:11" }, - "scope": 2888, + "scope": 1588, "src": "5613:129:11", "stateMutability": "view", "superFunction": null, @@ -5051,21 +5051,21 @@ }, { "body": { - "id": 2886, + "id": 1586, "nodeType": "Block", "src": "5905:377:11", "statements": [ { "assignments": [ - 2847 + 1547 ], "declarations": [ { "constant": false, - "id": 2847, + "id": 1547, "name": "array", "nodeType": "VariableDeclaration", - "scope": 2887, + "scope": 1587, "src": "5915:22:11", "stateVariable": false, "storageLocation": "memory", @@ -5075,7 +5075,7 @@ }, "typeName": { "baseType": { - "id": 2845, + "id": 1545, "name": "address", "nodeType": "ElementaryTypeName", "src": "5915:7:11", @@ -5084,7 +5084,7 @@ "typeString": "address" } }, - "id": 2846, + "id": 1546, "length": null, "nodeType": "ArrayTypeName", "src": "5915:9:11", @@ -5097,17 +5097,17 @@ "visibility": "internal" } ], - "id": 2853, + "id": 1553, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2851, + "id": 1551, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2496, + "referencedDeclaration": 1196, "src": "5954:10:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5122,7 +5122,7 @@ "typeString": "uint256" } ], - "id": 2850, + "id": 1550, "isConstant": false, "isLValue": false, "isPure": true, @@ -5135,7 +5135,7 @@ }, "typeName": { "baseType": { - "id": 2848, + "id": 1548, "name": "address", "nodeType": "ElementaryTypeName", "src": "5944:7:11", @@ -5144,7 +5144,7 @@ "typeString": "address" } }, - "id": 2849, + "id": 1549, "length": null, "nodeType": "ArrayTypeName", "src": "5944:9:11", @@ -5154,7 +5154,7 @@ } } }, - "id": 2852, + "id": 1552, "isConstant": false, "isLValue": false, "isPure": false, @@ -5173,15 +5173,15 @@ }, { "assignments": [ - 2855 + 1555 ], "declarations": [ { "constant": false, - "id": 2855, + "id": 1555, "name": "index", "nodeType": "VariableDeclaration", - "scope": 2887, + "scope": 1587, "src": "6009:13:11", "stateVariable": false, "storageLocation": "default", @@ -5190,7 +5190,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2854, + "id": 1554, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6009:7:11", @@ -5203,11 +5203,11 @@ "visibility": "internal" } ], - "id": 2857, + "id": 1557, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 2856, + "id": 1556, "isConstant": false, "isLValue": false, "isPure": true, @@ -5227,15 +5227,15 @@ }, { "assignments": [ - 2859 + 1559 ], "declarations": [ { "constant": false, - "id": 2859, + "id": 1559, "name": "currentOwner", "nodeType": "VariableDeclaration", - "scope": 2887, + "scope": 1587, "src": "6036:20:11", "stateVariable": false, "storageLocation": "default", @@ -5244,7 +5244,7 @@ "typeString": "address" }, "typeName": { - "id": 2858, + "id": 1558, "name": "address", "nodeType": "ElementaryTypeName", "src": "6036:7:11", @@ -5257,30 +5257,30 @@ "visibility": "internal" } ], - "id": 2863, + "id": 1563, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2860, + "id": 1560, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, + "referencedDeclaration": 1194, "src": "6059:6:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2862, + "id": 1562, "indexExpression": { "argumentTypes": null, - "id": 2861, + "id": 1561, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2490, + "referencedDeclaration": 1190, "src": "6066:15:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5303,14 +5303,14 @@ }, { "body": { - "id": 2882, + "id": 1582, "nodeType": "Block", "src": "6131:123:11", "statements": [ { "expression": { "argumentTypes": null, - "id": 2871, + "id": 1571, "isConstant": false, "isLValue": false, "isPure": false, @@ -5319,25 +5319,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2867, + "id": 1567, "name": "array", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2847, + "referencedDeclaration": 1547, "src": "6145:5:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2869, + "id": 1569, "indexExpression": { "argumentTypes": null, - "id": 2868, + "id": 1568, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2855, + "referencedDeclaration": 1555, "src": "6151:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5359,11 +5359,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2870, + "id": 1570, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2859, + "referencedDeclaration": 1559, "src": "6160:12:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5376,25 +5376,25 @@ "typeString": "address" } }, - "id": 2872, + "id": 1572, "nodeType": "ExpressionStatement", "src": "6145:27:11" }, { "expression": { "argumentTypes": null, - "id": 2877, + "id": 1577, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2873, + "id": 1573, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2859, + "referencedDeclaration": 1559, "src": "6186:12:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5407,25 +5407,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2874, + "id": 1574, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, + "referencedDeclaration": 1194, "src": "6201:6:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2876, + "id": 1576, "indexExpression": { "argumentTypes": null, - "id": 2875, + "id": 1575, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2859, + "referencedDeclaration": 1559, "src": "6208:12:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5449,14 +5449,14 @@ "typeString": "address" } }, - "id": 2878, + "id": 1578, "nodeType": "ExpressionStatement", "src": "6186:35:11" }, { "expression": { "argumentTypes": null, - "id": 2880, + "id": 1580, "isConstant": false, "isLValue": false, "isPure": false, @@ -5467,11 +5467,11 @@ "src": "6235:8:11", "subExpression": { "argumentTypes": null, - "id": 2879, + "id": 1579, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2855, + "referencedDeclaration": 1555, "src": "6235:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5483,7 +5483,7 @@ "typeString": "uint256" } }, - "id": 2881, + "id": 1581, "nodeType": "ExpressionStatement", "src": "6235:8:11" } @@ -5495,18 +5495,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2866, + "id": 1566, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2864, + "id": 1564, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2859, + "referencedDeclaration": 1559, "src": "6098:12:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5517,11 +5517,11 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 2865, + "id": 1565, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2490, + "referencedDeclaration": 1190, "src": "6114:15:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5534,33 +5534,33 @@ "typeString": "bool" } }, - "id": 2883, + "id": 1583, "nodeType": "WhileStatement", "src": "6092:162:11" }, { "expression": { "argumentTypes": null, - "id": 2884, + "id": 1584, "name": "array", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2847, + "referencedDeclaration": 1547, "src": "6270:5:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "functionReturnParameters": 2843, - "id": 2885, + "functionReturnParameters": 1543, + "id": 1585, "nodeType": "Return", "src": "6263:12:11" } ] }, "documentation": "@dev Returns array of owners.\n @return Array of Safe owners.", - "id": 2887, + "id": 1587, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -5568,22 +5568,22 @@ "name": "getOwners", "nodeType": "FunctionDefinition", "parameters": { - "id": 2839, + "id": 1539, "nodeType": "ParameterList", "parameters": [], "src": "5842:2:11" }, "payable": false, "returnParameters": { - "id": 2843, + "id": 1543, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2842, + "id": 1542, "name": "", "nodeType": "VariableDeclaration", - "scope": 2887, + "scope": 1587, "src": "5890:9:11", "stateVariable": false, "storageLocation": "default", @@ -5593,7 +5593,7 @@ }, "typeName": { "baseType": { - "id": 2840, + "id": 1540, "name": "address", "nodeType": "ElementaryTypeName", "src": "5890:7:11", @@ -5602,7 +5602,7 @@ "typeString": "address" } }, - "id": 2841, + "id": 1541, "length": null, "nodeType": "ArrayTypeName", "src": "5890:9:11", @@ -5617,14 +5617,14 @@ ], "src": "5889:11:11" }, - "scope": 2888, + "scope": 1588, "src": "5824:458:11", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 2889, + "scope": 1589, "src": "240:6044:11" } ], @@ -5634,14 +5634,14 @@ "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", "exportedSymbols": { "OwnerManager": [ - 2888 + 1588 ] }, - "id": 2889, + "id": 1589, "nodeType": "SourceUnit", "nodes": [ { - "id": 2482, + "id": 1182, "literals": [ "solidity", "0.4", @@ -5653,10 +5653,10 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SelfAuthorized.sol", "file": "./SelfAuthorized.sol", - "id": 2483, + "id": 1183, "nodeType": "ImportDirective", - "scope": 2889, - "sourceUnit": 3066, + "scope": 1589, + "sourceUnit": 1766, "src": "24:30:11", "symbolAliases": [], "unitAlias": "" @@ -5667,41 +5667,41 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2484, + "id": 1184, "name": "SelfAuthorized", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3065, + "referencedDeclaration": 1765, "src": "265:14:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$3065", + "typeIdentifier": "t_contract$_SelfAuthorized_$1765", "typeString": "contract SelfAuthorized" } }, - "id": 2485, + "id": 1185, "nodeType": "InheritanceSpecifier", "src": "265:14:11" } ], "contractDependencies": [ - 3065 + 1765 ], "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": 2888, + "id": 1588, "linearizedBaseContracts": [ - 2888, - 3065 + 1588, + 1765 ], "name": "OwnerManager", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 2490, + "id": 1190, "name": "SENTINEL_OWNERS", "nodeType": "VariableDeclaration", - "scope": 2888, + "scope": 1588, "src": "287:54:11", "stateVariable": true, "storageLocation": "default", @@ -5710,7 +5710,7 @@ "typeString": "address" }, "typeName": { - "id": 2486, + "id": 1186, "name": "address", "nodeType": "ElementaryTypeName", "src": "287:7:11", @@ -5725,7 +5725,7 @@ { "argumentTypes": null, "hexValue": "307831", - "id": 2488, + "id": 1188, "isConstant": false, "isLValue": false, "isPure": true, @@ -5748,7 +5748,7 @@ "typeString": "int_const 1" } ], - "id": 2487, + "id": 1187, "isConstant": false, "isLValue": false, "isPure": true, @@ -5761,7 +5761,7 @@ }, "typeName": "address" }, - "id": 2489, + "id": 1189, "isConstant": false, "isLValue": false, "isPure": true, @@ -5779,10 +5779,10 @@ }, { "constant": false, - "id": 2494, + "id": 1194, "name": "owners", "nodeType": "VariableDeclaration", - "scope": 2888, + "scope": 1588, "src": "348:43:11", "stateVariable": true, "storageLocation": "default", @@ -5791,9 +5791,9 @@ "typeString": "mapping(address => address)" }, "typeName": { - "id": 2493, + "id": 1193, "keyType": { - "id": 2491, + "id": 1191, "name": "address", "nodeType": "ElementaryTypeName", "src": "356:7:11", @@ -5809,7 +5809,7 @@ "typeString": "mapping(address => address)" }, "valueType": { - "id": 2492, + "id": 1192, "name": "address", "nodeType": "ElementaryTypeName", "src": "367:7:11", @@ -5824,10 +5824,10 @@ }, { "constant": false, - "id": 2496, + "id": 1196, "name": "ownerCount", "nodeType": "VariableDeclaration", - "scope": 2888, + "scope": 1588, "src": "397:18:11", "stateVariable": true, "storageLocation": "default", @@ -5836,7 +5836,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2495, + "id": 1195, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "397:7:11", @@ -5850,10 +5850,10 @@ }, { "constant": false, - "id": 2498, + "id": 1198, "name": "threshold", "nodeType": "VariableDeclaration", - "scope": 2888, + "scope": 1588, "src": "421:26:11", "stateVariable": true, "storageLocation": "default", @@ -5862,7 +5862,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2497, + "id": 1197, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "421:7:11", @@ -5876,7 +5876,7 @@ }, { "body": { - "id": 2596, + "id": 1296, "nodeType": "Block", "src": "724:1129:11", "statements": [ @@ -5890,18 +5890,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2509, + "id": 1209, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2507, + "id": 1207, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2498, + "referencedDeclaration": 1198, "src": "866:9:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5913,7 +5913,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2508, + "id": 1208, "isConstant": false, "isLValue": false, "isPure": true, @@ -5937,7 +5937,7 @@ { "argumentTypes": null, "hexValue": "4f776e657273206861766520616c7265616479206265656e207365747570", - "id": 2510, + "id": 1210, "isConstant": false, "isLValue": false, "isPure": true, @@ -5964,21 +5964,21 @@ "typeString": "literal_string \"Owners have already been setup\"" } ], - "id": 2506, + "id": 1206, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "858:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2511, + "id": 1211, "isConstant": false, "isLValue": false, "isPure": false, @@ -5992,7 +5992,7 @@ "typeString": "tuple()" } }, - "id": 2512, + "id": 1212, "nodeType": "ExpressionStatement", "src": "858:57:11" }, @@ -6006,18 +6006,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2517, + "id": 1217, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2514, + "id": 1214, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2503, + "referencedDeclaration": 1203, "src": "1008:10:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6030,18 +6030,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2515, + "id": 1215, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2501, + "referencedDeclaration": 1201, "src": "1022:7:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2516, + "id": 1216, "isConstant": false, "isLValue": false, "isPure": false, @@ -6064,7 +6064,7 @@ { "argumentTypes": null, "hexValue": "5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f756e74", - "id": 2518, + "id": 1218, "isConstant": false, "isLValue": false, "isPure": true, @@ -6091,21 +6091,21 @@ "typeString": "literal_string \"Threshold cannot exceed owner count\"" } ], - "id": 2513, + "id": 1213, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "1000:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2519, + "id": 1219, "isConstant": false, "isLValue": false, "isPure": false, @@ -6119,7 +6119,7 @@ "typeString": "tuple()" } }, - "id": 2520, + "id": 1220, "nodeType": "ExpressionStatement", "src": "1000:76:11" }, @@ -6133,18 +6133,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2524, + "id": 1224, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2522, + "id": 1222, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2503, + "referencedDeclaration": 1203, "src": "1146:10:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6156,7 +6156,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 2523, + "id": 1223, "isConstant": false, "isLValue": false, "isPure": true, @@ -6180,7 +6180,7 @@ { "argumentTypes": null, "hexValue": "5468726573686f6c64206e6565647320746f2062652067726561746572207468616e2030", - "id": 2525, + "id": 1225, "isConstant": false, "isLValue": false, "isPure": true, @@ -6207,21 +6207,21 @@ "typeString": "literal_string \"Threshold needs to be greater than 0\"" } ], - "id": 2521, + "id": 1221, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "1138:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2526, + "id": 1226, "isConstant": false, "isLValue": false, "isPure": false, @@ -6235,21 +6235,21 @@ "typeString": "tuple()" } }, - "id": 2527, + "id": 1227, "nodeType": "ExpressionStatement", "src": "1138:64:11" }, { "assignments": [ - 2529 + 1229 ], "declarations": [ { "constant": false, - "id": 2529, + "id": 1229, "name": "currentOwner", "nodeType": "VariableDeclaration", - "scope": 2597, + "scope": 1297, "src": "1249:20:11", "stateVariable": false, "storageLocation": "default", @@ -6258,7 +6258,7 @@ "typeString": "address" }, "typeName": { - "id": 2528, + "id": 1228, "name": "address", "nodeType": "ElementaryTypeName", "src": "1249:7:11", @@ -6271,14 +6271,14 @@ "visibility": "internal" } ], - "id": 2531, + "id": 1231, "initialValue": { "argumentTypes": null, - "id": 2530, + "id": 1230, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2490, + "referencedDeclaration": 1190, "src": "1272:15:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6290,21 +6290,21 @@ }, { "body": { - "id": 2579, + "id": 1279, "nodeType": "Block", "src": "1342:388:11", "statements": [ { "assignments": [ - 2544 + 1244 ], "declarations": [ { "constant": false, - "id": 2544, + "id": 1244, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 2597, + "scope": 1297, "src": "1401:13:11", "stateVariable": false, "storageLocation": "default", @@ -6313,7 +6313,7 @@ "typeString": "address" }, "typeName": { - "id": 2543, + "id": 1243, "name": "address", "nodeType": "ElementaryTypeName", "src": "1401:7:11", @@ -6326,30 +6326,30 @@ "visibility": "internal" } ], - "id": 2548, + "id": 1248, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2545, + "id": 1245, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2501, + "referencedDeclaration": 1201, "src": "1417:7:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2547, + "id": 1247, "indexExpression": { "argumentTypes": null, - "id": 2546, + "id": 1246, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2533, + "referencedDeclaration": 1233, "src": "1425:1:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6380,7 +6380,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 2556, + "id": 1256, "isConstant": false, "isLValue": false, "isPure": false, @@ -6391,18 +6391,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2552, + "id": 1252, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2550, + "id": 1250, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2544, + "referencedDeclaration": 1244, "src": "1449:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6414,7 +6414,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2551, + "id": 1251, "isConstant": false, "isLValue": false, "isPure": true, @@ -6443,18 +6443,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2555, + "id": 1255, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2553, + "id": 1253, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2544, + "referencedDeclaration": 1244, "src": "1463:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6465,11 +6465,11 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 2554, + "id": 1254, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2490, + "referencedDeclaration": 1190, "src": "1472:15:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6491,7 +6491,7 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 2557, + "id": 1257, "isConstant": false, "isLValue": false, "isPure": true, @@ -6518,21 +6518,21 @@ "typeString": "literal_string \"Invalid owner address provided\"" } ], - "id": 2549, + "id": 1249, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "1441:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2558, + "id": 1258, "isConstant": false, "isLValue": false, "isPure": false, @@ -6546,7 +6546,7 @@ "typeString": "tuple()" } }, - "id": 2559, + "id": 1259, "nodeType": "ExpressionStatement", "src": "1441:81:11" }, @@ -6560,7 +6560,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2565, + "id": 1265, "isConstant": false, "isLValue": false, "isPure": false, @@ -6569,25 +6569,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2561, + "id": 1261, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, + "referencedDeclaration": 1194, "src": "1588:6:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2563, + "id": 1263, "indexExpression": { "argumentTypes": null, - "id": 2562, + "id": 1262, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2544, + "referencedDeclaration": 1244, "src": "1595:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6610,7 +6610,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2564, + "id": 1264, "isConstant": false, "isLValue": false, "isPure": true, @@ -6634,7 +6634,7 @@ { "argumentTypes": null, "hexValue": "4475706c6963617465206f776e657220616464726573732070726f7669646564", - "id": 2566, + "id": 1266, "isConstant": false, "isLValue": false, "isPure": true, @@ -6661,21 +6661,21 @@ "typeString": "literal_string \"Duplicate owner address provided\"" } ], - "id": 2560, + "id": 1260, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "1580:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2567, + "id": 1267, "isConstant": false, "isLValue": false, "isPure": false, @@ -6689,14 +6689,14 @@ "typeString": "tuple()" } }, - "id": 2568, + "id": 1268, "nodeType": "ExpressionStatement", "src": "1580:63:11" }, { "expression": { "argumentTypes": null, - "id": 2573, + "id": 1273, "isConstant": false, "isLValue": false, "isPure": false, @@ -6705,25 +6705,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2569, + "id": 1269, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, + "referencedDeclaration": 1194, "src": "1657:6:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2571, + "id": 1271, "indexExpression": { "argumentTypes": null, - "id": 2570, + "id": 1270, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2529, + "referencedDeclaration": 1229, "src": "1664:12:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6745,11 +6745,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2572, + "id": 1272, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2544, + "referencedDeclaration": 1244, "src": "1680:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6762,25 +6762,25 @@ "typeString": "address" } }, - "id": 2574, + "id": 1274, "nodeType": "ExpressionStatement", "src": "1657:28:11" }, { "expression": { "argumentTypes": null, - "id": 2577, + "id": 1277, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2575, + "id": 1275, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2529, + "referencedDeclaration": 1229, "src": "1699:12:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6791,11 +6791,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2576, + "id": 1276, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2544, + "referencedDeclaration": 1244, "src": "1714:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6808,7 +6808,7 @@ "typeString": "address" } }, - "id": 2578, + "id": 1278, "nodeType": "ExpressionStatement", "src": "1699:20:11" } @@ -6820,18 +6820,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2539, + "id": 1239, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2536, + "id": 1236, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2533, + "referencedDeclaration": 1233, "src": "1317:1:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6844,18 +6844,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2537, + "id": 1237, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2501, + "referencedDeclaration": 1201, "src": "1321:7:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2538, + "id": 1238, "isConstant": false, "isLValue": false, "isPure": false, @@ -6875,18 +6875,18 @@ "typeString": "bool" } }, - "id": 2580, + "id": 1280, "initializationExpression": { "assignments": [ - 2533 + 1233 ], "declarations": [ { "constant": false, - "id": 2533, + "id": 1233, "name": "i", "nodeType": "VariableDeclaration", - "scope": 2597, + "scope": 1297, "src": "1302:9:11", "stateVariable": false, "storageLocation": "default", @@ -6895,7 +6895,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2532, + "id": 1232, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1302:7:11", @@ -6908,11 +6908,11 @@ "visibility": "internal" } ], - "id": 2535, + "id": 1235, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 2534, + "id": 1234, "isConstant": false, "isLValue": false, "isPure": true, @@ -6933,7 +6933,7 @@ "loopExpression": { "expression": { "argumentTypes": null, - "id": 2541, + "id": 1241, "isConstant": false, "isLValue": false, "isPure": false, @@ -6944,11 +6944,11 @@ "src": "1337:3:11", "subExpression": { "argumentTypes": null, - "id": 2540, + "id": 1240, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2533, + "referencedDeclaration": 1233, "src": "1337:1:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6960,7 +6960,7 @@ "typeString": "uint256" } }, - "id": 2542, + "id": 1242, "nodeType": "ExpressionStatement", "src": "1337:3:11" }, @@ -6970,7 +6970,7 @@ { "expression": { "argumentTypes": null, - "id": 2585, + "id": 1285, "isConstant": false, "isLValue": false, "isPure": false, @@ -6979,25 +6979,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2581, + "id": 1281, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, + "referencedDeclaration": 1194, "src": "1739:6:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2583, + "id": 1283, "indexExpression": { "argumentTypes": null, - "id": 2582, + "id": 1282, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2529, + "referencedDeclaration": 1229, "src": "1746:12:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7019,11 +7019,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2584, + "id": 1284, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2490, + "referencedDeclaration": 1190, "src": "1762:15:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7036,25 +7036,25 @@ "typeString": "address" } }, - "id": 2586, + "id": 1286, "nodeType": "ExpressionStatement", "src": "1739:38:11" }, { "expression": { "argumentTypes": null, - "id": 2590, + "id": 1290, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2587, + "id": 1287, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2496, + "referencedDeclaration": 1196, "src": "1787:10:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7067,18 +7067,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2588, + "id": 1288, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2501, + "referencedDeclaration": 1201, "src": "1800:7:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2589, + "id": 1289, "isConstant": false, "isLValue": false, "isPure": false, @@ -7098,25 +7098,25 @@ "typeString": "uint256" } }, - "id": 2591, + "id": 1291, "nodeType": "ExpressionStatement", "src": "1787:27:11" }, { "expression": { "argumentTypes": null, - "id": 2594, + "id": 1294, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2592, + "id": 1292, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2498, + "referencedDeclaration": 1198, "src": "1824:9:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7127,11 +7127,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2593, + "id": 1293, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2503, + "referencedDeclaration": 1203, "src": "1836:10:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7144,14 +7144,14 @@ "typeString": "uint256" } }, - "id": 2595, + "id": 1295, "nodeType": "ExpressionStatement", "src": "1824:22:11" } ] }, "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": 2597, + "id": 1297, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -7159,15 +7159,15 @@ "name": "setupOwners", "nodeType": "FunctionDefinition", "parameters": { - "id": 2504, + "id": 1204, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2501, + "id": 1201, "name": "_owners", "nodeType": "VariableDeclaration", - "scope": 2597, + "scope": 1297, "src": "664:17:11", "stateVariable": false, "storageLocation": "default", @@ -7177,7 +7177,7 @@ }, "typeName": { "baseType": { - "id": 2499, + "id": 1199, "name": "address", "nodeType": "ElementaryTypeName", "src": "664:7:11", @@ -7186,7 +7186,7 @@ "typeString": "address" } }, - "id": 2500, + "id": 1200, "length": null, "nodeType": "ArrayTypeName", "src": "664:9:11", @@ -7200,10 +7200,10 @@ }, { "constant": false, - "id": 2503, + "id": 1203, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 2597, + "scope": 1297, "src": "683:18:11", "stateVariable": false, "storageLocation": "default", @@ -7212,7 +7212,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2502, + "id": 1202, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "683:7:11", @@ -7229,12 +7229,12 @@ }, "payable": false, "returnParameters": { - "id": 2505, + "id": 1205, "nodeType": "ParameterList", "parameters": [], "src": "724:0:11" }, - "scope": 2888, + "scope": 1588, "src": "643:1210:11", "stateMutability": "nonpayable", "superFunction": null, @@ -7242,7 +7242,7 @@ }, { "body": { - "id": 2651, + "id": 1351, "nodeType": "Block", "src": "2197:491:11", "statements": [ @@ -7256,7 +7256,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 2613, + "id": 1313, "isConstant": false, "isLValue": false, "isPure": false, @@ -7267,18 +7267,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2609, + "id": 1309, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2607, + "id": 1307, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2599, + "referencedDeclaration": 1299, "src": "2256:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7290,7 +7290,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2608, + "id": 1308, "isConstant": false, "isLValue": false, "isPure": true, @@ -7319,18 +7319,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2612, + "id": 1312, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2610, + "id": 1310, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2599, + "referencedDeclaration": 1299, "src": "2270:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7341,11 +7341,11 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 2611, + "id": 1311, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2490, + "referencedDeclaration": 1190, "src": "2279:15:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7367,7 +7367,7 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 2614, + "id": 1314, "isConstant": false, "isLValue": false, "isPure": true, @@ -7394,21 +7394,21 @@ "typeString": "literal_string \"Invalid owner address provided\"" } ], - "id": 2606, + "id": 1306, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "2248:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2615, + "id": 1315, "isConstant": false, "isLValue": false, "isPure": false, @@ -7422,7 +7422,7 @@ "typeString": "tuple()" } }, - "id": 2616, + "id": 1316, "nodeType": "ExpressionStatement", "src": "2248:81:11" }, @@ -7436,7 +7436,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2622, + "id": 1322, "isConstant": false, "isLValue": false, "isPure": false, @@ -7445,25 +7445,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2618, + "id": 1318, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, + "referencedDeclaration": 1194, "src": "2387:6:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2620, + "id": 1320, "indexExpression": { "argumentTypes": null, - "id": 2619, + "id": 1319, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2599, + "referencedDeclaration": 1299, "src": "2394:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7486,7 +7486,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2621, + "id": 1321, "isConstant": false, "isLValue": false, "isPure": true, @@ -7510,7 +7510,7 @@ { "argumentTypes": null, "hexValue": "4164647265737320697320616c726561647920616e206f776e6572", - "id": 2623, + "id": 1323, "isConstant": false, "isLValue": false, "isPure": true, @@ -7537,21 +7537,21 @@ "typeString": "literal_string \"Address is already an owner\"" } ], - "id": 2617, + "id": 1317, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "2379:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2624, + "id": 1324, "isConstant": false, "isLValue": false, "isPure": false, @@ -7565,14 +7565,14 @@ "typeString": "tuple()" } }, - "id": 2625, + "id": 1325, "nodeType": "ExpressionStatement", "src": "2379:58:11" }, { "expression": { "argumentTypes": null, - "id": 2632, + "id": 1332, "isConstant": false, "isLValue": false, "isPure": false, @@ -7581,25 +7581,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2626, + "id": 1326, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, + "referencedDeclaration": 1194, "src": "2447:6:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2628, + "id": 1328, "indexExpression": { "argumentTypes": null, - "id": 2627, + "id": 1327, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2599, + "referencedDeclaration": 1299, "src": "2454:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7623,25 +7623,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2629, + "id": 1329, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, + "referencedDeclaration": 1194, "src": "2463:6:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2631, + "id": 1331, "indexExpression": { "argumentTypes": null, - "id": 2630, + "id": 1330, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2490, + "referencedDeclaration": 1190, "src": "2470:15:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7665,14 +7665,14 @@ "typeString": "address" } }, - "id": 2633, + "id": 1333, "nodeType": "ExpressionStatement", "src": "2447:39:11" }, { "expression": { "argumentTypes": null, - "id": 2638, + "id": 1338, "isConstant": false, "isLValue": false, "isPure": false, @@ -7681,25 +7681,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2634, + "id": 1334, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, + "referencedDeclaration": 1194, "src": "2496:6:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2636, + "id": 1336, "indexExpression": { "argumentTypes": null, - "id": 2635, + "id": 1335, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2490, + "referencedDeclaration": 1190, "src": "2503:15:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7721,11 +7721,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2637, + "id": 1337, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2599, + "referencedDeclaration": 1299, "src": "2522:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7738,14 +7738,14 @@ "typeString": "address" } }, - "id": 2639, + "id": 1339, "nodeType": "ExpressionStatement", "src": "2496:31:11" }, { "expression": { "argumentTypes": null, - "id": 2641, + "id": 1341, "isConstant": false, "isLValue": false, "isPure": false, @@ -7756,11 +7756,11 @@ "src": "2537:12:11", "subExpression": { "argumentTypes": null, - "id": 2640, + "id": 1340, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2496, + "referencedDeclaration": 1196, "src": "2537:10:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7772,7 +7772,7 @@ "typeString": "uint256" } }, - "id": 2642, + "id": 1342, "nodeType": "ExpressionStatement", "src": "2537:12:11" }, @@ -7783,18 +7783,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2645, + "id": 1345, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2643, + "id": 1343, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2498, + "referencedDeclaration": 1198, "src": "2617:9:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7805,11 +7805,11 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 2644, + "id": 1344, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2601, + "referencedDeclaration": 1301, "src": "2630:10:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7823,7 +7823,7 @@ } }, "falseBody": null, - "id": 2650, + "id": 1350, "nodeType": "IfStatement", "src": "2613:68:11", "trueBody": { @@ -7832,11 +7832,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2647, + "id": 1347, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2601, + "referencedDeclaration": 1301, "src": "2670:10:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7851,18 +7851,18 @@ "typeString": "uint256" } ], - "id": 2646, + "id": 1346, "name": "changeThreshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2816, + "referencedDeclaration": 1516, "src": "2654:15:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 2648, + "id": 1348, "isConstant": false, "isLValue": false, "isPure": false, @@ -7876,7 +7876,7 @@ "typeString": "tuple()" } }, - "id": 2649, + "id": 1349, "nodeType": "ExpressionStatement", "src": "2654:27:11" } @@ -7884,21 +7884,21 @@ ] }, "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": 2652, + "id": 1352, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2604, + "id": 1304, "modifierName": { "argumentTypes": null, - "id": 2603, + "id": 1303, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3064, + "referencedDeclaration": 1764, "src": "2182:10:11", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -7912,15 +7912,15 @@ "name": "addOwnerWithThreshold", "nodeType": "FunctionDefinition", "parameters": { - "id": 2602, + "id": 1302, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2599, + "id": 1299, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 2652, + "scope": 1352, "src": "2124:13:11", "stateVariable": false, "storageLocation": "default", @@ -7929,7 +7929,7 @@ "typeString": "address" }, "typeName": { - "id": 2598, + "id": 1298, "name": "address", "nodeType": "ElementaryTypeName", "src": "2124:7:11", @@ -7943,10 +7943,10 @@ }, { "constant": false, - "id": 2601, + "id": 1301, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 2652, + "scope": 1352, "src": "2139:18:11", "stateVariable": false, "storageLocation": "default", @@ -7955,7 +7955,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2600, + "id": 1300, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2139:7:11", @@ -7972,12 +7972,12 @@ }, "payable": false, "returnParameters": { - "id": 2605, + "id": 1305, "nodeType": "ParameterList", "parameters": [], "src": "2197:0:11" }, - "scope": 2888, + "scope": 1588, "src": "2093:595:11", "stateMutability": "nonpayable", "superFunction": null, @@ -7985,7 +7985,7 @@ }, { "body": { - "id": 2717, + "id": 1417, "nodeType": "Block", "src": "3143:670:11", "statements": [ @@ -7999,7 +7999,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2668, + "id": 1368, "isConstant": false, "isLValue": false, "isPure": false, @@ -8010,18 +8010,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2666, + "id": 1366, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2664, + "id": 1364, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2496, + "referencedDeclaration": 1196, "src": "3238:10:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8033,7 +8033,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 2665, + "id": 1365, "isConstant": false, "isLValue": false, "isPure": true, @@ -8058,11 +8058,11 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 2667, + "id": 1367, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2658, + "referencedDeclaration": 1358, "src": "3256:10:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8078,7 +8078,7 @@ { "argumentTypes": null, "hexValue": "4e6577206f776e657220636f756e74206e6565647320746f206265206c6172676572207468616e206e6577207468726573686f6c64", - "id": 2669, + "id": 1369, "isConstant": false, "isLValue": false, "isPure": true, @@ -8105,21 +8105,21 @@ "typeString": "literal_string \"New owner count needs to be larger than new threshold\"" } ], - "id": 2663, + "id": 1363, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "3230:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2670, + "id": 1370, "isConstant": false, "isLValue": false, "isPure": false, @@ -8133,7 +8133,7 @@ "typeString": "tuple()" } }, - "id": 2671, + "id": 1371, "nodeType": "ExpressionStatement", "src": "3230:94:11" }, @@ -8147,7 +8147,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 2679, + "id": 1379, "isConstant": false, "isLValue": false, "isPure": false, @@ -8158,18 +8158,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2675, + "id": 1375, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2673, + "id": 1373, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2656, + "referencedDeclaration": 1356, "src": "3422:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8181,7 +8181,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2674, + "id": 1374, "isConstant": false, "isLValue": false, "isPure": true, @@ -8210,18 +8210,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2678, + "id": 1378, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2676, + "id": 1376, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2656, + "referencedDeclaration": 1356, "src": "3436:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8232,11 +8232,11 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 2677, + "id": 1377, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2490, + "referencedDeclaration": 1190, "src": "3445:15:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8258,7 +8258,7 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 2680, + "id": 1380, "isConstant": false, "isLValue": false, "isPure": true, @@ -8285,21 +8285,21 @@ "typeString": "literal_string \"Invalid owner address provided\"" } ], - "id": 2672, + "id": 1372, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "3414:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2681, + "id": 1381, "isConstant": false, "isLValue": false, "isPure": false, @@ -8313,7 +8313,7 @@ "typeString": "tuple()" } }, - "id": 2682, + "id": 1382, "nodeType": "ExpressionStatement", "src": "3414:81:11" }, @@ -8327,7 +8327,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2688, + "id": 1388, "isConstant": false, "isLValue": false, "isPure": false, @@ -8336,25 +8336,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2684, + "id": 1384, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, + "referencedDeclaration": 1194, "src": "3513:6:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2686, + "id": 1386, "indexExpression": { "argumentTypes": null, - "id": 2685, + "id": 1385, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2654, + "referencedDeclaration": 1354, "src": "3520:9:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8376,11 +8376,11 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 2687, + "id": 1387, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2656, + "referencedDeclaration": 1356, "src": "3534:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8396,7 +8396,7 @@ { "argumentTypes": null, "hexValue": "496e76616c696420707265764f776e65722c206f776e657220706169722070726f7669646564", - "id": 2689, + "id": 1389, "isConstant": false, "isLValue": false, "isPure": true, @@ -8423,21 +8423,21 @@ "typeString": "literal_string \"Invalid prevOwner, owner pair provided\"" } ], - "id": 2683, + "id": 1383, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "3505:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2690, + "id": 1390, "isConstant": false, "isLValue": false, "isPure": false, @@ -8451,14 +8451,14 @@ "typeString": "tuple()" } }, - "id": 2691, + "id": 1391, "nodeType": "ExpressionStatement", "src": "3505:77:11" }, { "expression": { "argumentTypes": null, - "id": 2698, + "id": 1398, "isConstant": false, "isLValue": false, "isPure": false, @@ -8467,25 +8467,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2692, + "id": 1392, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, + "referencedDeclaration": 1194, "src": "3592:6:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2694, + "id": 1394, "indexExpression": { "argumentTypes": null, - "id": 2693, + "id": 1393, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2654, + "referencedDeclaration": 1354, "src": "3599:9:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8509,25 +8509,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2695, + "id": 1395, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, + "referencedDeclaration": 1194, "src": "3612:6:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2697, + "id": 1397, "indexExpression": { "argumentTypes": null, - "id": 2696, + "id": 1396, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2656, + "referencedDeclaration": 1356, "src": "3619:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8551,14 +8551,14 @@ "typeString": "address" } }, - "id": 2699, + "id": 1399, "nodeType": "ExpressionStatement", "src": "3592:33:11" }, { "expression": { "argumentTypes": null, - "id": 2704, + "id": 1404, "isConstant": false, "isLValue": false, "isPure": false, @@ -8567,25 +8567,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2700, + "id": 1400, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, + "referencedDeclaration": 1194, "src": "3635:6:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2702, + "id": 1402, "indexExpression": { "argumentTypes": null, - "id": 2701, + "id": 1401, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2656, + "referencedDeclaration": 1356, "src": "3642:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8608,7 +8608,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 2703, + "id": 1403, "isConstant": false, "isLValue": false, "isPure": true, @@ -8629,14 +8629,14 @@ "typeString": "address" } }, - "id": 2705, + "id": 1405, "nodeType": "ExpressionStatement", "src": "3635:17:11" }, { "expression": { "argumentTypes": null, - "id": 2707, + "id": 1407, "isConstant": false, "isLValue": false, "isPure": false, @@ -8647,11 +8647,11 @@ "src": "3662:12:11", "subExpression": { "argumentTypes": null, - "id": 2706, + "id": 1406, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2496, + "referencedDeclaration": 1196, "src": "3662:10:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8663,7 +8663,7 @@ "typeString": "uint256" } }, - "id": 2708, + "id": 1408, "nodeType": "ExpressionStatement", "src": "3662:12:11" }, @@ -8674,18 +8674,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2711, + "id": 1411, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2709, + "id": 1409, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2498, + "referencedDeclaration": 1198, "src": "3742:9:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8696,11 +8696,11 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 2710, + "id": 1410, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2658, + "referencedDeclaration": 1358, "src": "3755:10:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8714,7 +8714,7 @@ } }, "falseBody": null, - "id": 2716, + "id": 1416, "nodeType": "IfStatement", "src": "3738:68:11", "trueBody": { @@ -8723,11 +8723,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2713, + "id": 1413, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2658, + "referencedDeclaration": 1358, "src": "3795:10:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8742,18 +8742,18 @@ "typeString": "uint256" } ], - "id": 2712, + "id": 1412, "name": "changeThreshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2816, + "referencedDeclaration": 1516, "src": "3779:15:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 2714, + "id": 1414, "isConstant": false, "isLValue": false, "isPure": false, @@ -8767,7 +8767,7 @@ "typeString": "tuple()" } }, - "id": 2715, + "id": 1415, "nodeType": "ExpressionStatement", "src": "3779:27:11" } @@ -8775,21 +8775,21 @@ ] }, "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": 2718, + "id": 1418, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2661, + "id": 1361, "modifierName": { "argumentTypes": null, - "id": 2660, + "id": 1360, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3064, + "referencedDeclaration": 1764, "src": "3128:10:11", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -8803,15 +8803,15 @@ "name": "removeOwner", "nodeType": "FunctionDefinition", "parameters": { - "id": 2659, + "id": 1359, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2654, + "id": 1354, "name": "prevOwner", "nodeType": "VariableDeclaration", - "scope": 2718, + "scope": 1418, "src": "3051:17:11", "stateVariable": false, "storageLocation": "default", @@ -8820,7 +8820,7 @@ "typeString": "address" }, "typeName": { - "id": 2653, + "id": 1353, "name": "address", "nodeType": "ElementaryTypeName", "src": "3051:7:11", @@ -8834,10 +8834,10 @@ }, { "constant": false, - "id": 2656, + "id": 1356, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 2718, + "scope": 1418, "src": "3070:13:11", "stateVariable": false, "storageLocation": "default", @@ -8846,7 +8846,7 @@ "typeString": "address" }, "typeName": { - "id": 2655, + "id": 1355, "name": "address", "nodeType": "ElementaryTypeName", "src": "3070:7:11", @@ -8860,10 +8860,10 @@ }, { "constant": false, - "id": 2658, + "id": 1358, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 2718, + "scope": 1418, "src": "3085:18:11", "stateVariable": false, "storageLocation": "default", @@ -8872,7 +8872,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2657, + "id": 1357, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3085:7:11", @@ -8889,12 +8889,12 @@ }, "payable": false, "returnParameters": { - "id": 2662, + "id": 1362, "nodeType": "ParameterList", "parameters": [], "src": "3143:0:11" }, - "scope": 2888, + "scope": 1588, "src": "3030:783:11", "stateMutability": "nonpayable", "superFunction": null, @@ -8902,7 +8902,7 @@ }, { "body": { - "id": 2789, + "id": 1489, "nodeType": "Block", "src": "4259:639:11", "statements": [ @@ -8916,7 +8916,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 2736, + "id": 1436, "isConstant": false, "isLValue": false, "isPure": false, @@ -8927,18 +8927,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2732, + "id": 1432, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2730, + "id": 1430, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2724, + "referencedDeclaration": 1424, "src": "4318:8:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8950,7 +8950,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2731, + "id": 1431, "isConstant": false, "isLValue": false, "isPure": true, @@ -8979,18 +8979,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2735, + "id": 1435, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2733, + "id": 1433, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2724, + "referencedDeclaration": 1424, "src": "4335:8:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9001,11 +9001,11 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 2734, + "id": 1434, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2490, + "referencedDeclaration": 1190, "src": "4347:15:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9027,7 +9027,7 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 2737, + "id": 1437, "isConstant": false, "isLValue": false, "isPure": true, @@ -9054,21 +9054,21 @@ "typeString": "literal_string \"Invalid owner address provided\"" } ], - "id": 2729, + "id": 1429, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "4310:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2738, + "id": 1438, "isConstant": false, "isLValue": false, "isPure": false, @@ -9082,7 +9082,7 @@ "typeString": "tuple()" } }, - "id": 2739, + "id": 1439, "nodeType": "ExpressionStatement", "src": "4310:87:11" }, @@ -9096,7 +9096,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2745, + "id": 1445, "isConstant": false, "isLValue": false, "isPure": false, @@ -9105,25 +9105,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2741, + "id": 1441, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, + "referencedDeclaration": 1194, "src": "4455:6:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2743, + "id": 1443, "indexExpression": { "argumentTypes": null, - "id": 2742, + "id": 1442, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2724, + "referencedDeclaration": 1424, "src": "4462:8:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9146,7 +9146,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2744, + "id": 1444, "isConstant": false, "isLValue": false, "isPure": true, @@ -9170,7 +9170,7 @@ { "argumentTypes": null, "hexValue": "4164647265737320697320616c726561647920616e206f776e6572", - "id": 2746, + "id": 1446, "isConstant": false, "isLValue": false, "isPure": true, @@ -9197,21 +9197,21 @@ "typeString": "literal_string \"Address is already an owner\"" } ], - "id": 2740, + "id": 1440, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "4447:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2747, + "id": 1447, "isConstant": false, "isLValue": false, "isPure": false, @@ -9225,7 +9225,7 @@ "typeString": "tuple()" } }, - "id": 2748, + "id": 1448, "nodeType": "ExpressionStatement", "src": "4447:61:11" }, @@ -9239,7 +9239,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 2756, + "id": 1456, "isConstant": false, "isLValue": false, "isPure": false, @@ -9250,18 +9250,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2752, + "id": 1452, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2750, + "id": 1450, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2722, + "referencedDeclaration": 1422, "src": "4609:8:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9273,7 +9273,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2751, + "id": 1451, "isConstant": false, "isLValue": false, "isPure": true, @@ -9302,18 +9302,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2755, + "id": 1455, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2753, + "id": 1453, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2722, + "referencedDeclaration": 1422, "src": "4626:8:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9324,11 +9324,11 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 2754, + "id": 1454, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2490, + "referencedDeclaration": 1190, "src": "4638:15:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9350,7 +9350,7 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 2757, + "id": 1457, "isConstant": false, "isLValue": false, "isPure": true, @@ -9377,21 +9377,21 @@ "typeString": "literal_string \"Invalid owner address provided\"" } ], - "id": 2749, + "id": 1449, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "4601:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2758, + "id": 1458, "isConstant": false, "isLValue": false, "isPure": false, @@ -9405,7 +9405,7 @@ "typeString": "tuple()" } }, - "id": 2759, + "id": 1459, "nodeType": "ExpressionStatement", "src": "4601:87:11" }, @@ -9419,7 +9419,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2765, + "id": 1465, "isConstant": false, "isLValue": false, "isPure": false, @@ -9428,25 +9428,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2761, + "id": 1461, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, + "referencedDeclaration": 1194, "src": "4706:6:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2763, + "id": 1463, "indexExpression": { "argumentTypes": null, - "id": 2762, + "id": 1462, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2720, + "referencedDeclaration": 1420, "src": "4713:9:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9468,11 +9468,11 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 2764, + "id": 1464, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2722, + "referencedDeclaration": 1422, "src": "4727:8:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9488,7 +9488,7 @@ { "argumentTypes": null, "hexValue": "496e76616c696420707265764f776e65722c206f776e657220706169722070726f7669646564", - "id": 2766, + "id": 1466, "isConstant": false, "isLValue": false, "isPure": true, @@ -9515,21 +9515,21 @@ "typeString": "literal_string \"Invalid prevOwner, owner pair provided\"" } ], - "id": 2760, + "id": 1460, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "4698:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2767, + "id": 1467, "isConstant": false, "isLValue": false, "isPure": false, @@ -9543,14 +9543,14 @@ "typeString": "tuple()" } }, - "id": 2768, + "id": 1468, "nodeType": "ExpressionStatement", "src": "4698:80:11" }, { "expression": { "argumentTypes": null, - "id": 2775, + "id": 1475, "isConstant": false, "isLValue": false, "isPure": false, @@ -9559,25 +9559,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2769, + "id": 1469, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, + "referencedDeclaration": 1194, "src": "4788:6:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2771, + "id": 1471, "indexExpression": { "argumentTypes": null, - "id": 2770, + "id": 1470, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2724, + "referencedDeclaration": 1424, "src": "4795:8:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9601,25 +9601,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2772, + "id": 1472, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, + "referencedDeclaration": 1194, "src": "4807:6:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2774, + "id": 1474, "indexExpression": { "argumentTypes": null, - "id": 2773, + "id": 1473, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2722, + "referencedDeclaration": 1422, "src": "4814:8:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9643,14 +9643,14 @@ "typeString": "address" } }, - "id": 2776, + "id": 1476, "nodeType": "ExpressionStatement", "src": "4788:35:11" }, { "expression": { "argumentTypes": null, - "id": 2781, + "id": 1481, "isConstant": false, "isLValue": false, "isPure": false, @@ -9659,25 +9659,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2777, + "id": 1477, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, + "referencedDeclaration": 1194, "src": "4833:6:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2779, + "id": 1479, "indexExpression": { "argumentTypes": null, - "id": 2778, + "id": 1478, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2720, + "referencedDeclaration": 1420, "src": "4840:9:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9699,11 +9699,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2780, + "id": 1480, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2724, + "referencedDeclaration": 1424, "src": "4853:8:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9716,14 +9716,14 @@ "typeString": "address" } }, - "id": 2782, + "id": 1482, "nodeType": "ExpressionStatement", "src": "4833:28:11" }, { "expression": { "argumentTypes": null, - "id": 2787, + "id": 1487, "isConstant": false, "isLValue": false, "isPure": false, @@ -9732,25 +9732,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2783, + "id": 1483, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, + "referencedDeclaration": 1194, "src": "4871:6:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2785, + "id": 1485, "indexExpression": { "argumentTypes": null, - "id": 2784, + "id": 1484, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2722, + "referencedDeclaration": 1422, "src": "4878:8:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9773,7 +9773,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 2786, + "id": 1486, "isConstant": false, "isLValue": false, "isPure": true, @@ -9794,28 +9794,28 @@ "typeString": "address" } }, - "id": 2788, + "id": 1488, "nodeType": "ExpressionStatement", "src": "4871:20:11" } ] }, "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": 2790, + "id": 1490, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2727, + "id": 1427, "modifierName": { "argumentTypes": null, - "id": 2726, + "id": 1426, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3064, + "referencedDeclaration": 1764, "src": "4244:10:11", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -9829,15 +9829,15 @@ "name": "swapOwner", "nodeType": "FunctionDefinition", "parameters": { - "id": 2725, + "id": 1425, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2720, + "id": 1420, "name": "prevOwner", "nodeType": "VariableDeclaration", - "scope": 2790, + "scope": 1490, "src": "4166:17:11", "stateVariable": false, "storageLocation": "default", @@ -9846,7 +9846,7 @@ "typeString": "address" }, "typeName": { - "id": 2719, + "id": 1419, "name": "address", "nodeType": "ElementaryTypeName", "src": "4166:7:11", @@ -9860,10 +9860,10 @@ }, { "constant": false, - "id": 2722, + "id": 1422, "name": "oldOwner", "nodeType": "VariableDeclaration", - "scope": 2790, + "scope": 1490, "src": "4185:16:11", "stateVariable": false, "storageLocation": "default", @@ -9872,7 +9872,7 @@ "typeString": "address" }, "typeName": { - "id": 2721, + "id": 1421, "name": "address", "nodeType": "ElementaryTypeName", "src": "4185:7:11", @@ -9886,10 +9886,10 @@ }, { "constant": false, - "id": 2724, + "id": 1424, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 2790, + "scope": 1490, "src": "4203:16:11", "stateVariable": false, "storageLocation": "default", @@ -9898,7 +9898,7 @@ "typeString": "address" }, "typeName": { - "id": 2723, + "id": 1423, "name": "address", "nodeType": "ElementaryTypeName", "src": "4203:7:11", @@ -9915,12 +9915,12 @@ }, "payable": false, "returnParameters": { - "id": 2728, + "id": 1428, "nodeType": "ParameterList", "parameters": [], "src": "4259:0:11" }, - "scope": 2888, + "scope": 1588, "src": "4147:751:11", "stateMutability": "nonpayable", "superFunction": null, @@ -9928,7 +9928,7 @@ }, { "body": { - "id": 2815, + "id": 1515, "nodeType": "Block", "src": "5170:316:11", "statements": [ @@ -9942,18 +9942,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2800, + "id": 1500, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2798, + "id": 1498, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2792, + "referencedDeclaration": 1492, "src": "5257:10:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -9964,11 +9964,11 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 2799, + "id": 1499, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2496, + "referencedDeclaration": 1196, "src": "5271:10:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -9984,7 +9984,7 @@ { "argumentTypes": null, "hexValue": "5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f756e74", - "id": 2801, + "id": 1501, "isConstant": false, "isLValue": false, "isPure": true, @@ -10011,21 +10011,21 @@ "typeString": "literal_string \"Threshold cannot exceed owner count\"" } ], - "id": 2797, + "id": 1497, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "5249:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2802, + "id": 1502, "isConstant": false, "isLValue": false, "isPure": false, @@ -10039,7 +10039,7 @@ "typeString": "tuple()" } }, - "id": 2803, + "id": 1503, "nodeType": "ExpressionStatement", "src": "5249:72:11" }, @@ -10053,18 +10053,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2807, + "id": 1507, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2805, + "id": 1505, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2792, + "referencedDeclaration": 1492, "src": "5391:10:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10076,7 +10076,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 2806, + "id": 1506, "isConstant": false, "isLValue": false, "isPure": true, @@ -10100,7 +10100,7 @@ { "argumentTypes": null, "hexValue": "5468726573686f6c64206e6565647320746f2062652067726561746572207468616e2030", - "id": 2808, + "id": 1508, "isConstant": false, "isLValue": false, "isPure": true, @@ -10127,21 +10127,21 @@ "typeString": "literal_string \"Threshold needs to be greater than 0\"" } ], - "id": 2804, + "id": 1504, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "5383:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2809, + "id": 1509, "isConstant": false, "isLValue": false, "isPure": false, @@ -10155,25 +10155,25 @@ "typeString": "tuple()" } }, - "id": 2810, + "id": 1510, "nodeType": "ExpressionStatement", "src": "5383:64:11" }, { "expression": { "argumentTypes": null, - "id": 2813, + "id": 1513, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2811, + "id": 1511, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2498, + "referencedDeclaration": 1198, "src": "5457:9:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10184,11 +10184,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2812, + "id": 1512, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2792, + "referencedDeclaration": 1492, "src": "5469:10:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10201,28 +10201,28 @@ "typeString": "uint256" } }, - "id": 2814, + "id": 1514, "nodeType": "ExpressionStatement", "src": "5457:22:11" } ] }, "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": 2816, + "id": 1516, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2795, + "id": 1495, "modifierName": { "argumentTypes": null, - "id": 2794, + "id": 1494, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3064, + "referencedDeclaration": 1764, "src": "5155:10:11", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -10236,15 +10236,15 @@ "name": "changeThreshold", "nodeType": "FunctionDefinition", "parameters": { - "id": 2793, + "id": 1493, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2792, + "id": 1492, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 2816, + "scope": 1516, "src": "5112:18:11", "stateVariable": false, "storageLocation": "default", @@ -10253,7 +10253,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2791, + "id": 1491, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5112:7:11", @@ -10270,12 +10270,12 @@ }, "payable": false, "returnParameters": { - "id": 2796, + "id": 1496, "nodeType": "ParameterList", "parameters": [], "src": "5170:0:11" }, - "scope": 2888, + "scope": 1588, "src": "5087:399:11", "stateMutability": "nonpayable", "superFunction": null, @@ -10283,33 +10283,33 @@ }, { "body": { - "id": 2823, + "id": 1523, "nodeType": "Block", "src": "5574:33:11", "statements": [ { "expression": { "argumentTypes": null, - "id": 2821, + "id": 1521, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2498, + "referencedDeclaration": 1198, "src": "5591:9:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2820, - "id": 2822, + "functionReturnParameters": 1520, + "id": 1522, "nodeType": "Return", "src": "5584:16:11" } ] }, "documentation": null, - "id": 2824, + "id": 1524, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -10317,22 +10317,22 @@ "name": "getThreshold", "nodeType": "FunctionDefinition", "parameters": { - "id": 2817, + "id": 1517, "nodeType": "ParameterList", "parameters": [], "src": "5513:2:11" }, "payable": false, "returnParameters": { - "id": 2820, + "id": 1520, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2819, + "id": 1519, "name": "", "nodeType": "VariableDeclaration", - "scope": 2824, + "scope": 1524, "src": "5561:7:11", "stateVariable": false, "storageLocation": "default", @@ -10341,7 +10341,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2818, + "id": 1518, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5561:7:11", @@ -10356,7 +10356,7 @@ ], "src": "5560:9:11" }, - "scope": 2888, + "scope": 1588, "src": "5492:115:11", "stateMutability": "view", "superFunction": null, @@ -10364,7 +10364,7 @@ }, { "body": { - "id": 2837, + "id": 1537, "nodeType": "Block", "src": "5700:42:11", "statements": [ @@ -10375,7 +10375,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2835, + "id": 1535, "isConstant": false, "isLValue": false, "isPure": false, @@ -10384,25 +10384,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2831, + "id": 1531, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, + "referencedDeclaration": 1194, "src": "5717:6:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2833, + "id": 1533, "indexExpression": { "argumentTypes": null, - "id": 2832, + "id": 1532, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2826, + "referencedDeclaration": 1526, "src": "5724:5:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10425,7 +10425,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2834, + "id": 1534, "isConstant": false, "isLValue": false, "isPure": true, @@ -10446,15 +10446,15 @@ "typeString": "bool" } }, - "functionReturnParameters": 2830, - "id": 2836, + "functionReturnParameters": 1530, + "id": 1536, "nodeType": "Return", "src": "5710:25:11" } ] }, "documentation": null, - "id": 2838, + "id": 1538, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -10462,15 +10462,15 @@ "name": "isOwner", "nodeType": "FunctionDefinition", "parameters": { - "id": 2827, + "id": 1527, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2826, + "id": 1526, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 2838, + "scope": 1538, "src": "5630:13:11", "stateVariable": false, "storageLocation": "default", @@ -10479,7 +10479,7 @@ "typeString": "address" }, "typeName": { - "id": 2825, + "id": 1525, "name": "address", "nodeType": "ElementaryTypeName", "src": "5630:7:11", @@ -10496,15 +10496,15 @@ }, "payable": false, "returnParameters": { - "id": 2830, + "id": 1530, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2829, + "id": 1529, "name": "", "nodeType": "VariableDeclaration", - "scope": 2838, + "scope": 1538, "src": "5690:4:11", "stateVariable": false, "storageLocation": "default", @@ -10513,7 +10513,7 @@ "typeString": "bool" }, "typeName": { - "id": 2828, + "id": 1528, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5690:4:11", @@ -10528,7 +10528,7 @@ ], "src": "5689:6:11" }, - "scope": 2888, + "scope": 1588, "src": "5613:129:11", "stateMutability": "view", "superFunction": null, @@ -10536,21 +10536,21 @@ }, { "body": { - "id": 2886, + "id": 1586, "nodeType": "Block", "src": "5905:377:11", "statements": [ { "assignments": [ - 2847 + 1547 ], "declarations": [ { "constant": false, - "id": 2847, + "id": 1547, "name": "array", "nodeType": "VariableDeclaration", - "scope": 2887, + "scope": 1587, "src": "5915:22:11", "stateVariable": false, "storageLocation": "memory", @@ -10560,7 +10560,7 @@ }, "typeName": { "baseType": { - "id": 2845, + "id": 1545, "name": "address", "nodeType": "ElementaryTypeName", "src": "5915:7:11", @@ -10569,7 +10569,7 @@ "typeString": "address" } }, - "id": 2846, + "id": 1546, "length": null, "nodeType": "ArrayTypeName", "src": "5915:9:11", @@ -10582,17 +10582,17 @@ "visibility": "internal" } ], - "id": 2853, + "id": 1553, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2851, + "id": 1551, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2496, + "referencedDeclaration": 1196, "src": "5954:10:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10607,7 +10607,7 @@ "typeString": "uint256" } ], - "id": 2850, + "id": 1550, "isConstant": false, "isLValue": false, "isPure": true, @@ -10620,7 +10620,7 @@ }, "typeName": { "baseType": { - "id": 2848, + "id": 1548, "name": "address", "nodeType": "ElementaryTypeName", "src": "5944:7:11", @@ -10629,7 +10629,7 @@ "typeString": "address" } }, - "id": 2849, + "id": 1549, "length": null, "nodeType": "ArrayTypeName", "src": "5944:9:11", @@ -10639,7 +10639,7 @@ } } }, - "id": 2852, + "id": 1552, "isConstant": false, "isLValue": false, "isPure": false, @@ -10658,15 +10658,15 @@ }, { "assignments": [ - 2855 + 1555 ], "declarations": [ { "constant": false, - "id": 2855, + "id": 1555, "name": "index", "nodeType": "VariableDeclaration", - "scope": 2887, + "scope": 1587, "src": "6009:13:11", "stateVariable": false, "storageLocation": "default", @@ -10675,7 +10675,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2854, + "id": 1554, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6009:7:11", @@ -10688,11 +10688,11 @@ "visibility": "internal" } ], - "id": 2857, + "id": 1557, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 2856, + "id": 1556, "isConstant": false, "isLValue": false, "isPure": true, @@ -10712,15 +10712,15 @@ }, { "assignments": [ - 2859 + 1559 ], "declarations": [ { "constant": false, - "id": 2859, + "id": 1559, "name": "currentOwner", "nodeType": "VariableDeclaration", - "scope": 2887, + "scope": 1587, "src": "6036:20:11", "stateVariable": false, "storageLocation": "default", @@ -10729,7 +10729,7 @@ "typeString": "address" }, "typeName": { - "id": 2858, + "id": 1558, "name": "address", "nodeType": "ElementaryTypeName", "src": "6036:7:11", @@ -10742,30 +10742,30 @@ "visibility": "internal" } ], - "id": 2863, + "id": 1563, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2860, + "id": 1560, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, + "referencedDeclaration": 1194, "src": "6059:6:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2862, + "id": 1562, "indexExpression": { "argumentTypes": null, - "id": 2861, + "id": 1561, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2490, + "referencedDeclaration": 1190, "src": "6066:15:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10788,14 +10788,14 @@ }, { "body": { - "id": 2882, + "id": 1582, "nodeType": "Block", "src": "6131:123:11", "statements": [ { "expression": { "argumentTypes": null, - "id": 2871, + "id": 1571, "isConstant": false, "isLValue": false, "isPure": false, @@ -10804,25 +10804,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2867, + "id": 1567, "name": "array", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2847, + "referencedDeclaration": 1547, "src": "6145:5:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2869, + "id": 1569, "indexExpression": { "argumentTypes": null, - "id": 2868, + "id": 1568, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2855, + "referencedDeclaration": 1555, "src": "6151:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10844,11 +10844,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2870, + "id": 1570, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2859, + "referencedDeclaration": 1559, "src": "6160:12:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10861,25 +10861,25 @@ "typeString": "address" } }, - "id": 2872, + "id": 1572, "nodeType": "ExpressionStatement", "src": "6145:27:11" }, { "expression": { "argumentTypes": null, - "id": 2877, + "id": 1577, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2873, + "id": 1573, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2859, + "referencedDeclaration": 1559, "src": "6186:12:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10892,25 +10892,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2874, + "id": 1574, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2494, + "referencedDeclaration": 1194, "src": "6201:6:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 2876, + "id": 1576, "indexExpression": { "argumentTypes": null, - "id": 2875, + "id": 1575, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2859, + "referencedDeclaration": 1559, "src": "6208:12:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10934,14 +10934,14 @@ "typeString": "address" } }, - "id": 2878, + "id": 1578, "nodeType": "ExpressionStatement", "src": "6186:35:11" }, { "expression": { "argumentTypes": null, - "id": 2880, + "id": 1580, "isConstant": false, "isLValue": false, "isPure": false, @@ -10952,11 +10952,11 @@ "src": "6235:8:11", "subExpression": { "argumentTypes": null, - "id": 2879, + "id": 1579, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2855, + "referencedDeclaration": 1555, "src": "6235:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10968,7 +10968,7 @@ "typeString": "uint256" } }, - "id": 2881, + "id": 1581, "nodeType": "ExpressionStatement", "src": "6235:8:11" } @@ -10980,18 +10980,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2866, + "id": 1566, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2864, + "id": 1564, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2859, + "referencedDeclaration": 1559, "src": "6098:12:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11002,11 +11002,11 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 2865, + "id": 1565, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2490, + "referencedDeclaration": 1190, "src": "6114:15:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11019,33 +11019,33 @@ "typeString": "bool" } }, - "id": 2883, + "id": 1583, "nodeType": "WhileStatement", "src": "6092:162:11" }, { "expression": { "argumentTypes": null, - "id": 2884, + "id": 1584, "name": "array", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2847, + "referencedDeclaration": 1547, "src": "6270:5:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "functionReturnParameters": 2843, - "id": 2885, + "functionReturnParameters": 1543, + "id": 1585, "nodeType": "Return", "src": "6263:12:11" } ] }, "documentation": "@dev Returns array of owners.\n @return Array of Safe owners.", - "id": 2887, + "id": 1587, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -11053,22 +11053,22 @@ "name": "getOwners", "nodeType": "FunctionDefinition", "parameters": { - "id": 2839, + "id": 1539, "nodeType": "ParameterList", "parameters": [], "src": "5842:2:11" }, "payable": false, "returnParameters": { - "id": 2843, + "id": 1543, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2842, + "id": 1542, "name": "", "nodeType": "VariableDeclaration", - "scope": 2887, + "scope": 1587, "src": "5890:9:11", "stateVariable": false, "storageLocation": "default", @@ -11078,7 +11078,7 @@ }, "typeName": { "baseType": { - "id": 2840, + "id": 1540, "name": "address", "nodeType": "ElementaryTypeName", "src": "5890:7:11", @@ -11087,7 +11087,7 @@ "typeString": "address" } }, - "id": 2841, + "id": 1541, "length": null, "nodeType": "ArrayTypeName", "src": "5890:9:11", @@ -11102,14 +11102,14 @@ ], "src": "5889:11:11" }, - "scope": 2888, + "scope": 1588, "src": "5824:458:11", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 2889, + "scope": 1589, "src": "240:6044:11" } ], @@ -11121,5 +11121,5 @@ }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-06-29T09:01:22.079Z" + "updatedAt": "2018-08-20T07:44:41.090Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/PayingProxy.json b/safe-contracts/build/contracts/PayingProxy.json index 809d039bee..50efa29e75 100644 --- a/safe-contracts/build/contracts/PayingProxy.json +++ b/safe-contracts/build/contracts/PayingProxy.json @@ -72,14 +72,14 @@ "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/PayingProxy.sol", "exportedSymbols": { "PayingProxy": [ - 2945 + 1645 ] }, - "id": 2946, + "id": 1646, "nodeType": "SourceUnit", "nodes": [ { - "id": 2890, + "id": 1590, "literals": [ "solidity", "0.4", @@ -91,9 +91,9 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/DelegateConstructorProxy.sol", "file": "./DelegateConstructorProxy.sol", - "id": 2891, + "id": 1591, "nodeType": "ImportDirective", - "scope": 2946, + "scope": 1646, "sourceUnit": 24, "src": "24:40:12", "symbolAliases": [], @@ -102,10 +102,10 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SecuredTokenTransfer.sol", "file": "./SecuredTokenTransfer.sol", - "id": 2892, + "id": 1592, "nodeType": "ImportDirective", - "scope": 2946, - "sourceUnit": 3049, + "scope": 1646, + "sourceUnit": 1749, "src": "65:36:12", "symbolAliases": [], "unitAlias": "" @@ -116,7 +116,7 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2893, + "id": 1593, "name": "DelegateConstructorProxy", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 23, @@ -126,7 +126,7 @@ "typeString": "contract DelegateConstructorProxy" } }, - "id": 2894, + "id": 1594, "nodeType": "InheritanceSpecifier", "src": "475:24:12" }, @@ -134,42 +134,42 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2895, + "id": 1595, "name": "SecuredTokenTransfer", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3048, + "referencedDeclaration": 1748, "src": "501:20:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_SecuredTokenTransfer_$3048", + "typeIdentifier": "t_contract$_SecuredTokenTransfer_$1748", "typeString": "contract SecuredTokenTransfer" } }, - "id": 2896, + "id": 1596, "nodeType": "InheritanceSpecifier", "src": "501:20:12" } ], "contractDependencies": [ 23, - 2988, - 3048 + 1688, + 1748 ], "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": 2945, + "id": 1645, "linearizedBaseContracts": [ - 2945, - 3048, + 1645, + 1748, 23, - 2988 + 1688 ], "name": "PayingProxy", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 2943, + "id": 1643, "nodeType": "Block", "src": "1131:390:12", "statements": [ @@ -180,18 +180,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2915, + "id": 1615, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2913, + "id": 1613, "name": "payment", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2906, + "referencedDeclaration": 1606, "src": "1145:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -203,7 +203,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2914, + "id": 1614, "isConstant": false, "isLValue": false, "isPure": true, @@ -225,11 +225,11 @@ } }, "falseBody": null, - "id": 2942, + "id": 1642, "nodeType": "IfStatement", "src": "1141:373:12", "trueBody": { - "id": 2941, + "id": 1641, "nodeType": "Block", "src": "1158:356:12", "statements": [ @@ -240,18 +240,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2920, + "id": 1620, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2916, + "id": 1616, "name": "paymentToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2904, + "referencedDeclaration": 1604, "src": "1176:12:12", "typeDescriptions": { "typeIdentifier": "t_address", @@ -266,7 +266,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2918, + "id": 1618, "isConstant": false, "isLValue": false, "isPure": true, @@ -289,7 +289,7 @@ "typeString": "int_const 0" } ], - "id": 2917, + "id": 1617, "isConstant": false, "isLValue": false, "isPure": true, @@ -302,7 +302,7 @@ }, "typeName": "address" }, - "id": 2919, + "id": 1619, "isConstant": false, "isLValue": false, "isPure": true, @@ -323,7 +323,7 @@ } }, "falseBody": { - "id": 2939, + "id": 1639, "nodeType": "Block", "src": "1376:128:12", "statements": [ @@ -336,11 +336,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2932, + "id": 1632, "name": "paymentToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2904, + "referencedDeclaration": 1604, "src": "1416:12:12", "typeDescriptions": { "typeIdentifier": "t_address", @@ -349,11 +349,11 @@ }, { "argumentTypes": null, - "id": 2933, + "id": 1633, "name": "funder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2902, + "referencedDeclaration": 1602, "src": "1430:6:12", "typeDescriptions": { "typeIdentifier": "t_address", @@ -362,11 +362,11 @@ }, { "argumentTypes": null, - "id": 2934, + "id": 1634, "name": "payment", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2906, + "referencedDeclaration": 1606, "src": "1438:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -389,18 +389,18 @@ "typeString": "uint256" } ], - "id": 2931, + "id": 1631, "name": "transferToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3047, + "referencedDeclaration": 1747, "src": "1402:13:12", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) returns (bool)" } }, - "id": 2935, + "id": 1635, "isConstant": false, "isLValue": false, "isPure": false, @@ -417,7 +417,7 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f74207061792073616665206372656174696f6e207769746820746f6b656e", - "id": 2936, + "id": 1636, "isConstant": false, "isLValue": false, "isPure": true, @@ -444,21 +444,21 @@ "typeString": "literal_string \"Could not pay safe creation with token\"" } ], - "id": 2930, + "id": 1630, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "1394:7:12", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2937, + "id": 1637, "isConstant": false, "isLValue": false, "isPure": false, @@ -472,17 +472,17 @@ "typeString": "tuple()" } }, - "id": 2938, + "id": 1638, "nodeType": "ExpressionStatement", "src": "1394:95:12" } ] }, - "id": 2940, + "id": 1640, "nodeType": "IfStatement", "src": "1172:332:12", "trueBody": { - "id": 2929, + "id": 1629, "nodeType": "Block", "src": "1204:166:12", "statements": [ @@ -495,11 +495,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2924, + "id": 1624, "name": "payment", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2906, + "referencedDeclaration": 1606, "src": "1304:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -516,18 +516,18 @@ ], "expression": { "argumentTypes": null, - "id": 2922, + "id": 1622, "name": "funder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2902, + "referencedDeclaration": 1602, "src": "1292:6:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2923, + "id": 1623, "isConstant": false, "isLValue": false, "isPure": false, @@ -541,7 +541,7 @@ "typeString": "function (uint256) returns (bool)" } }, - "id": 2925, + "id": 1625, "isConstant": false, "isLValue": false, "isPure": false, @@ -558,7 +558,7 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f74207061792073616665206372656174696f6e2077697468206574686572", - "id": 2926, + "id": 1626, "isConstant": false, "isLValue": false, "isPure": true, @@ -585,21 +585,21 @@ "typeString": "literal_string \"Could not pay safe creation with ether\"" } ], - "id": 2921, + "id": 1621, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "1284:7:12", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2927, + "id": 1627, "isConstant": false, "isLValue": false, "isPure": false, @@ -613,7 +613,7 @@ "typeString": "tuple()" } }, - "id": 2928, + "id": 1628, "nodeType": "ExpressionStatement", "src": "1284:71:12" } @@ -626,7 +626,7 @@ ] }, "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": 2944, + "id": 1644, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -635,11 +635,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2909, + "id": 1609, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2898, + "referencedDeclaration": 1598, "src": "1086:11:12", "typeDescriptions": { "typeIdentifier": "t_address", @@ -648,11 +648,11 @@ }, { "argumentTypes": null, - "id": 2910, + "id": 1610, "name": "initializer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2900, + "referencedDeclaration": 1600, "src": "1099:11:12", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -660,10 +660,10 @@ } } ], - "id": 2911, + "id": 1611, "modifierName": { "argumentTypes": null, - "id": 2908, + "id": 1608, "name": "DelegateConstructorProxy", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -681,15 +681,15 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2907, + "id": 1607, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2898, + "id": 1598, "name": "_masterCopy", "nodeType": "VariableDeclaration", - "scope": 2944, + "scope": 1644, "src": "957:19:12", "stateVariable": false, "storageLocation": "default", @@ -698,7 +698,7 @@ "typeString": "address" }, "typeName": { - "id": 2897, + "id": 1597, "name": "address", "nodeType": "ElementaryTypeName", "src": "957:7:12", @@ -712,10 +712,10 @@ }, { "constant": false, - "id": 2900, + "id": 1600, "name": "initializer", "nodeType": "VariableDeclaration", - "scope": 2944, + "scope": 1644, "src": "978:17:12", "stateVariable": false, "storageLocation": "default", @@ -724,7 +724,7 @@ "typeString": "bytes" }, "typeName": { - "id": 2899, + "id": 1599, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "978:5:12", @@ -738,10 +738,10 @@ }, { "constant": false, - "id": 2902, + "id": 1602, "name": "funder", "nodeType": "VariableDeclaration", - "scope": 2944, + "scope": 1644, "src": "997:14:12", "stateVariable": false, "storageLocation": "default", @@ -750,7 +750,7 @@ "typeString": "address" }, "typeName": { - "id": 2901, + "id": 1601, "name": "address", "nodeType": "ElementaryTypeName", "src": "997:7:12", @@ -764,10 +764,10 @@ }, { "constant": false, - "id": 2904, + "id": 1604, "name": "paymentToken", "nodeType": "VariableDeclaration", - "scope": 2944, + "scope": 1644, "src": "1013:20:12", "stateVariable": false, "storageLocation": "default", @@ -776,7 +776,7 @@ "typeString": "address" }, "typeName": { - "id": 2903, + "id": 1603, "name": "address", "nodeType": "ElementaryTypeName", "src": "1013:7:12", @@ -790,10 +790,10 @@ }, { "constant": false, - "id": 2906, + "id": 1606, "name": "payment", "nodeType": "VariableDeclaration", - "scope": 2944, + "scope": 1644, "src": "1035:15:12", "stateVariable": false, "storageLocation": "default", @@ -802,7 +802,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2905, + "id": 1605, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1035:7:12", @@ -819,19 +819,19 @@ }, "payable": false, "returnParameters": { - "id": 2912, + "id": 1612, "nodeType": "ParameterList", "parameters": [], "src": "1131:0:12" }, - "scope": 2945, + "scope": 1645, "src": "945:576:12", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 2946, + "scope": 1646, "src": "451:1072:12" } ], @@ -841,14 +841,14 @@ "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/PayingProxy.sol", "exportedSymbols": { "PayingProxy": [ - 2945 + 1645 ] }, - "id": 2946, + "id": 1646, "nodeType": "SourceUnit", "nodes": [ { - "id": 2890, + "id": 1590, "literals": [ "solidity", "0.4", @@ -860,9 +860,9 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/DelegateConstructorProxy.sol", "file": "./DelegateConstructorProxy.sol", - "id": 2891, + "id": 1591, "nodeType": "ImportDirective", - "scope": 2946, + "scope": 1646, "sourceUnit": 24, "src": "24:40:12", "symbolAliases": [], @@ -871,10 +871,10 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SecuredTokenTransfer.sol", "file": "./SecuredTokenTransfer.sol", - "id": 2892, + "id": 1592, "nodeType": "ImportDirective", - "scope": 2946, - "sourceUnit": 3049, + "scope": 1646, + "sourceUnit": 1749, "src": "65:36:12", "symbolAliases": [], "unitAlias": "" @@ -885,7 +885,7 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2893, + "id": 1593, "name": "DelegateConstructorProxy", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 23, @@ -895,7 +895,7 @@ "typeString": "contract DelegateConstructorProxy" } }, - "id": 2894, + "id": 1594, "nodeType": "InheritanceSpecifier", "src": "475:24:12" }, @@ -903,42 +903,42 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2895, + "id": 1595, "name": "SecuredTokenTransfer", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3048, + "referencedDeclaration": 1748, "src": "501:20:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_SecuredTokenTransfer_$3048", + "typeIdentifier": "t_contract$_SecuredTokenTransfer_$1748", "typeString": "contract SecuredTokenTransfer" } }, - "id": 2896, + "id": 1596, "nodeType": "InheritanceSpecifier", "src": "501:20:12" } ], "contractDependencies": [ 23, - 2988, - 3048 + 1688, + 1748 ], "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": 2945, + "id": 1645, "linearizedBaseContracts": [ - 2945, - 3048, + 1645, + 1748, 23, - 2988 + 1688 ], "name": "PayingProxy", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 2943, + "id": 1643, "nodeType": "Block", "src": "1131:390:12", "statements": [ @@ -949,18 +949,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2915, + "id": 1615, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2913, + "id": 1613, "name": "payment", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2906, + "referencedDeclaration": 1606, "src": "1145:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -972,7 +972,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2914, + "id": 1614, "isConstant": false, "isLValue": false, "isPure": true, @@ -994,11 +994,11 @@ } }, "falseBody": null, - "id": 2942, + "id": 1642, "nodeType": "IfStatement", "src": "1141:373:12", "trueBody": { - "id": 2941, + "id": 1641, "nodeType": "Block", "src": "1158:356:12", "statements": [ @@ -1009,18 +1009,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2920, + "id": 1620, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2916, + "id": 1616, "name": "paymentToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2904, + "referencedDeclaration": 1604, "src": "1176:12:12", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1035,7 +1035,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2918, + "id": 1618, "isConstant": false, "isLValue": false, "isPure": true, @@ -1058,7 +1058,7 @@ "typeString": "int_const 0" } ], - "id": 2917, + "id": 1617, "isConstant": false, "isLValue": false, "isPure": true, @@ -1071,7 +1071,7 @@ }, "typeName": "address" }, - "id": 2919, + "id": 1619, "isConstant": false, "isLValue": false, "isPure": true, @@ -1092,7 +1092,7 @@ } }, "falseBody": { - "id": 2939, + "id": 1639, "nodeType": "Block", "src": "1376:128:12", "statements": [ @@ -1105,11 +1105,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2932, + "id": 1632, "name": "paymentToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2904, + "referencedDeclaration": 1604, "src": "1416:12:12", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1118,11 +1118,11 @@ }, { "argumentTypes": null, - "id": 2933, + "id": 1633, "name": "funder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2902, + "referencedDeclaration": 1602, "src": "1430:6:12", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1131,11 +1131,11 @@ }, { "argumentTypes": null, - "id": 2934, + "id": 1634, "name": "payment", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2906, + "referencedDeclaration": 1606, "src": "1438:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1158,18 +1158,18 @@ "typeString": "uint256" } ], - "id": 2931, + "id": 1631, "name": "transferToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3047, + "referencedDeclaration": 1747, "src": "1402:13:12", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) returns (bool)" } }, - "id": 2935, + "id": 1635, "isConstant": false, "isLValue": false, "isPure": false, @@ -1186,7 +1186,7 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f74207061792073616665206372656174696f6e207769746820746f6b656e", - "id": 2936, + "id": 1636, "isConstant": false, "isLValue": false, "isPure": true, @@ -1213,21 +1213,21 @@ "typeString": "literal_string \"Could not pay safe creation with token\"" } ], - "id": 2930, + "id": 1630, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "1394:7:12", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2937, + "id": 1637, "isConstant": false, "isLValue": false, "isPure": false, @@ -1241,17 +1241,17 @@ "typeString": "tuple()" } }, - "id": 2938, + "id": 1638, "nodeType": "ExpressionStatement", "src": "1394:95:12" } ] }, - "id": 2940, + "id": 1640, "nodeType": "IfStatement", "src": "1172:332:12", "trueBody": { - "id": 2929, + "id": 1629, "nodeType": "Block", "src": "1204:166:12", "statements": [ @@ -1264,11 +1264,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2924, + "id": 1624, "name": "payment", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2906, + "referencedDeclaration": 1606, "src": "1304:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1285,18 +1285,18 @@ ], "expression": { "argumentTypes": null, - "id": 2922, + "id": 1622, "name": "funder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2902, + "referencedDeclaration": 1602, "src": "1292:6:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2923, + "id": 1623, "isConstant": false, "isLValue": false, "isPure": false, @@ -1310,7 +1310,7 @@ "typeString": "function (uint256) returns (bool)" } }, - "id": 2925, + "id": 1625, "isConstant": false, "isLValue": false, "isPure": false, @@ -1327,7 +1327,7 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f74207061792073616665206372656174696f6e2077697468206574686572", - "id": 2926, + "id": 1626, "isConstant": false, "isLValue": false, "isPure": true, @@ -1354,21 +1354,21 @@ "typeString": "literal_string \"Could not pay safe creation with ether\"" } ], - "id": 2921, + "id": 1621, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "1284:7:12", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2927, + "id": 1627, "isConstant": false, "isLValue": false, "isPure": false, @@ -1382,7 +1382,7 @@ "typeString": "tuple()" } }, - "id": 2928, + "id": 1628, "nodeType": "ExpressionStatement", "src": "1284:71:12" } @@ -1395,7 +1395,7 @@ ] }, "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": 2944, + "id": 1644, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -1404,11 +1404,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2909, + "id": 1609, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2898, + "referencedDeclaration": 1598, "src": "1086:11:12", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1417,11 +1417,11 @@ }, { "argumentTypes": null, - "id": 2910, + "id": 1610, "name": "initializer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2900, + "referencedDeclaration": 1600, "src": "1099:11:12", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -1429,10 +1429,10 @@ } } ], - "id": 2911, + "id": 1611, "modifierName": { "argumentTypes": null, - "id": 2908, + "id": 1608, "name": "DelegateConstructorProxy", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -1450,15 +1450,15 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2907, + "id": 1607, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2898, + "id": 1598, "name": "_masterCopy", "nodeType": "VariableDeclaration", - "scope": 2944, + "scope": 1644, "src": "957:19:12", "stateVariable": false, "storageLocation": "default", @@ -1467,7 +1467,7 @@ "typeString": "address" }, "typeName": { - "id": 2897, + "id": 1597, "name": "address", "nodeType": "ElementaryTypeName", "src": "957:7:12", @@ -1481,10 +1481,10 @@ }, { "constant": false, - "id": 2900, + "id": 1600, "name": "initializer", "nodeType": "VariableDeclaration", - "scope": 2944, + "scope": 1644, "src": "978:17:12", "stateVariable": false, "storageLocation": "default", @@ -1493,7 +1493,7 @@ "typeString": "bytes" }, "typeName": { - "id": 2899, + "id": 1599, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "978:5:12", @@ -1507,10 +1507,10 @@ }, { "constant": false, - "id": 2902, + "id": 1602, "name": "funder", "nodeType": "VariableDeclaration", - "scope": 2944, + "scope": 1644, "src": "997:14:12", "stateVariable": false, "storageLocation": "default", @@ -1519,7 +1519,7 @@ "typeString": "address" }, "typeName": { - "id": 2901, + "id": 1601, "name": "address", "nodeType": "ElementaryTypeName", "src": "997:7:12", @@ -1533,10 +1533,10 @@ }, { "constant": false, - "id": 2904, + "id": 1604, "name": "paymentToken", "nodeType": "VariableDeclaration", - "scope": 2944, + "scope": 1644, "src": "1013:20:12", "stateVariable": false, "storageLocation": "default", @@ -1545,7 +1545,7 @@ "typeString": "address" }, "typeName": { - "id": 2903, + "id": 1603, "name": "address", "nodeType": "ElementaryTypeName", "src": "1013:7:12", @@ -1559,10 +1559,10 @@ }, { "constant": false, - "id": 2906, + "id": 1606, "name": "payment", "nodeType": "VariableDeclaration", - "scope": 2944, + "scope": 1644, "src": "1035:15:12", "stateVariable": false, "storageLocation": "default", @@ -1571,7 +1571,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2905, + "id": 1605, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1035:7:12", @@ -1588,19 +1588,19 @@ }, "payable": false, "returnParameters": { - "id": 2912, + "id": 1612, "nodeType": "ParameterList", "parameters": [], "src": "1131:0:12" }, - "scope": 2945, + "scope": 1645, "src": "945:576:12", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 2946, + "scope": 1646, "src": "451:1072:12" } ], @@ -1612,5 +1612,5 @@ }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-06-29T09:01:22.083Z" + "updatedAt": "2018-08-20T07:44:41.092Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/Proxy.json b/safe-contracts/build/contracts/Proxy.json index 69aaa3b561..9d740cec8d 100644 --- a/safe-contracts/build/contracts/Proxy.json +++ b/safe-contracts/build/contracts/Proxy.json @@ -56,14 +56,14 @@ "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Proxy.sol", "exportedSymbols": { "Proxy": [ - 2988 + 1688 ] }, - "id": 2989, + "id": 1689, "nodeType": "SourceUnit", "nodes": [ { - "id": 2947, + "id": 1647, "literals": [ "solidity", "0.4", @@ -78,19 +78,19 @@ "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": 2988, + "id": 1688, "linearizedBaseContracts": [ - 2988 + 1688 ], "name": "Proxy", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 2949, + "id": 1649, "name": "masterCopy", "nodeType": "VariableDeclaration", - "scope": 2988, + "scope": 1688, "src": "363:18:13", "stateVariable": true, "storageLocation": "default", @@ -99,7 +99,7 @@ "typeString": "address" }, "typeName": { - "id": 2948, + "id": 1648, "name": "address", "nodeType": "ElementaryTypeName", "src": "363:7:13", @@ -113,7 +113,7 @@ }, { "body": { - "id": 2965, + "id": 1665, "nodeType": "Block", "src": "560:116:13", "statements": [ @@ -127,18 +127,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2957, + "id": 1657, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2955, + "id": 1655, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2951, + "referencedDeclaration": 1651, "src": "578:11:13", "typeDescriptions": { "typeIdentifier": "t_address", @@ -150,7 +150,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2956, + "id": 1656, "isConstant": false, "isLValue": false, "isPure": true, @@ -174,7 +174,7 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206d617374657220636f707920616464726573732070726f7669646564", - "id": 2958, + "id": 1658, "isConstant": false, "isLValue": false, "isPure": true, @@ -201,21 +201,21 @@ "typeString": "literal_string \"Invalid master copy address provided\"" } ], - "id": 2954, + "id": 1654, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "570:7:13", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2959, + "id": 1659, "isConstant": false, "isLValue": false, "isPure": false, @@ -229,25 +229,25 @@ "typeString": "tuple()" } }, - "id": 2960, + "id": 1660, "nodeType": "ExpressionStatement", "src": "570:65:13" }, { "expression": { "argumentTypes": null, - "id": 2963, + "id": 1663, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2961, + "id": 1661, "name": "masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2949, + "referencedDeclaration": 1649, "src": "645:10:13", "typeDescriptions": { "typeIdentifier": "t_address", @@ -258,11 +258,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2962, + "id": 1662, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2951, + "referencedDeclaration": 1651, "src": "658:11:13", "typeDescriptions": { "typeIdentifier": "t_address", @@ -275,14 +275,14 @@ "typeString": "address" } }, - "id": 2964, + "id": 1664, "nodeType": "ExpressionStatement", "src": "645:24:13" } ] }, "documentation": "@dev Constructor function sets address of master copy contract.\n @param _masterCopy Master copy address.", - "id": 2966, + "id": 1666, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -290,15 +290,15 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2952, + "id": 1652, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2951, + "id": 1651, "name": "_masterCopy", "nodeType": "VariableDeclaration", - "scope": 2966, + "scope": 1666, "src": "520:19:13", "stateVariable": false, "storageLocation": "default", @@ -307,7 +307,7 @@ "typeString": "address" }, "typeName": { - "id": 2950, + "id": 1650, "name": "address", "nodeType": "ElementaryTypeName", "src": "520:7:13", @@ -324,12 +324,12 @@ }, "payable": false, "returnParameters": { - "id": 2953, + "id": 1653, "nodeType": "ParameterList", "parameters": [], "src": "560:0:13" }, - "scope": 2988, + "scope": 1688, "src": "508:168:13", "stateMutability": "nonpayable", "superFunction": null, @@ -337,13 +337,13 @@ }, { "body": { - "id": 2970, + "id": 1670, "nodeType": "Block", "src": "826:470:13", "statements": [ { "externalReferences": [], - "id": 2969, + "id": 1669, "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:13" @@ -351,7 +351,7 @@ ] }, "documentation": "@dev Fallback function forwards all transactions and returns all received return data.", - "id": 2971, + "id": 1671, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -359,19 +359,19 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2967, + "id": 1667, "nodeType": "ParameterList", "parameters": [], "src": "786:2:13" }, "payable": true, "returnParameters": { - "id": 2968, + "id": 1668, "nodeType": "ParameterList", "parameters": [], "src": "826:0:13" }, - "scope": 2988, + "scope": 1688, "src": "777:519:13", "stateMutability": "payable", "superFunction": null, @@ -379,33 +379,33 @@ }, { "body": { - "id": 2978, + "id": 1678, "nodeType": "Block", "src": "1386:34:13", "statements": [ { "expression": { "argumentTypes": null, - "id": 2976, + "id": 1676, "name": "masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2949, + "referencedDeclaration": 1649, "src": "1403:10:13", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 2975, - "id": 2977, + "functionReturnParameters": 1675, + "id": 1677, "nodeType": "Return", "src": "1396:17:13" } ] }, "documentation": null, - "id": 2979, + "id": 1679, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -413,22 +413,22 @@ "name": "implementation", "nodeType": "FunctionDefinition", "parameters": { - "id": 2972, + "id": 1672, "nodeType": "ParameterList", "parameters": [], "src": "1325:2:13" }, "payable": false, "returnParameters": { - "id": 2975, + "id": 1675, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2974, + "id": 1674, "name": "", "nodeType": "VariableDeclaration", - "scope": 2979, + "scope": 1679, "src": "1373:7:13", "stateVariable": false, "storageLocation": "default", @@ -437,7 +437,7 @@ "typeString": "address" }, "typeName": { - "id": 2973, + "id": 1673, "name": "address", "nodeType": "ElementaryTypeName", "src": "1373:7:13", @@ -452,7 +452,7 @@ ], "src": "1372:9:13" }, - "scope": 2988, + "scope": 1688, "src": "1302:118:13", "stateMutability": "view", "superFunction": null, @@ -460,7 +460,7 @@ }, { "body": { - "id": 2986, + "id": 1686, "nodeType": "Block", "src": "1505:25:13", "statements": [ @@ -468,7 +468,7 @@ "expression": { "argumentTypes": null, "hexValue": "32", - "id": 2984, + "id": 1684, "isConstant": false, "isLValue": false, "isPure": true, @@ -483,15 +483,15 @@ }, "value": "2" }, - "functionReturnParameters": 2983, - "id": 2985, + "functionReturnParameters": 1683, + "id": 1685, "nodeType": "Return", "src": "1515:8:13" } ] }, "documentation": null, - "id": 2987, + "id": 1687, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -499,22 +499,22 @@ "name": "proxyType", "nodeType": "FunctionDefinition", "parameters": { - "id": 2980, + "id": 1680, "nodeType": "ParameterList", "parameters": [], "src": "1444:2:13" }, "payable": false, "returnParameters": { - "id": 2983, + "id": 1683, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2982, + "id": 1682, "name": "", "nodeType": "VariableDeclaration", - "scope": 2987, + "scope": 1687, "src": "1492:7:13", "stateVariable": false, "storageLocation": "default", @@ -523,7 +523,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2981, + "id": 1681, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1492:7:13", @@ -538,14 +538,14 @@ ], "src": "1491:9:13" }, - "scope": 2988, + "scope": 1688, "src": "1426:104:13", "stateMutability": "pure", "superFunction": null, "visibility": "public" } ], - "scope": 2989, + "scope": 1689, "src": "190:1342:13" } ], @@ -555,14 +555,14 @@ "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Proxy.sol", "exportedSymbols": { "Proxy": [ - 2988 + 1688 ] }, - "id": 2989, + "id": 1689, "nodeType": "SourceUnit", "nodes": [ { - "id": 2947, + "id": 1647, "literals": [ "solidity", "0.4", @@ -577,19 +577,19 @@ "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": 2988, + "id": 1688, "linearizedBaseContracts": [ - 2988 + 1688 ], "name": "Proxy", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 2949, + "id": 1649, "name": "masterCopy", "nodeType": "VariableDeclaration", - "scope": 2988, + "scope": 1688, "src": "363:18:13", "stateVariable": true, "storageLocation": "default", @@ -598,7 +598,7 @@ "typeString": "address" }, "typeName": { - "id": 2948, + "id": 1648, "name": "address", "nodeType": "ElementaryTypeName", "src": "363:7:13", @@ -612,7 +612,7 @@ }, { "body": { - "id": 2965, + "id": 1665, "nodeType": "Block", "src": "560:116:13", "statements": [ @@ -626,18 +626,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2957, + "id": 1657, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2955, + "id": 1655, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2951, + "referencedDeclaration": 1651, "src": "578:11:13", "typeDescriptions": { "typeIdentifier": "t_address", @@ -649,7 +649,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2956, + "id": 1656, "isConstant": false, "isLValue": false, "isPure": true, @@ -673,7 +673,7 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206d617374657220636f707920616464726573732070726f7669646564", - "id": 2958, + "id": 1658, "isConstant": false, "isLValue": false, "isPure": true, @@ -700,21 +700,21 @@ "typeString": "literal_string \"Invalid master copy address provided\"" } ], - "id": 2954, + "id": 1654, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "570:7:13", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2959, + "id": 1659, "isConstant": false, "isLValue": false, "isPure": false, @@ -728,25 +728,25 @@ "typeString": "tuple()" } }, - "id": 2960, + "id": 1660, "nodeType": "ExpressionStatement", "src": "570:65:13" }, { "expression": { "argumentTypes": null, - "id": 2963, + "id": 1663, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2961, + "id": 1661, "name": "masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2949, + "referencedDeclaration": 1649, "src": "645:10:13", "typeDescriptions": { "typeIdentifier": "t_address", @@ -757,11 +757,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2962, + "id": 1662, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2951, + "referencedDeclaration": 1651, "src": "658:11:13", "typeDescriptions": { "typeIdentifier": "t_address", @@ -774,14 +774,14 @@ "typeString": "address" } }, - "id": 2964, + "id": 1664, "nodeType": "ExpressionStatement", "src": "645:24:13" } ] }, "documentation": "@dev Constructor function sets address of master copy contract.\n @param _masterCopy Master copy address.", - "id": 2966, + "id": 1666, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -789,15 +789,15 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2952, + "id": 1652, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2951, + "id": 1651, "name": "_masterCopy", "nodeType": "VariableDeclaration", - "scope": 2966, + "scope": 1666, "src": "520:19:13", "stateVariable": false, "storageLocation": "default", @@ -806,7 +806,7 @@ "typeString": "address" }, "typeName": { - "id": 2950, + "id": 1650, "name": "address", "nodeType": "ElementaryTypeName", "src": "520:7:13", @@ -823,12 +823,12 @@ }, "payable": false, "returnParameters": { - "id": 2953, + "id": 1653, "nodeType": "ParameterList", "parameters": [], "src": "560:0:13" }, - "scope": 2988, + "scope": 1688, "src": "508:168:13", "stateMutability": "nonpayable", "superFunction": null, @@ -836,13 +836,13 @@ }, { "body": { - "id": 2970, + "id": 1670, "nodeType": "Block", "src": "826:470:13", "statements": [ { "externalReferences": [], - "id": 2969, + "id": 1669, "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:13" @@ -850,7 +850,7 @@ ] }, "documentation": "@dev Fallback function forwards all transactions and returns all received return data.", - "id": 2971, + "id": 1671, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -858,19 +858,19 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2967, + "id": 1667, "nodeType": "ParameterList", "parameters": [], "src": "786:2:13" }, "payable": true, "returnParameters": { - "id": 2968, + "id": 1668, "nodeType": "ParameterList", "parameters": [], "src": "826:0:13" }, - "scope": 2988, + "scope": 1688, "src": "777:519:13", "stateMutability": "payable", "superFunction": null, @@ -878,33 +878,33 @@ }, { "body": { - "id": 2978, + "id": 1678, "nodeType": "Block", "src": "1386:34:13", "statements": [ { "expression": { "argumentTypes": null, - "id": 2976, + "id": 1676, "name": "masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2949, + "referencedDeclaration": 1649, "src": "1403:10:13", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 2975, - "id": 2977, + "functionReturnParameters": 1675, + "id": 1677, "nodeType": "Return", "src": "1396:17:13" } ] }, "documentation": null, - "id": 2979, + "id": 1679, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -912,22 +912,22 @@ "name": "implementation", "nodeType": "FunctionDefinition", "parameters": { - "id": 2972, + "id": 1672, "nodeType": "ParameterList", "parameters": [], "src": "1325:2:13" }, "payable": false, "returnParameters": { - "id": 2975, + "id": 1675, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2974, + "id": 1674, "name": "", "nodeType": "VariableDeclaration", - "scope": 2979, + "scope": 1679, "src": "1373:7:13", "stateVariable": false, "storageLocation": "default", @@ -936,7 +936,7 @@ "typeString": "address" }, "typeName": { - "id": 2973, + "id": 1673, "name": "address", "nodeType": "ElementaryTypeName", "src": "1373:7:13", @@ -951,7 +951,7 @@ ], "src": "1372:9:13" }, - "scope": 2988, + "scope": 1688, "src": "1302:118:13", "stateMutability": "view", "superFunction": null, @@ -959,7 +959,7 @@ }, { "body": { - "id": 2986, + "id": 1686, "nodeType": "Block", "src": "1505:25:13", "statements": [ @@ -967,7 +967,7 @@ "expression": { "argumentTypes": null, "hexValue": "32", - "id": 2984, + "id": 1684, "isConstant": false, "isLValue": false, "isPure": true, @@ -982,15 +982,15 @@ }, "value": "2" }, - "functionReturnParameters": 2983, - "id": 2985, + "functionReturnParameters": 1683, + "id": 1685, "nodeType": "Return", "src": "1515:8:13" } ] }, "documentation": null, - "id": 2987, + "id": 1687, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -998,22 +998,22 @@ "name": "proxyType", "nodeType": "FunctionDefinition", "parameters": { - "id": 2980, + "id": 1680, "nodeType": "ParameterList", "parameters": [], "src": "1444:2:13" }, "payable": false, "returnParameters": { - "id": 2983, + "id": 1683, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2982, + "id": 1682, "name": "", "nodeType": "VariableDeclaration", - "scope": 2987, + "scope": 1687, "src": "1492:7:13", "stateVariable": false, "storageLocation": "default", @@ -1022,7 +1022,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2981, + "id": 1681, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1492:7:13", @@ -1037,14 +1037,14 @@ ], "src": "1491:9:13" }, - "scope": 2988, + "scope": 1688, "src": "1426:104:13", "stateMutability": "pure", "superFunction": null, "visibility": "public" } ], - "scope": 2989, + "scope": 1689, "src": "190:1342:13" } ], @@ -1056,5 +1056,5 @@ }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-06-29T09:01:22.083Z" + "updatedAt": "2018-08-20T07:44:41.092Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/ProxyFactory.json b/safe-contracts/build/contracts/ProxyFactory.json index 685ff592c8..d22a16a0cf 100644 --- a/safe-contracts/build/contracts/ProxyFactory.json +++ b/safe-contracts/build/contracts/ProxyFactory.json @@ -47,14 +47,14 @@ "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ProxyFactory.sol", "exportedSymbols": { "ProxyFactory": [ - 3023 + 1723 ] }, - "id": 3024, + "id": 1724, "nodeType": "SourceUnit", "nodes": [ { - "id": 2990, + "id": 1690, "literals": [ "solidity", "0.4", @@ -66,10 +66,10 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Proxy.sol", "file": "./Proxy.sol", - "id": 2991, + "id": 1691, "nodeType": "ImportDirective", - "scope": 3024, - "sourceUnit": 2989, + "scope": 1724, + "sourceUnit": 1689, "src": "24:21:14", "symbolAliases": [], "unitAlias": "" @@ -77,14 +77,14 @@ { "baseContracts": [], "contractDependencies": [ - 2988 + 1688 ], "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": 3023, + "id": 1723, "linearizedBaseContracts": [ - 3023 + 1723 ], "name": "ProxyFactory", "nodeType": "ContractDefinition", @@ -92,36 +92,36 @@ { "anonymous": false, "documentation": null, - "id": 2995, + "id": 1695, "name": "ProxyCreation", "nodeType": "EventDefinition", "parameters": { - "id": 2994, + "id": 1694, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2993, + "id": 1693, "indexed": false, "name": "proxy", "nodeType": "VariableDeclaration", - "scope": 2995, + "scope": 1695, "src": "274:11:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2988", + "typeIdentifier": "t_contract$_Proxy_$1688", "typeString": "contract Proxy" }, "typeName": { "contractScope": null, - "id": 2992, + "id": 1692, "name": "Proxy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2988, + "referencedDeclaration": 1688, "src": "274:5:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2988", + "typeIdentifier": "t_contract$_Proxy_$1688", "typeString": "contract Proxy" } }, @@ -135,28 +135,28 @@ }, { "body": { - "id": 3021, + "id": 1721, "nodeType": "Block", "src": "634:314:14", "statements": [ { "expression": { "argumentTypes": null, - "id": 3009, + "id": 1709, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3004, + "id": 1704, "name": "proxy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3002, + "referencedDeclaration": 1702, "src": "644:5:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2988", + "typeIdentifier": "t_contract$_Proxy_$1688", "typeString": "contract Proxy" } }, @@ -167,11 +167,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3007, + "id": 1707, "name": "masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2997, + "referencedDeclaration": 1697, "src": "662:10:14", "typeDescriptions": { "typeIdentifier": "t_address", @@ -186,7 +186,7 @@ "typeString": "address" } ], - "id": 3006, + "id": 1706, "isConstant": false, "isLValue": false, "isPure": false, @@ -194,23 +194,23 @@ "nodeType": "NewExpression", "src": "652:9:14", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_address_$returns$_t_contract$_Proxy_$2988_$", + "typeIdentifier": "t_function_creation_nonpayable$_t_address_$returns$_t_contract$_Proxy_$1688_$", "typeString": "function (address) returns (contract Proxy)" }, "typeName": { "contractScope": null, - "id": 3005, + "id": 1705, "name": "Proxy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2988, + "referencedDeclaration": 1688, "src": "656:5:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2988", + "typeIdentifier": "t_contract$_Proxy_$1688", "typeString": "contract Proxy" } } }, - "id": 3008, + "id": 1708, "isConstant": false, "isLValue": false, "isPure": false, @@ -220,17 +220,17 @@ "nodeType": "FunctionCall", "src": "652:21:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2988", + "typeIdentifier": "t_contract$_Proxy_$1688", "typeString": "contract Proxy" } }, "src": "644:29:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2988", + "typeIdentifier": "t_contract$_Proxy_$1688", "typeString": "contract Proxy" } }, - "id": 3010, + "id": 1710, "nodeType": "ExpressionStatement", "src": "644:29:14" }, @@ -241,7 +241,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3014, + "id": 1714, "isConstant": false, "isLValue": false, "isPure": false, @@ -250,18 +250,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3011, + "id": 1711, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2999, + "referencedDeclaration": 1699, "src": "687:4:14", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 3012, + "id": 1712, "isConstant": false, "isLValue": false, "isPure": false, @@ -280,7 +280,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3013, + "id": 1713, "isConstant": false, "isLValue": false, "isPure": true, @@ -302,14 +302,14 @@ } }, "falseBody": null, - "id": 3016, + "id": 1716, "nodeType": "IfStatement", "src": "683:237:14", "trueBody": { "externalReferences": [ { "data": { - "declaration": 2999, + "declaration": 1699, "isOffset": false, "isSlot": false, "src": "860:4:14", @@ -318,7 +318,7 @@ }, { "proxy": { - "declaration": 3002, + "declaration": 1702, "isOffset": false, "isSlot": false, "src": "827:5:14", @@ -327,7 +327,7 @@ }, { "data": { - "declaration": 2999, + "declaration": 1699, "isOffset": false, "isSlot": false, "src": "841:4:14", @@ -335,7 +335,7 @@ } } ], - "id": 3015, + "id": 1715, "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:14" @@ -347,14 +347,14 @@ "arguments": [ { "argumentTypes": null, - "id": 3018, + "id": 1718, "name": "proxy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3002, + "referencedDeclaration": 1702, "src": "935:5:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2988", + "typeIdentifier": "t_contract$_Proxy_$1688", "typeString": "contract Proxy" } } @@ -362,22 +362,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Proxy_$2988", + "typeIdentifier": "t_contract$_Proxy_$1688", "typeString": "contract Proxy" } ], - "id": 3017, + "id": 1717, "name": "ProxyCreation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2995, + "referencedDeclaration": 1695, "src": "921:13:14", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Proxy_$2988_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Proxy_$1688_$returns$__$", "typeString": "function (contract Proxy)" } }, - "id": 3019, + "id": 1719, "isConstant": false, "isLValue": false, "isPure": false, @@ -391,14 +391,14 @@ "typeString": "tuple()" } }, - "id": 3020, + "id": 1720, "nodeType": "EmitStatement", "src": "916:25:14" } ] }, "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": 3022, + "id": 1722, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -406,15 +406,15 @@ "name": "createProxy", "nodeType": "FunctionDefinition", "parameters": { - "id": 3000, + "id": 1700, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2997, + "id": 1697, "name": "masterCopy", "nodeType": "VariableDeclaration", - "scope": 3022, + "scope": 1722, "src": "553:18:14", "stateVariable": false, "storageLocation": "default", @@ -423,7 +423,7 @@ "typeString": "address" }, "typeName": { - "id": 2996, + "id": 1696, "name": "address", "nodeType": "ElementaryTypeName", "src": "553:7:14", @@ -437,10 +437,10 @@ }, { "constant": false, - "id": 2999, + "id": 1699, "name": "data", "nodeType": "VariableDeclaration", - "scope": 3022, + "scope": 1722, "src": "573:10:14", "stateVariable": false, "storageLocation": "default", @@ -449,7 +449,7 @@ "typeString": "bytes" }, "typeName": { - "id": 2998, + "id": 1698, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "573:5:14", @@ -466,31 +466,31 @@ }, "payable": false, "returnParameters": { - "id": 3003, + "id": 1703, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3002, + "id": 1702, "name": "proxy", "nodeType": "VariableDeclaration", - "scope": 3022, + "scope": 1722, "src": "617:11:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2988", + "typeIdentifier": "t_contract$_Proxy_$1688", "typeString": "contract Proxy" }, "typeName": { "contractScope": null, - "id": 3001, + "id": 1701, "name": "Proxy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2988, + "referencedDeclaration": 1688, "src": "617:5:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2988", + "typeIdentifier": "t_contract$_Proxy_$1688", "typeString": "contract Proxy" } }, @@ -500,14 +500,14 @@ ], "src": "616:13:14" }, - "scope": 3023, + "scope": 1723, "src": "532:416:14", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 3024, + "scope": 1724, "src": "225:725:14" } ], @@ -517,14 +517,14 @@ "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ProxyFactory.sol", "exportedSymbols": { "ProxyFactory": [ - 3023 + 1723 ] }, - "id": 3024, + "id": 1724, "nodeType": "SourceUnit", "nodes": [ { - "id": 2990, + "id": 1690, "literals": [ "solidity", "0.4", @@ -536,10 +536,10 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Proxy.sol", "file": "./Proxy.sol", - "id": 2991, + "id": 1691, "nodeType": "ImportDirective", - "scope": 3024, - "sourceUnit": 2989, + "scope": 1724, + "sourceUnit": 1689, "src": "24:21:14", "symbolAliases": [], "unitAlias": "" @@ -547,14 +547,14 @@ { "baseContracts": [], "contractDependencies": [ - 2988 + 1688 ], "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": 3023, + "id": 1723, "linearizedBaseContracts": [ - 3023 + 1723 ], "name": "ProxyFactory", "nodeType": "ContractDefinition", @@ -562,36 +562,36 @@ { "anonymous": false, "documentation": null, - "id": 2995, + "id": 1695, "name": "ProxyCreation", "nodeType": "EventDefinition", "parameters": { - "id": 2994, + "id": 1694, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2993, + "id": 1693, "indexed": false, "name": "proxy", "nodeType": "VariableDeclaration", - "scope": 2995, + "scope": 1695, "src": "274:11:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2988", + "typeIdentifier": "t_contract$_Proxy_$1688", "typeString": "contract Proxy" }, "typeName": { "contractScope": null, - "id": 2992, + "id": 1692, "name": "Proxy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2988, + "referencedDeclaration": 1688, "src": "274:5:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2988", + "typeIdentifier": "t_contract$_Proxy_$1688", "typeString": "contract Proxy" } }, @@ -605,28 +605,28 @@ }, { "body": { - "id": 3021, + "id": 1721, "nodeType": "Block", "src": "634:314:14", "statements": [ { "expression": { "argumentTypes": null, - "id": 3009, + "id": 1709, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3004, + "id": 1704, "name": "proxy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3002, + "referencedDeclaration": 1702, "src": "644:5:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2988", + "typeIdentifier": "t_contract$_Proxy_$1688", "typeString": "contract Proxy" } }, @@ -637,11 +637,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3007, + "id": 1707, "name": "masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2997, + "referencedDeclaration": 1697, "src": "662:10:14", "typeDescriptions": { "typeIdentifier": "t_address", @@ -656,7 +656,7 @@ "typeString": "address" } ], - "id": 3006, + "id": 1706, "isConstant": false, "isLValue": false, "isPure": false, @@ -664,23 +664,23 @@ "nodeType": "NewExpression", "src": "652:9:14", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_address_$returns$_t_contract$_Proxy_$2988_$", + "typeIdentifier": "t_function_creation_nonpayable$_t_address_$returns$_t_contract$_Proxy_$1688_$", "typeString": "function (address) returns (contract Proxy)" }, "typeName": { "contractScope": null, - "id": 3005, + "id": 1705, "name": "Proxy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2988, + "referencedDeclaration": 1688, "src": "656:5:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2988", + "typeIdentifier": "t_contract$_Proxy_$1688", "typeString": "contract Proxy" } } }, - "id": 3008, + "id": 1708, "isConstant": false, "isLValue": false, "isPure": false, @@ -690,17 +690,17 @@ "nodeType": "FunctionCall", "src": "652:21:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2988", + "typeIdentifier": "t_contract$_Proxy_$1688", "typeString": "contract Proxy" } }, "src": "644:29:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2988", + "typeIdentifier": "t_contract$_Proxy_$1688", "typeString": "contract Proxy" } }, - "id": 3010, + "id": 1710, "nodeType": "ExpressionStatement", "src": "644:29:14" }, @@ -711,7 +711,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3014, + "id": 1714, "isConstant": false, "isLValue": false, "isPure": false, @@ -720,18 +720,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3011, + "id": 1711, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2999, + "referencedDeclaration": 1699, "src": "687:4:14", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 3012, + "id": 1712, "isConstant": false, "isLValue": false, "isPure": false, @@ -750,7 +750,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3013, + "id": 1713, "isConstant": false, "isLValue": false, "isPure": true, @@ -772,14 +772,14 @@ } }, "falseBody": null, - "id": 3016, + "id": 1716, "nodeType": "IfStatement", "src": "683:237:14", "trueBody": { "externalReferences": [ { "data": { - "declaration": 2999, + "declaration": 1699, "isOffset": false, "isSlot": false, "src": "860:4:14", @@ -788,7 +788,7 @@ }, { "proxy": { - "declaration": 3002, + "declaration": 1702, "isOffset": false, "isSlot": false, "src": "827:5:14", @@ -797,7 +797,7 @@ }, { "data": { - "declaration": 2999, + "declaration": 1699, "isOffset": false, "isSlot": false, "src": "841:4:14", @@ -805,7 +805,7 @@ } } ], - "id": 3015, + "id": 1715, "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:14" @@ -817,14 +817,14 @@ "arguments": [ { "argumentTypes": null, - "id": 3018, + "id": 1718, "name": "proxy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3002, + "referencedDeclaration": 1702, "src": "935:5:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2988", + "typeIdentifier": "t_contract$_Proxy_$1688", "typeString": "contract Proxy" } } @@ -832,22 +832,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Proxy_$2988", + "typeIdentifier": "t_contract$_Proxy_$1688", "typeString": "contract Proxy" } ], - "id": 3017, + "id": 1717, "name": "ProxyCreation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2995, + "referencedDeclaration": 1695, "src": "921:13:14", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Proxy_$2988_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Proxy_$1688_$returns$__$", "typeString": "function (contract Proxy)" } }, - "id": 3019, + "id": 1719, "isConstant": false, "isLValue": false, "isPure": false, @@ -861,14 +861,14 @@ "typeString": "tuple()" } }, - "id": 3020, + "id": 1720, "nodeType": "EmitStatement", "src": "916:25:14" } ] }, "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": 3022, + "id": 1722, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -876,15 +876,15 @@ "name": "createProxy", "nodeType": "FunctionDefinition", "parameters": { - "id": 3000, + "id": 1700, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2997, + "id": 1697, "name": "masterCopy", "nodeType": "VariableDeclaration", - "scope": 3022, + "scope": 1722, "src": "553:18:14", "stateVariable": false, "storageLocation": "default", @@ -893,7 +893,7 @@ "typeString": "address" }, "typeName": { - "id": 2996, + "id": 1696, "name": "address", "nodeType": "ElementaryTypeName", "src": "553:7:14", @@ -907,10 +907,10 @@ }, { "constant": false, - "id": 2999, + "id": 1699, "name": "data", "nodeType": "VariableDeclaration", - "scope": 3022, + "scope": 1722, "src": "573:10:14", "stateVariable": false, "storageLocation": "default", @@ -919,7 +919,7 @@ "typeString": "bytes" }, "typeName": { - "id": 2998, + "id": 1698, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "573:5:14", @@ -936,31 +936,31 @@ }, "payable": false, "returnParameters": { - "id": 3003, + "id": 1703, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3002, + "id": 1702, "name": "proxy", "nodeType": "VariableDeclaration", - "scope": 3022, + "scope": 1722, "src": "617:11:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2988", + "typeIdentifier": "t_contract$_Proxy_$1688", "typeString": "contract Proxy" }, "typeName": { "contractScope": null, - "id": 3001, + "id": 1701, "name": "Proxy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2988, + "referencedDeclaration": 1688, "src": "617:5:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2988", + "typeIdentifier": "t_contract$_Proxy_$1688", "typeString": "contract Proxy" } }, @@ -970,14 +970,14 @@ ], "src": "616:13:14" }, - "scope": 3023, + "scope": 1723, "src": "532:416:14", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 3024, + "scope": 1724, "src": "225:725:14" } ], @@ -991,28 +991,16 @@ "4": { "events": {}, "links": {}, - "address": "0xb91b58a0e2c5f0737cca7226c0ed41ae0f09af7d", - "transactionHash": "0x6c3db596a40030d69889e70063082d7b7979b3d9637e0a1370f10b1f9ea34772" + "address": "0x03991c5ca1c3057aac2a76d3d83d69afbc6947f7", + "transactionHash": "0x8ef777566f16cc1e7271862d04de617bfdd7d30005d78c895a5aa7b48fd2c30d" }, - "1530013596495": { + "1534750848541": { "events": {}, "links": {}, - "address": "0x9c30095bde0e76c19f0184e26dc7179eeab7aa67", - "transactionHash": "0xc52c6b366f718febb548464465461c5974c0f79b7f3f877c111faea2c9fda273" - }, - "1530525742205": { - "events": {}, - "links": {}, - "address": "0x32d2a0e2b94b3282aea36376e601e07c80d89c23", - "transactionHash": "0x75ad1066b44cd801ac66a316dbe4c09e72636d72b70fd62eb647295a0fc5e285" - }, - "1530611935189": { - "events": {}, - "links": {}, - "address": "0x51d27a55e3375e82e5965a1c266596b0239755f3", - "transactionHash": "0x75ad1066b44cd801ac66a316dbe4c09e72636d72b70fd62eb647295a0fc5e285" + "address": "0xb09bcc172050fbd4562da8b229cf3e45dc3045a6", + "transactionHash": "0xe665fef8b7b04e5623d1fc3cdd86dadbbda63ef832c7020e0412343759bbae12" } }, "schemaVersion": "2.0.0", - "updatedAt": "2018-07-03T09:59:18.516Z" + "updatedAt": "2018-08-20T07:50:29.679Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/SecuredTokenTransfer.json b/safe-contracts/build/contracts/SecuredTokenTransfer.json index be6217151b..67aafddc2b 100644 --- a/safe-contracts/build/contracts/SecuredTokenTransfer.json +++ b/safe-contracts/build/contracts/SecuredTokenTransfer.json @@ -11,14 +11,14 @@ "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SecuredTokenTransfer.sol", "exportedSymbols": { "SecuredTokenTransfer": [ - 3048 + 1748 ] }, - "id": 3049, + "id": 1749, "nodeType": "SourceUnit", "nodes": [ { - "id": 3025, + "id": 1725, "literals": [ "solidity", "0.4", @@ -33,30 +33,30 @@ "contractKind": "contract", "documentation": "@title SecuredTokenTransfer - Secure token transfer\n @author Richard Meissner - ", "fullyImplemented": true, - "id": 3048, + "id": 1748, "linearizedBaseContracts": [ - 3048 + 1748 ], "name": "SecuredTokenTransfer", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 3046, + "id": 1746, "nodeType": "Block", "src": "590:592:15", "statements": [ { "assignments": [ - 3037 + 1737 ], "declarations": [ { "constant": false, - "id": 3037, + "id": 1737, "name": "data", "nodeType": "VariableDeclaration", - "scope": 3047, + "scope": 1747, "src": "600:17:15", "stateVariable": false, "storageLocation": "memory", @@ -65,7 +65,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3036, + "id": 1736, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "600:5:15", @@ -78,14 +78,14 @@ "visibility": "internal" } ], - "id": 3044, + "id": 1744, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "7472616e7366657228616464726573732c75696e7432353629", - "id": 3040, + "id": 1740, "isConstant": false, "isLValue": false, "isPure": true, @@ -102,11 +102,11 @@ }, { "argumentTypes": null, - "id": 3041, + "id": 1741, "name": "receiver", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3029, + "referencedDeclaration": 1729, "src": "673:8:15", "typeDescriptions": { "typeIdentifier": "t_address", @@ -115,11 +115,11 @@ }, { "argumentTypes": null, - "id": 3042, + "id": 1742, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3031, + "referencedDeclaration": 1731, "src": "683:6:15", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -144,18 +144,18 @@ ], "expression": { "argumentTypes": null, - "id": 3038, + "id": 1738, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4023, + "referencedDeclaration": 3815, "src": "620:3:15", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 3039, + "id": 1739, "isConstant": false, "isLValue": false, "isPure": true, @@ -169,7 +169,7 @@ "typeString": "function (string memory) pure returns (bytes memory)" } }, - "id": 3043, + "id": 1743, "isConstant": false, "isLValue": false, "isPure": false, @@ -190,7 +190,7 @@ "externalReferences": [ { "transferred": { - "declaration": 3034, + "declaration": 1734, "isOffset": false, "isSlot": false, "src": "1061:11:15", @@ -199,7 +199,7 @@ }, { "data": { - "declaration": 3037, + "declaration": 1737, "isOffset": false, "isSlot": false, "src": "857:4:15", @@ -208,7 +208,7 @@ }, { "token": { - "declaration": 3027, + "declaration": 1727, "isOffset": false, "isSlot": false, "src": "824:5:15", @@ -217,7 +217,7 @@ }, { "data": { - "declaration": 3037, + "declaration": 1737, "isOffset": false, "isSlot": false, "src": "838:4:15", @@ -226,7 +226,7 @@ }, { "transferred": { - "declaration": 3034, + "declaration": 1734, "isOffset": false, "isSlot": false, "src": "1012:11:15", @@ -235,7 +235,7 @@ }, { "transferred": { - "declaration": 3034, + "declaration": 1734, "isOffset": false, "isSlot": false, "src": "1148:11:15", @@ -243,7 +243,7 @@ } } ], - "id": 3045, + "id": 1745, "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:15" @@ -251,7 +251,7 @@ ] }, "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": 3047, + "id": 1747, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -259,15 +259,15 @@ "name": "transferToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 3032, + "id": 1732, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3027, + "id": 1727, "name": "token", "nodeType": "VariableDeclaration", - "scope": 3047, + "scope": 1747, "src": "463:13:15", "stateVariable": false, "storageLocation": "default", @@ -276,7 +276,7 @@ "typeString": "address" }, "typeName": { - "id": 3026, + "id": 1726, "name": "address", "nodeType": "ElementaryTypeName", "src": "463:7:15", @@ -290,10 +290,10 @@ }, { "constant": false, - "id": 3029, + "id": 1729, "name": "receiver", "nodeType": "VariableDeclaration", - "scope": 3047, + "scope": 1747, "src": "487:16:15", "stateVariable": false, "storageLocation": "default", @@ -302,7 +302,7 @@ "typeString": "address" }, "typeName": { - "id": 3028, + "id": 1728, "name": "address", "nodeType": "ElementaryTypeName", "src": "487:7:15", @@ -316,10 +316,10 @@ }, { "constant": false, - "id": 3031, + "id": 1731, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 3047, + "scope": 1747, "src": "513:14:15", "stateVariable": false, "storageLocation": "default", @@ -328,7 +328,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3030, + "id": 1730, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "513:7:15", @@ -345,15 +345,15 @@ }, "payable": false, "returnParameters": { - "id": 3035, + "id": 1735, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3034, + "id": 1734, "name": "transferred", "nodeType": "VariableDeclaration", - "scope": 3047, + "scope": 1747, "src": "568:16:15", "stateVariable": false, "storageLocation": "default", @@ -362,7 +362,7 @@ "typeString": "bool" }, "typeName": { - "id": 3033, + "id": 1733, "name": "bool", "nodeType": "ElementaryTypeName", "src": "568:4:15", @@ -377,14 +377,14 @@ ], "src": "567:18:15" }, - "scope": 3048, + "scope": 1748, "src": "430:752:15", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 3049, + "scope": 1749, "src": "133:1051:15" } ], @@ -394,14 +394,14 @@ "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SecuredTokenTransfer.sol", "exportedSymbols": { "SecuredTokenTransfer": [ - 3048 + 1748 ] }, - "id": 3049, + "id": 1749, "nodeType": "SourceUnit", "nodes": [ { - "id": 3025, + "id": 1725, "literals": [ "solidity", "0.4", @@ -416,30 +416,30 @@ "contractKind": "contract", "documentation": "@title SecuredTokenTransfer - Secure token transfer\n @author Richard Meissner - ", "fullyImplemented": true, - "id": 3048, + "id": 1748, "linearizedBaseContracts": [ - 3048 + 1748 ], "name": "SecuredTokenTransfer", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 3046, + "id": 1746, "nodeType": "Block", "src": "590:592:15", "statements": [ { "assignments": [ - 3037 + 1737 ], "declarations": [ { "constant": false, - "id": 3037, + "id": 1737, "name": "data", "nodeType": "VariableDeclaration", - "scope": 3047, + "scope": 1747, "src": "600:17:15", "stateVariable": false, "storageLocation": "memory", @@ -448,7 +448,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3036, + "id": 1736, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "600:5:15", @@ -461,14 +461,14 @@ "visibility": "internal" } ], - "id": 3044, + "id": 1744, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "7472616e7366657228616464726573732c75696e7432353629", - "id": 3040, + "id": 1740, "isConstant": false, "isLValue": false, "isPure": true, @@ -485,11 +485,11 @@ }, { "argumentTypes": null, - "id": 3041, + "id": 1741, "name": "receiver", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3029, + "referencedDeclaration": 1729, "src": "673:8:15", "typeDescriptions": { "typeIdentifier": "t_address", @@ -498,11 +498,11 @@ }, { "argumentTypes": null, - "id": 3042, + "id": 1742, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3031, + "referencedDeclaration": 1731, "src": "683:6:15", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -527,18 +527,18 @@ ], "expression": { "argumentTypes": null, - "id": 3038, + "id": 1738, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4023, + "referencedDeclaration": 3815, "src": "620:3:15", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 3039, + "id": 1739, "isConstant": false, "isLValue": false, "isPure": true, @@ -552,7 +552,7 @@ "typeString": "function (string memory) pure returns (bytes memory)" } }, - "id": 3043, + "id": 1743, "isConstant": false, "isLValue": false, "isPure": false, @@ -573,7 +573,7 @@ "externalReferences": [ { "transferred": { - "declaration": 3034, + "declaration": 1734, "isOffset": false, "isSlot": false, "src": "1061:11:15", @@ -582,7 +582,7 @@ }, { "data": { - "declaration": 3037, + "declaration": 1737, "isOffset": false, "isSlot": false, "src": "857:4:15", @@ -591,7 +591,7 @@ }, { "token": { - "declaration": 3027, + "declaration": 1727, "isOffset": false, "isSlot": false, "src": "824:5:15", @@ -600,7 +600,7 @@ }, { "data": { - "declaration": 3037, + "declaration": 1737, "isOffset": false, "isSlot": false, "src": "838:4:15", @@ -609,7 +609,7 @@ }, { "transferred": { - "declaration": 3034, + "declaration": 1734, "isOffset": false, "isSlot": false, "src": "1012:11:15", @@ -618,7 +618,7 @@ }, { "transferred": { - "declaration": 3034, + "declaration": 1734, "isOffset": false, "isSlot": false, "src": "1148:11:15", @@ -626,7 +626,7 @@ } } ], - "id": 3045, + "id": 1745, "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:15" @@ -634,7 +634,7 @@ ] }, "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": 3047, + "id": 1747, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -642,15 +642,15 @@ "name": "transferToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 3032, + "id": 1732, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3027, + "id": 1727, "name": "token", "nodeType": "VariableDeclaration", - "scope": 3047, + "scope": 1747, "src": "463:13:15", "stateVariable": false, "storageLocation": "default", @@ -659,7 +659,7 @@ "typeString": "address" }, "typeName": { - "id": 3026, + "id": 1726, "name": "address", "nodeType": "ElementaryTypeName", "src": "463:7:15", @@ -673,10 +673,10 @@ }, { "constant": false, - "id": 3029, + "id": 1729, "name": "receiver", "nodeType": "VariableDeclaration", - "scope": 3047, + "scope": 1747, "src": "487:16:15", "stateVariable": false, "storageLocation": "default", @@ -685,7 +685,7 @@ "typeString": "address" }, "typeName": { - "id": 3028, + "id": 1728, "name": "address", "nodeType": "ElementaryTypeName", "src": "487:7:15", @@ -699,10 +699,10 @@ }, { "constant": false, - "id": 3031, + "id": 1731, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 3047, + "scope": 1747, "src": "513:14:15", "stateVariable": false, "storageLocation": "default", @@ -711,7 +711,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3030, + "id": 1730, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "513:7:15", @@ -728,15 +728,15 @@ }, "payable": false, "returnParameters": { - "id": 3035, + "id": 1735, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3034, + "id": 1734, "name": "transferred", "nodeType": "VariableDeclaration", - "scope": 3047, + "scope": 1747, "src": "568:16:15", "stateVariable": false, "storageLocation": "default", @@ -745,7 +745,7 @@ "typeString": "bool" }, "typeName": { - "id": 3033, + "id": 1733, "name": "bool", "nodeType": "ElementaryTypeName", "src": "568:4:15", @@ -760,14 +760,14 @@ ], "src": "567:18:15" }, - "scope": 3048, + "scope": 1748, "src": "430:752:15", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 3049, + "scope": 1749, "src": "133:1051:15" } ], @@ -779,5 +779,5 @@ }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-06-29T09:01:22.084Z" + "updatedAt": "2018-08-20T07:44:41.093Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/SelfAuthorized.json b/safe-contracts/build/contracts/SelfAuthorized.json index 3bff3abc7e..47f6c438e0 100644 --- a/safe-contracts/build/contracts/SelfAuthorized.json +++ b/safe-contracts/build/contracts/SelfAuthorized.json @@ -11,14 +11,14 @@ "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SelfAuthorized.sol", "exportedSymbols": { "SelfAuthorized": [ - 3065 + 1765 ] }, - "id": 3066, + "id": 1766, "nodeType": "SourceUnit", "nodes": [ { - "id": 3050, + "id": 1750, "literals": [ "solidity", "0.4", @@ -33,16 +33,16 @@ "contractKind": "contract", "documentation": "@title SelfAuthorized - authorizes current contract to perform actions\n @author Richard Meissner - ", "fullyImplemented": true, - "id": 3065, + "id": 1765, "linearizedBaseContracts": [ - 3065 + 1765 ], "name": "SelfAuthorized", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 3063, + "id": 1763, "nodeType": "Block", "src": "204:112:16", "statements": [ @@ -56,7 +56,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3058, + "id": 1758, "isConstant": false, "isLValue": false, "isPure": false, @@ -65,18 +65,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3053, + "id": 1753, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4036, + "referencedDeclaration": 3828, "src": "222:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3054, + "id": 1754, "isConstant": false, "isLValue": false, "isPure": false, @@ -97,14 +97,14 @@ "arguments": [ { "argumentTypes": null, - "id": 3056, + "id": 1756, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4055, + "referencedDeclaration": 3851, "src": "244:4:16", "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$3065", + "typeIdentifier": "t_contract$_SelfAuthorized_$1765", "typeString": "contract SelfAuthorized" } } @@ -112,11 +112,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_SelfAuthorized_$3065", + "typeIdentifier": "t_contract$_SelfAuthorized_$1765", "typeString": "contract SelfAuthorized" } ], - "id": 3055, + "id": 1755, "isConstant": false, "isLValue": false, "isPure": true, @@ -129,7 +129,7 @@ }, "typeName": "address" }, - "id": 3057, + "id": 1757, "isConstant": false, "isLValue": false, "isPure": false, @@ -152,7 +152,7 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207468697320636f6e7472616374", - "id": 3059, + "id": 1759, "isConstant": false, "isLValue": false, "isPure": true, @@ -179,21 +179,21 @@ "typeString": "literal_string \"Method can only be called from this contract\"" } ], - "id": 3052, + "id": 1752, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "214:7:16", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3060, + "id": 1760, "isConstant": false, "isLValue": false, "isPure": false, @@ -207,23 +207,23 @@ "typeString": "tuple()" } }, - "id": 3061, + "id": 1761, "nodeType": "ExpressionStatement", "src": "214:84:16" }, { - "id": 3062, + "id": 1762, "nodeType": "PlaceholderStatement", "src": "308:1:16" } ] }, "documentation": null, - "id": 3064, + "id": 1764, "name": "authorized", "nodeType": "ModifierDefinition", "parameters": { - "id": 3051, + "id": 1751, "nodeType": "ParameterList", "parameters": [], "src": "201:2:16" @@ -232,7 +232,7 @@ "visibility": "internal" } ], - "scope": 3066, + "scope": 1766, "src": "152:166:16" } ], @@ -242,14 +242,14 @@ "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SelfAuthorized.sol", "exportedSymbols": { "SelfAuthorized": [ - 3065 + 1765 ] }, - "id": 3066, + "id": 1766, "nodeType": "SourceUnit", "nodes": [ { - "id": 3050, + "id": 1750, "literals": [ "solidity", "0.4", @@ -264,16 +264,16 @@ "contractKind": "contract", "documentation": "@title SelfAuthorized - authorizes current contract to perform actions\n @author Richard Meissner - ", "fullyImplemented": true, - "id": 3065, + "id": 1765, "linearizedBaseContracts": [ - 3065 + 1765 ], "name": "SelfAuthorized", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 3063, + "id": 1763, "nodeType": "Block", "src": "204:112:16", "statements": [ @@ -287,7 +287,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3058, + "id": 1758, "isConstant": false, "isLValue": false, "isPure": false, @@ -296,18 +296,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3053, + "id": 1753, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4036, + "referencedDeclaration": 3828, "src": "222:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3054, + "id": 1754, "isConstant": false, "isLValue": false, "isPure": false, @@ -328,14 +328,14 @@ "arguments": [ { "argumentTypes": null, - "id": 3056, + "id": 1756, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4055, + "referencedDeclaration": 3851, "src": "244:4:16", "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$3065", + "typeIdentifier": "t_contract$_SelfAuthorized_$1765", "typeString": "contract SelfAuthorized" } } @@ -343,11 +343,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_SelfAuthorized_$3065", + "typeIdentifier": "t_contract$_SelfAuthorized_$1765", "typeString": "contract SelfAuthorized" } ], - "id": 3055, + "id": 1755, "isConstant": false, "isLValue": false, "isPure": true, @@ -360,7 +360,7 @@ }, "typeName": "address" }, - "id": 3057, + "id": 1757, "isConstant": false, "isLValue": false, "isPure": false, @@ -383,7 +383,7 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207468697320636f6e7472616374", - "id": 3059, + "id": 1759, "isConstant": false, "isLValue": false, "isPure": true, @@ -410,21 +410,21 @@ "typeString": "literal_string \"Method can only be called from this contract\"" } ], - "id": 3052, + "id": 1752, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "214:7:16", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3060, + "id": 1760, "isConstant": false, "isLValue": false, "isPure": false, @@ -438,23 +438,23 @@ "typeString": "tuple()" } }, - "id": 3061, + "id": 1761, "nodeType": "ExpressionStatement", "src": "214:84:16" }, { - "id": 3062, + "id": 1762, "nodeType": "PlaceholderStatement", "src": "308:1:16" } ] }, "documentation": null, - "id": 3064, + "id": 1764, "name": "authorized", "nodeType": "ModifierDefinition", "parameters": { - "id": 3051, + "id": 1751, "nodeType": "ParameterList", "parameters": [], "src": "201:2:16" @@ -463,7 +463,7 @@ "visibility": "internal" } ], - "scope": 3066, + "scope": 1766, "src": "152:166:16" } ], @@ -475,5 +475,5 @@ }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-06-29T09:01:22.084Z" + "updatedAt": "2018-08-20T07:44:41.093Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/SignatureValidator.json b/safe-contracts/build/contracts/SignatureValidator.json index 7edb5d1abc..9c2ff63c7d 100644 --- a/safe-contracts/build/contracts/SignatureValidator.json +++ b/safe-contracts/build/contracts/SignatureValidator.json @@ -11,14 +11,14 @@ "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SignatureValidator.sol", "exportedSymbols": { "SignatureValidator": [ - 3121 + 1821 ] }, - "id": 3122, + "id": 1822, "nodeType": "SourceUnit", "nodes": [ { - "id": 3067, + "id": 1767, "literals": [ "solidity", "0.4", @@ -33,16 +33,16 @@ "contractKind": "contract", "documentation": "@title SignatureValidator - recovers a sender from a signature \n @author Ricardo Guilherme Schmidt (Status Research & Development GmbH) \n @author Richard Meissner - ", "fullyImplemented": true, - "id": 3121, + "id": 1821, "linearizedBaseContracts": [ - 3121 + 1821 ], "name": "SignatureValidator", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 3104, + "id": 1804, "nodeType": "Block", "src": "643:164:17", "statements": [ @@ -51,10 +51,10 @@ "declarations": [ { "constant": false, - "id": 3079, + "id": 1779, "name": "v", "nodeType": "VariableDeclaration", - "scope": 3105, + "scope": 1805, "src": "653:7:17", "stateVariable": false, "storageLocation": "default", @@ -63,7 +63,7 @@ "typeString": "uint8" }, "typeName": { - "id": 3078, + "id": 1778, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "653:5:17", @@ -76,7 +76,7 @@ "visibility": "internal" } ], - "id": 3080, + "id": 1780, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "653:7:17" @@ -86,10 +86,10 @@ "declarations": [ { "constant": false, - "id": 3082, + "id": 1782, "name": "r", "nodeType": "VariableDeclaration", - "scope": 3105, + "scope": 1805, "src": "670:9:17", "stateVariable": false, "storageLocation": "default", @@ -98,7 +98,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3081, + "id": 1781, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "670:7:17", @@ -111,7 +111,7 @@ "visibility": "internal" } ], - "id": 3083, + "id": 1783, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "670:9:17" @@ -121,10 +121,10 @@ "declarations": [ { "constant": false, - "id": 3085, + "id": 1785, "name": "s", "nodeType": "VariableDeclaration", - "scope": 3105, + "scope": 1805, "src": "689:9:17", "stateVariable": false, "storageLocation": "default", @@ -133,7 +133,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3084, + "id": 1784, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "689:7:17", @@ -146,7 +146,7 @@ "visibility": "internal" } ], - "id": 3086, + "id": 1786, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "689:9:17" @@ -154,7 +154,7 @@ { "expression": { "argumentTypes": null, - "id": 3095, + "id": 1795, "isConstant": false, "isLValue": false, "isPure": false, @@ -164,11 +164,11 @@ "components": [ { "argumentTypes": null, - "id": 3087, + "id": 1787, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3079, + "referencedDeclaration": 1779, "src": "709:1:17", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -177,11 +177,11 @@ }, { "argumentTypes": null, - "id": 3088, + "id": 1788, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3082, + "referencedDeclaration": 1782, "src": "712:1:17", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -190,11 +190,11 @@ }, { "argumentTypes": null, - "id": 3089, + "id": 1789, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3085, + "referencedDeclaration": 1785, "src": "715:1:17", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -202,7 +202,7 @@ } } ], - "id": 3090, + "id": 1790, "isConstant": false, "isInlineArray": false, "isLValue": true, @@ -222,11 +222,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3092, + "id": 1792, "name": "messageSignature", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3071, + "referencedDeclaration": 1771, "src": "735:16:17", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -235,11 +235,11 @@ }, { "argumentTypes": null, - "id": 3093, + "id": 1793, "name": "pos", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3073, + "referencedDeclaration": 1773, "src": "753:3:17", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -258,18 +258,18 @@ "typeString": "uint256" } ], - "id": 3091, + "id": 1791, "name": "signatureSplit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3120, + "referencedDeclaration": 1820, "src": "720:14:17", "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": 3094, + "id": 1794, "isConstant": false, "isLValue": false, "isPure": false, @@ -289,7 +289,7 @@ "typeString": "tuple()" } }, - "id": 3096, + "id": 1796, "nodeType": "ExpressionStatement", "src": "708:49:17" }, @@ -299,11 +299,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3098, + "id": 1798, "name": "txHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3069, + "referencedDeclaration": 1769, "src": "784:6:17", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -312,11 +312,11 @@ }, { "argumentTypes": null, - "id": 3099, + "id": 1799, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3079, + "referencedDeclaration": 1779, "src": "792:1:17", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -325,11 +325,11 @@ }, { "argumentTypes": null, - "id": 3100, + "id": 1800, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3082, + "referencedDeclaration": 1782, "src": "795:1:17", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -338,11 +338,11 @@ }, { "argumentTypes": null, - "id": 3101, + "id": 1801, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3085, + "referencedDeclaration": 1785, "src": "798:1:17", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -369,18 +369,18 @@ "typeString": "bytes32" } ], - "id": 3097, + "id": 1797, "name": "ecrecover", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4028, + "referencedDeclaration": 3820, "src": "774:9:17", "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": 3102, + "id": 1802, "isConstant": false, "isLValue": false, "isPure": false, @@ -394,15 +394,15 @@ "typeString": "address" } }, - "functionReturnParameters": 3077, - "id": 3103, + "functionReturnParameters": 1777, + "id": 1803, "nodeType": "Return", "src": "767:33:17" } ] }, "documentation": "@dev Recovers address who signed the message \n @param txHash operation ethereum signed message hash\n @param messageSignature message `txHash` signature\n @param pos which signature to read", - "id": 3105, + "id": 1805, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -410,15 +410,15 @@ "name": "recoverKey", "nodeType": "FunctionDefinition", "parameters": { - "id": 3074, + "id": 1774, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3069, + "id": 1769, "name": "txHash", "nodeType": "VariableDeclaration", - "scope": 3105, + "scope": 1805, "src": "507:14:17", "stateVariable": false, "storageLocation": "default", @@ -427,7 +427,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3068, + "id": 1768, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "507:7:17", @@ -441,10 +441,10 @@ }, { "constant": false, - "id": 3071, + "id": 1771, "name": "messageSignature", "nodeType": "VariableDeclaration", - "scope": 3105, + "scope": 1805, "src": "532:22:17", "stateVariable": false, "storageLocation": "default", @@ -453,7 +453,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3070, + "id": 1770, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "532:5:17", @@ -467,10 +467,10 @@ }, { "constant": false, - "id": 3073, + "id": 1773, "name": "pos", "nodeType": "VariableDeclaration", - "scope": 3105, + "scope": 1805, "src": "564:11:17", "stateVariable": false, "storageLocation": "default", @@ -479,7 +479,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3072, + "id": 1772, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "564:7:17", @@ -496,15 +496,15 @@ }, "payable": false, "returnParameters": { - "id": 3077, + "id": 1777, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3076, + "id": 1776, "name": "", "nodeType": "VariableDeclaration", - "scope": 3105, + "scope": 1805, "src": "629:7:17", "stateVariable": false, "storageLocation": "default", @@ -513,7 +513,7 @@ "typeString": "address" }, "typeName": { - "id": 3075, + "id": 1775, "name": "address", "nodeType": "ElementaryTypeName", "src": "629:7:17", @@ -528,7 +528,7 @@ ], "src": "628:9:17" }, - "scope": 3121, + "scope": 1821, "src": "477:330:17", "stateMutability": "pure", "superFunction": null, @@ -536,7 +536,7 @@ }, { "body": { - "id": 3119, + "id": 1819, "nodeType": "Block", "src": "1121:777:17", "statements": [ @@ -544,7 +544,7 @@ "externalReferences": [ { "r": { - "declaration": 3114, + "declaration": 1814, "isOffset": false, "isSlot": false, "src": "1423:1:17", @@ -553,7 +553,7 @@ }, { "pos": { - "declaration": 3109, + "declaration": 1809, "isOffset": false, "isSlot": false, "src": "1406:3:17", @@ -562,7 +562,7 @@ }, { "signatures": { - "declaration": 3107, + "declaration": 1807, "isOffset": false, "isSlot": false, "src": "1438:10:17", @@ -571,7 +571,7 @@ }, { "s": { - "declaration": 3116, + "declaration": 1816, "isOffset": false, "isSlot": false, "src": "1488:1:17", @@ -580,7 +580,7 @@ }, { "signatures": { - "declaration": 3107, + "declaration": 1807, "isOffset": false, "isSlot": false, "src": "1503:10:17", @@ -589,7 +589,7 @@ }, { "v": { - "declaration": 3112, + "declaration": 1812, "isOffset": false, "isSlot": false, "src": "1819:1:17", @@ -598,7 +598,7 @@ }, { "signatures": { - "declaration": 3107, + "declaration": 1807, "isOffset": false, "isSlot": false, "src": "1838:10:17", @@ -606,7 +606,7 @@ } } ], - "id": 3118, + "id": 1818, "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": "1353:545:17" @@ -614,7 +614,7 @@ ] }, "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": 3120, + "id": 1820, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -622,15 +622,15 @@ "name": "signatureSplit", "nodeType": "FunctionDefinition", "parameters": { - "id": 3110, + "id": 1810, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3107, + "id": 1807, "name": "signatures", "nodeType": "VariableDeclaration", - "scope": 3120, + "scope": 1820, "src": "1008:16:17", "stateVariable": false, "storageLocation": "default", @@ -639,7 +639,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3106, + "id": 1806, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1008:5:17", @@ -653,10 +653,10 @@ }, { "constant": false, - "id": 3109, + "id": 1809, "name": "pos", "nodeType": "VariableDeclaration", - "scope": 3120, + "scope": 1820, "src": "1026:11:17", "stateVariable": false, "storageLocation": "default", @@ -665,7 +665,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3108, + "id": 1808, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1026:7:17", @@ -682,15 +682,15 @@ }, "payable": false, "returnParameters": { - "id": 3117, + "id": 1817, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3112, + "id": 1812, "name": "v", "nodeType": "VariableDeclaration", - "scope": 3120, + "scope": 1820, "src": "1086:7:17", "stateVariable": false, "storageLocation": "default", @@ -699,7 +699,7 @@ "typeString": "uint8" }, "typeName": { - "id": 3111, + "id": 1811, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "1086:5:17", @@ -713,10 +713,10 @@ }, { "constant": false, - "id": 3114, + "id": 1814, "name": "r", "nodeType": "VariableDeclaration", - "scope": 3120, + "scope": 1820, "src": "1095:9:17", "stateVariable": false, "storageLocation": "default", @@ -725,7 +725,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3113, + "id": 1813, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1095:7:17", @@ -739,10 +739,10 @@ }, { "constant": false, - "id": 3116, + "id": 1816, "name": "s", "nodeType": "VariableDeclaration", - "scope": 3120, + "scope": 1820, "src": "1106:9:17", "stateVariable": false, "storageLocation": "default", @@ -751,7 +751,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3115, + "id": 1815, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1106:7:17", @@ -766,14 +766,14 @@ ], "src": "1085:31:17" }, - "scope": 3121, + "scope": 1821, "src": "984:914:17", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], - "scope": 3122, + "scope": 1822, "src": "221:1679:17" } ], @@ -783,14 +783,14 @@ "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SignatureValidator.sol", "exportedSymbols": { "SignatureValidator": [ - 3121 + 1821 ] }, - "id": 3122, + "id": 1822, "nodeType": "SourceUnit", "nodes": [ { - "id": 3067, + "id": 1767, "literals": [ "solidity", "0.4", @@ -805,16 +805,16 @@ "contractKind": "contract", "documentation": "@title SignatureValidator - recovers a sender from a signature \n @author Ricardo Guilherme Schmidt (Status Research & Development GmbH) \n @author Richard Meissner - ", "fullyImplemented": true, - "id": 3121, + "id": 1821, "linearizedBaseContracts": [ - 3121 + 1821 ], "name": "SignatureValidator", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 3104, + "id": 1804, "nodeType": "Block", "src": "643:164:17", "statements": [ @@ -823,10 +823,10 @@ "declarations": [ { "constant": false, - "id": 3079, + "id": 1779, "name": "v", "nodeType": "VariableDeclaration", - "scope": 3105, + "scope": 1805, "src": "653:7:17", "stateVariable": false, "storageLocation": "default", @@ -835,7 +835,7 @@ "typeString": "uint8" }, "typeName": { - "id": 3078, + "id": 1778, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "653:5:17", @@ -848,7 +848,7 @@ "visibility": "internal" } ], - "id": 3080, + "id": 1780, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "653:7:17" @@ -858,10 +858,10 @@ "declarations": [ { "constant": false, - "id": 3082, + "id": 1782, "name": "r", "nodeType": "VariableDeclaration", - "scope": 3105, + "scope": 1805, "src": "670:9:17", "stateVariable": false, "storageLocation": "default", @@ -870,7 +870,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3081, + "id": 1781, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "670:7:17", @@ -883,7 +883,7 @@ "visibility": "internal" } ], - "id": 3083, + "id": 1783, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "670:9:17" @@ -893,10 +893,10 @@ "declarations": [ { "constant": false, - "id": 3085, + "id": 1785, "name": "s", "nodeType": "VariableDeclaration", - "scope": 3105, + "scope": 1805, "src": "689:9:17", "stateVariable": false, "storageLocation": "default", @@ -905,7 +905,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3084, + "id": 1784, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "689:7:17", @@ -918,7 +918,7 @@ "visibility": "internal" } ], - "id": 3086, + "id": 1786, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "689:9:17" @@ -926,7 +926,7 @@ { "expression": { "argumentTypes": null, - "id": 3095, + "id": 1795, "isConstant": false, "isLValue": false, "isPure": false, @@ -936,11 +936,11 @@ "components": [ { "argumentTypes": null, - "id": 3087, + "id": 1787, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3079, + "referencedDeclaration": 1779, "src": "709:1:17", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -949,11 +949,11 @@ }, { "argumentTypes": null, - "id": 3088, + "id": 1788, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3082, + "referencedDeclaration": 1782, "src": "712:1:17", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -962,11 +962,11 @@ }, { "argumentTypes": null, - "id": 3089, + "id": 1789, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3085, + "referencedDeclaration": 1785, "src": "715:1:17", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -974,7 +974,7 @@ } } ], - "id": 3090, + "id": 1790, "isConstant": false, "isInlineArray": false, "isLValue": true, @@ -994,11 +994,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3092, + "id": 1792, "name": "messageSignature", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3071, + "referencedDeclaration": 1771, "src": "735:16:17", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -1007,11 +1007,11 @@ }, { "argumentTypes": null, - "id": 3093, + "id": 1793, "name": "pos", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3073, + "referencedDeclaration": 1773, "src": "753:3:17", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1030,18 +1030,18 @@ "typeString": "uint256" } ], - "id": 3091, + "id": 1791, "name": "signatureSplit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3120, + "referencedDeclaration": 1820, "src": "720:14:17", "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": 3094, + "id": 1794, "isConstant": false, "isLValue": false, "isPure": false, @@ -1061,7 +1061,7 @@ "typeString": "tuple()" } }, - "id": 3096, + "id": 1796, "nodeType": "ExpressionStatement", "src": "708:49:17" }, @@ -1071,11 +1071,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3098, + "id": 1798, "name": "txHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3069, + "referencedDeclaration": 1769, "src": "784:6:17", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1084,11 +1084,11 @@ }, { "argumentTypes": null, - "id": 3099, + "id": 1799, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3079, + "referencedDeclaration": 1779, "src": "792:1:17", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -1097,11 +1097,11 @@ }, { "argumentTypes": null, - "id": 3100, + "id": 1800, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3082, + "referencedDeclaration": 1782, "src": "795:1:17", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1110,11 +1110,11 @@ }, { "argumentTypes": null, - "id": 3101, + "id": 1801, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3085, + "referencedDeclaration": 1785, "src": "798:1:17", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1141,18 +1141,18 @@ "typeString": "bytes32" } ], - "id": 3097, + "id": 1797, "name": "ecrecover", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4028, + "referencedDeclaration": 3820, "src": "774:9:17", "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": 3102, + "id": 1802, "isConstant": false, "isLValue": false, "isPure": false, @@ -1166,15 +1166,15 @@ "typeString": "address" } }, - "functionReturnParameters": 3077, - "id": 3103, + "functionReturnParameters": 1777, + "id": 1803, "nodeType": "Return", "src": "767:33:17" } ] }, "documentation": "@dev Recovers address who signed the message \n @param txHash operation ethereum signed message hash\n @param messageSignature message `txHash` signature\n @param pos which signature to read", - "id": 3105, + "id": 1805, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1182,15 +1182,15 @@ "name": "recoverKey", "nodeType": "FunctionDefinition", "parameters": { - "id": 3074, + "id": 1774, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3069, + "id": 1769, "name": "txHash", "nodeType": "VariableDeclaration", - "scope": 3105, + "scope": 1805, "src": "507:14:17", "stateVariable": false, "storageLocation": "default", @@ -1199,7 +1199,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3068, + "id": 1768, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "507:7:17", @@ -1213,10 +1213,10 @@ }, { "constant": false, - "id": 3071, + "id": 1771, "name": "messageSignature", "nodeType": "VariableDeclaration", - "scope": 3105, + "scope": 1805, "src": "532:22:17", "stateVariable": false, "storageLocation": "default", @@ -1225,7 +1225,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3070, + "id": 1770, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "532:5:17", @@ -1239,10 +1239,10 @@ }, { "constant": false, - "id": 3073, + "id": 1773, "name": "pos", "nodeType": "VariableDeclaration", - "scope": 3105, + "scope": 1805, "src": "564:11:17", "stateVariable": false, "storageLocation": "default", @@ -1251,7 +1251,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3072, + "id": 1772, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "564:7:17", @@ -1268,15 +1268,15 @@ }, "payable": false, "returnParameters": { - "id": 3077, + "id": 1777, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3076, + "id": 1776, "name": "", "nodeType": "VariableDeclaration", - "scope": 3105, + "scope": 1805, "src": "629:7:17", "stateVariable": false, "storageLocation": "default", @@ -1285,7 +1285,7 @@ "typeString": "address" }, "typeName": { - "id": 3075, + "id": 1775, "name": "address", "nodeType": "ElementaryTypeName", "src": "629:7:17", @@ -1300,7 +1300,7 @@ ], "src": "628:9:17" }, - "scope": 3121, + "scope": 1821, "src": "477:330:17", "stateMutability": "pure", "superFunction": null, @@ -1308,7 +1308,7 @@ }, { "body": { - "id": 3119, + "id": 1819, "nodeType": "Block", "src": "1121:777:17", "statements": [ @@ -1316,7 +1316,7 @@ "externalReferences": [ { "r": { - "declaration": 3114, + "declaration": 1814, "isOffset": false, "isSlot": false, "src": "1423:1:17", @@ -1325,7 +1325,7 @@ }, { "pos": { - "declaration": 3109, + "declaration": 1809, "isOffset": false, "isSlot": false, "src": "1406:3:17", @@ -1334,7 +1334,7 @@ }, { "signatures": { - "declaration": 3107, + "declaration": 1807, "isOffset": false, "isSlot": false, "src": "1438:10:17", @@ -1343,7 +1343,7 @@ }, { "s": { - "declaration": 3116, + "declaration": 1816, "isOffset": false, "isSlot": false, "src": "1488:1:17", @@ -1352,7 +1352,7 @@ }, { "signatures": { - "declaration": 3107, + "declaration": 1807, "isOffset": false, "isSlot": false, "src": "1503:10:17", @@ -1361,7 +1361,7 @@ }, { "v": { - "declaration": 3112, + "declaration": 1812, "isOffset": false, "isSlot": false, "src": "1819:1:17", @@ -1370,7 +1370,7 @@ }, { "signatures": { - "declaration": 3107, + "declaration": 1807, "isOffset": false, "isSlot": false, "src": "1838:10:17", @@ -1378,7 +1378,7 @@ } } ], - "id": 3118, + "id": 1818, "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": "1353:545:17" @@ -1386,7 +1386,7 @@ ] }, "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": 3120, + "id": 1820, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1394,15 +1394,15 @@ "name": "signatureSplit", "nodeType": "FunctionDefinition", "parameters": { - "id": 3110, + "id": 1810, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3107, + "id": 1807, "name": "signatures", "nodeType": "VariableDeclaration", - "scope": 3120, + "scope": 1820, "src": "1008:16:17", "stateVariable": false, "storageLocation": "default", @@ -1411,7 +1411,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3106, + "id": 1806, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1008:5:17", @@ -1425,10 +1425,10 @@ }, { "constant": false, - "id": 3109, + "id": 1809, "name": "pos", "nodeType": "VariableDeclaration", - "scope": 3120, + "scope": 1820, "src": "1026:11:17", "stateVariable": false, "storageLocation": "default", @@ -1437,7 +1437,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3108, + "id": 1808, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1026:7:17", @@ -1454,15 +1454,15 @@ }, "payable": false, "returnParameters": { - "id": 3117, + "id": 1817, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3112, + "id": 1812, "name": "v", "nodeType": "VariableDeclaration", - "scope": 3120, + "scope": 1820, "src": "1086:7:17", "stateVariable": false, "storageLocation": "default", @@ -1471,7 +1471,7 @@ "typeString": "uint8" }, "typeName": { - "id": 3111, + "id": 1811, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "1086:5:17", @@ -1485,10 +1485,10 @@ }, { "constant": false, - "id": 3114, + "id": 1814, "name": "r", "nodeType": "VariableDeclaration", - "scope": 3120, + "scope": 1820, "src": "1095:9:17", "stateVariable": false, "storageLocation": "default", @@ -1497,7 +1497,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3113, + "id": 1813, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1095:7:17", @@ -1511,10 +1511,10 @@ }, { "constant": false, - "id": 3116, + "id": 1816, "name": "s", "nodeType": "VariableDeclaration", - "scope": 3120, + "scope": 1820, "src": "1106:9:17", "stateVariable": false, "storageLocation": "default", @@ -1523,7 +1523,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3115, + "id": 1815, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1106:7:17", @@ -1538,14 +1538,14 @@ ], "src": "1085:31:17" }, - "scope": 3121, + "scope": 1821, "src": "984:914:17", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], - "scope": 3122, + "scope": 1822, "src": "221:1679:17" } ], @@ -1557,5 +1557,5 @@ }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-06-29T09:01:22.084Z" + "updatedAt": "2018-08-20T07:44:41.093Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/SocialRecoveryModule.json b/safe-contracts/build/contracts/SocialRecoveryModule.json index 57b5c4e1a2..d37449b3a7 100644 --- a/safe-contracts/build/contracts/SocialRecoveryModule.json +++ b/safe-contracts/build/contracts/SocialRecoveryModule.json @@ -244,24 +244,24 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50611790806100206000396000f3006080604052600436106100d0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806342cde4e8146100d5578063481c6a75146101005780634ab884271461015757806368125a1b146101c757806377231eaa1461022257806379716e43146102a55780637de7edef146102d65780639ca89d0d14610319578063a3f4df7e14610362578063ae68b056146103f2578063b79ffaff14610477578063ce146828146104e0578063e52cb36a1461054d578063ffa1ad7414610596575b600080fd5b3480156100e157600080fd5b506100ea610626565b6040518082815260200191505060405180910390f35b34801561010c57600080fd5b5061011561062c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561016357600080fd5b506101c56004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190505050610652565b005b3480156101d357600080fd5b50610208600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061099d565b604051808215151515815260200191505060405180910390f35b34801561022e57600080fd5b506102a3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109bd565b005b3480156102b157600080fd5b506102d46004803603810190808035600019169060200190929190505050610f6e565b005b3480156102e257600080fd5b50610317600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611167565b005b34801561032557600080fd5b50610348600480360381019080803560001916906020019092919050505061134a565b604051808215151515815260200191505060405180910390f35b34801561036e57600080fd5b50610377611439565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103b757808201518184015260208101905061039c565b50505050905090810190601f1680156103e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103fe57600080fd5b50610459600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611472565b60405180826000191660001916815260200191505060405180910390f35b34801561048357600080fd5b506104c66004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114de565b604051808215151515815260200191505060405180910390f35b3480156104ec57600080fd5b5061050b6004803603810190808035906020019092919050505061150d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561055957600080fd5b5061057c600480360381019080803560001916906020019092919050505061154b565b604051808215151515815260200191505060405180910390f35b3480156105a257600080fd5b506105ab61156b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105eb5780820151818401526020810190506105d0565b50505050905090810190601f1680156106185780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60025481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080835183111515156106f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f5468726573686f6c642063616e6e6f742065786365656420667269656e64732081526020017f636f756e7400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6002831015151561076d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4174206c65617374203220667269656e6473207265717569726564000000000081525060200191505060405180910390fd5b6107756115a4565b600091505b835182101561097957838281518110151561079157fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff161415151561082c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c696420667269656e6420616464726573732070726f76696465640081525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610914576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f4475706c696361746520667269656e6420616464726573732070726f7669646581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550818060010192505061077a565b836003908051906020019061098f929190611697565b508260028190555050505050565b60046020528060005260406000206000915054906101000a900460ff1681565b60606000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610aa8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642062792061206681526020017f7269656e6400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b848484604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200193505050506040516020818303038152906040527fe318b52b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509150610bd582611472565b905060056000826000191660001916815260200190815260200160002060009054906101000a900460ff16151515610c75576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5265636f7665727920616c72656164792065786563757465640000000000000081525060200191505060405180910390fd5b610c7e8161134a565b1515610d18576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f5265636f7665727920686173206e6f7420656e6f75676820636f6e6669726d6181526020017f74696f6e7300000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160056000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660008560006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610e2957fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610e69578082015181840152602081019050610e4e565b50505050905090810190601f168015610e965780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610eb857600080fd5b505af1158015610ecc573d6000803e3d6000fd5b505050506040513d6020811015610ee257600080fd5b81019080805190602001909291905050501515610f67576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f436f756c64206e6f742065786563757465207265636f7665727900000000000081525060200191505060405180910390fd5b5050505050565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611055576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642062792061206681526020017f7269656e6400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60056000826000191660001916815260200190815260200160002060009054906101000a900460ff161515156110f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5265636f7665727920616c72656164792065786563757465640000000000000081525060200191505060405180910390fd5b600160066000836000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611252576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515611307576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008090505b60038054905081101561142d57600660008560001916600019168152602001908152602001600020600060038381548110151561138c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561140d5781806001019250505b6002548214156114205760019250611432565b8080600101915050611353565b600092505b5050919050565b6040805190810160405280601681526020017f536f6369616c205265636f76657279204d6f64756c650000000000000000000081525081565b6000816040518082805190602001908083835b6020831015156114aa5780518252602082019150602081019050602083039250611485565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050919050565b60066020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b60038181548110151561151c57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915054906101000a900460ff1681565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611654576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b828054828255906000526020600020908101928215611710579160200282015b8281111561170f5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906116b7565b5b50905061171d9190611721565b5090565b61176191905b8082111561175d57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101611727565b5090565b905600a165627a7a72305820f0b8225dc8646b27a4eb559b8965458750244631494ed3b01cb42cf8380bff870029", - "deployedBytecode": "0x6080604052600436106100d0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806342cde4e8146100d5578063481c6a75146101005780634ab884271461015757806368125a1b146101c757806377231eaa1461022257806379716e43146102a55780637de7edef146102d65780639ca89d0d14610319578063a3f4df7e14610362578063ae68b056146103f2578063b79ffaff14610477578063ce146828146104e0578063e52cb36a1461054d578063ffa1ad7414610596575b600080fd5b3480156100e157600080fd5b506100ea610626565b6040518082815260200191505060405180910390f35b34801561010c57600080fd5b5061011561062c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561016357600080fd5b506101c56004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190505050610652565b005b3480156101d357600080fd5b50610208600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061099d565b604051808215151515815260200191505060405180910390f35b34801561022e57600080fd5b506102a3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109bd565b005b3480156102b157600080fd5b506102d46004803603810190808035600019169060200190929190505050610f6e565b005b3480156102e257600080fd5b50610317600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611167565b005b34801561032557600080fd5b50610348600480360381019080803560001916906020019092919050505061134a565b604051808215151515815260200191505060405180910390f35b34801561036e57600080fd5b50610377611439565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103b757808201518184015260208101905061039c565b50505050905090810190601f1680156103e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103fe57600080fd5b50610459600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611472565b60405180826000191660001916815260200191505060405180910390f35b34801561048357600080fd5b506104c66004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114de565b604051808215151515815260200191505060405180910390f35b3480156104ec57600080fd5b5061050b6004803603810190808035906020019092919050505061150d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561055957600080fd5b5061057c600480360381019080803560001916906020019092919050505061154b565b604051808215151515815260200191505060405180910390f35b3480156105a257600080fd5b506105ab61156b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105eb5780820151818401526020810190506105d0565b50505050905090810190601f1680156106185780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60025481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080835183111515156106f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f5468726573686f6c642063616e6e6f742065786365656420667269656e64732081526020017f636f756e7400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6002831015151561076d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4174206c65617374203220667269656e6473207265717569726564000000000081525060200191505060405180910390fd5b6107756115a4565b600091505b835182101561097957838281518110151561079157fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff161415151561082c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c696420667269656e6420616464726573732070726f76696465640081525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610914576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f4475706c696361746520667269656e6420616464726573732070726f7669646581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550818060010192505061077a565b836003908051906020019061098f929190611697565b508260028190555050505050565b60046020528060005260406000206000915054906101000a900460ff1681565b60606000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610aa8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642062792061206681526020017f7269656e6400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b848484604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200193505050506040516020818303038152906040527fe318b52b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509150610bd582611472565b905060056000826000191660001916815260200190815260200160002060009054906101000a900460ff16151515610c75576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5265636f7665727920616c72656164792065786563757465640000000000000081525060200191505060405180910390fd5b610c7e8161134a565b1515610d18576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f5265636f7665727920686173206e6f7420656e6f75676820636f6e6669726d6181526020017f74696f6e7300000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160056000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660008560006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610e2957fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610e69578082015181840152602081019050610e4e565b50505050905090810190601f168015610e965780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610eb857600080fd5b505af1158015610ecc573d6000803e3d6000fd5b505050506040513d6020811015610ee257600080fd5b81019080805190602001909291905050501515610f67576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f436f756c64206e6f742065786563757465207265636f7665727900000000000081525060200191505060405180910390fd5b5050505050565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611055576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642062792061206681526020017f7269656e6400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60056000826000191660001916815260200190815260200160002060009054906101000a900460ff161515156110f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5265636f7665727920616c72656164792065786563757465640000000000000081525060200191505060405180910390fd5b600160066000836000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611252576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515611307576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008090505b60038054905081101561142d57600660008560001916600019168152602001908152602001600020600060038381548110151561138c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561140d5781806001019250505b6002548214156114205760019250611432565b8080600101915050611353565b600092505b5050919050565b6040805190810160405280601681526020017f536f6369616c205265636f76657279204d6f64756c650000000000000000000081525081565b6000816040518082805190602001908083835b6020831015156114aa5780518252602082019150602081019050602083039250611485565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050919050565b60066020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b60038181548110151561151c57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915054906101000a900460ff1681565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611654576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b828054828255906000526020600020908101928215611710579160200282015b8281111561170f5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906116b7565b5b50905061171d9190611721565b5090565b61176191905b8082111561175d57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101611727565b5090565b905600a165627a7a72305820f0b8225dc8646b27a4eb559b8965458750244631494ed3b01cb42cf8380bff870029", + "bytecode": "0x608060405234801561001057600080fd5b50611790806100206000396000f3006080604052600436106100d0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806342cde4e8146100d5578063481c6a75146101005780634ab884271461015757806368125a1b146101c757806377231eaa1461022257806379716e43146102a55780637de7edef146102d65780639ca89d0d14610319578063a3f4df7e14610362578063ae68b056146103f2578063b79ffaff14610477578063ce146828146104e0578063e52cb36a1461054d578063ffa1ad7414610596575b600080fd5b3480156100e157600080fd5b506100ea610626565b6040518082815260200191505060405180910390f35b34801561010c57600080fd5b5061011561062c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561016357600080fd5b506101c56004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190505050610652565b005b3480156101d357600080fd5b50610208600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061099d565b604051808215151515815260200191505060405180910390f35b34801561022e57600080fd5b506102a3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109bd565b005b3480156102b157600080fd5b506102d46004803603810190808035600019169060200190929190505050610f6e565b005b3480156102e257600080fd5b50610317600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611167565b005b34801561032557600080fd5b50610348600480360381019080803560001916906020019092919050505061134a565b604051808215151515815260200191505060405180910390f35b34801561036e57600080fd5b50610377611439565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103b757808201518184015260208101905061039c565b50505050905090810190601f1680156103e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103fe57600080fd5b50610459600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611472565b60405180826000191660001916815260200191505060405180910390f35b34801561048357600080fd5b506104c66004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114de565b604051808215151515815260200191505060405180910390f35b3480156104ec57600080fd5b5061050b6004803603810190808035906020019092919050505061150d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561055957600080fd5b5061057c600480360381019080803560001916906020019092919050505061154b565b604051808215151515815260200191505060405180910390f35b3480156105a257600080fd5b506105ab61156b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105eb5780820151818401526020810190506105d0565b50505050905090810190601f1680156106185780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60025481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080835183111515156106f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f5468726573686f6c642063616e6e6f742065786365656420667269656e64732081526020017f636f756e7400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6002831015151561076d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4174206c65617374203220667269656e6473207265717569726564000000000081525060200191505060405180910390fd5b6107756115a4565b600091505b835182101561097957838281518110151561079157fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff161415151561082c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c696420667269656e6420616464726573732070726f76696465640081525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610914576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f4475706c696361746520667269656e6420616464726573732070726f7669646581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550818060010192505061077a565b836003908051906020019061098f929190611697565b508260028190555050505050565b60046020528060005260406000206000915054906101000a900460ff1681565b60606000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610aa8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642062792061206681526020017f7269656e6400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b848484604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200193505050506040516020818303038152906040527fe318b52b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509150610bd582611472565b905060056000826000191660001916815260200190815260200160002060009054906101000a900460ff16151515610c75576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5265636f7665727920616c72656164792065786563757465640000000000000081525060200191505060405180910390fd5b610c7e8161134a565b1515610d18576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f5265636f7665727920686173206e6f7420656e6f75676820636f6e6669726d6181526020017f74696f6e7300000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160056000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660008560006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610e2957fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610e69578082015181840152602081019050610e4e565b50505050905090810190601f168015610e965780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610eb857600080fd5b505af1158015610ecc573d6000803e3d6000fd5b505050506040513d6020811015610ee257600080fd5b81019080805190602001909291905050501515610f67576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f436f756c64206e6f742065786563757465207265636f7665727900000000000081525060200191505060405180910390fd5b5050505050565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611055576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642062792061206681526020017f7269656e6400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60056000826000191660001916815260200190815260200160002060009054906101000a900460ff161515156110f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5265636f7665727920616c72656164792065786563757465640000000000000081525060200191505060405180910390fd5b600160066000836000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611252576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515611307576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008090505b60038054905081101561142d57600660008560001916600019168152602001908152602001600020600060038381548110151561138c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561140d5781806001019250505b6002548214156114205760019250611432565b8080600101915050611353565b600092505b5050919050565b6040805190810160405280601681526020017f536f6369616c205265636f76657279204d6f64756c650000000000000000000081525081565b6000816040518082805190602001908083835b6020831015156114aa5780518252602082019150602081019050602083039250611485565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050919050565b60066020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b60038181548110151561151c57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915054906101000a900460ff1681565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611654576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b828054828255906000526020600020908101928215611710579160200282015b8281111561170f5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906116b7565b5b50905061171d9190611721565b5090565b61176191905b8082111561175d57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101611727565b5090565b905600a165627a7a7230582008c4d43808ed663a7c594dd38d6f82ee8ff1a4fa8159d72089ac0f7854fa496a0029", + "deployedBytecode": "0x6080604052600436106100d0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806342cde4e8146100d5578063481c6a75146101005780634ab884271461015757806368125a1b146101c757806377231eaa1461022257806379716e43146102a55780637de7edef146102d65780639ca89d0d14610319578063a3f4df7e14610362578063ae68b056146103f2578063b79ffaff14610477578063ce146828146104e0578063e52cb36a1461054d578063ffa1ad7414610596575b600080fd5b3480156100e157600080fd5b506100ea610626565b6040518082815260200191505060405180910390f35b34801561010c57600080fd5b5061011561062c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561016357600080fd5b506101c56004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190505050610652565b005b3480156101d357600080fd5b50610208600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061099d565b604051808215151515815260200191505060405180910390f35b34801561022e57600080fd5b506102a3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109bd565b005b3480156102b157600080fd5b506102d46004803603810190808035600019169060200190929190505050610f6e565b005b3480156102e257600080fd5b50610317600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611167565b005b34801561032557600080fd5b50610348600480360381019080803560001916906020019092919050505061134a565b604051808215151515815260200191505060405180910390f35b34801561036e57600080fd5b50610377611439565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103b757808201518184015260208101905061039c565b50505050905090810190601f1680156103e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103fe57600080fd5b50610459600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611472565b60405180826000191660001916815260200191505060405180910390f35b34801561048357600080fd5b506104c66004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114de565b604051808215151515815260200191505060405180910390f35b3480156104ec57600080fd5b5061050b6004803603810190808035906020019092919050505061150d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561055957600080fd5b5061057c600480360381019080803560001916906020019092919050505061154b565b604051808215151515815260200191505060405180910390f35b3480156105a257600080fd5b506105ab61156b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105eb5780820151818401526020810190506105d0565b50505050905090810190601f1680156106185780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60025481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080835183111515156106f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f5468726573686f6c642063616e6e6f742065786365656420667269656e64732081526020017f636f756e7400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6002831015151561076d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4174206c65617374203220667269656e6473207265717569726564000000000081525060200191505060405180910390fd5b6107756115a4565b600091505b835182101561097957838281518110151561079157fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff161415151561082c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c696420667269656e6420616464726573732070726f76696465640081525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610914576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f4475706c696361746520667269656e6420616464726573732070726f7669646581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550818060010192505061077a565b836003908051906020019061098f929190611697565b508260028190555050505050565b60046020528060005260406000206000915054906101000a900460ff1681565b60606000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610aa8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642062792061206681526020017f7269656e6400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b848484604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200193505050506040516020818303038152906040527fe318b52b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509150610bd582611472565b905060056000826000191660001916815260200190815260200160002060009054906101000a900460ff16151515610c75576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5265636f7665727920616c72656164792065786563757465640000000000000081525060200191505060405180910390fd5b610c7e8161134a565b1515610d18576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f5265636f7665727920686173206e6f7420656e6f75676820636f6e6669726d6181526020017f74696f6e7300000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160056000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660008560006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610e2957fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610e69578082015181840152602081019050610e4e565b50505050905090810190601f168015610e965780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610eb857600080fd5b505af1158015610ecc573d6000803e3d6000fd5b505050506040513d6020811015610ee257600080fd5b81019080805190602001909291905050501515610f67576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f436f756c64206e6f742065786563757465207265636f7665727900000000000081525060200191505060405180910390fd5b5050505050565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611055576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642062792061206681526020017f7269656e6400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60056000826000191660001916815260200190815260200160002060009054906101000a900460ff161515156110f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5265636f7665727920616c72656164792065786563757465640000000000000081525060200191505060405180910390fd5b600160066000836000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611252576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515611307576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008090505b60038054905081101561142d57600660008560001916600019168152602001908152602001600020600060038381548110151561138c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561140d5781806001019250505b6002548214156114205760019250611432565b8080600101915050611353565b600092505b5050919050565b6040805190810160405280601681526020017f536f6369616c205265636f76657279204d6f64756c650000000000000000000081525081565b6000816040518082805190602001908083835b6020831015156114aa5780518252602082019150602081019050602083039250611485565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050919050565b60066020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b60038181548110151561151c57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915054906101000a900460ff1681565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611654576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b828054828255906000526020600020908101928215611710579160200282015b8281111561170f5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906116b7565b5b50905061171d9190611721565b5090565b61176191905b8082111561175d57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101611727565b5090565b905600a165627a7a7230582008c4d43808ed663a7c594dd38d6f82ee8ff1a4fa8159d72089ac0f7854fa496a0029", "sourceMap": "306:3660:21:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;306:3660:21;;;;;;;", - "deployedSourceMap": "306:3660:21:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;460:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;460:24:21;;;;;;;;;;;;;;;;;;;;;;;262:28:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;262:28:8;;;;;;;;;;;;;;;;;;;;;;;;;;;1218:640:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1218:640:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;585:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;585:41:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2514:625;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2514:625:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1971:210;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1971:210:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;3300:405:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3300:405:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;353:54;;8:9:-1;5:2;;;30:1;27;20:12;5:2;353:54:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:54:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3834:130;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3834:130:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;829:65;;8:9:-1;5:2;;;30:1;27;20:12;5:2;829:65:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;490:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;490:24:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;694:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;694:43:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;413:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;413:40:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;413:40:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;460:24;;;;:::o;262:28:8:-;;;;;;;;;;;;;:::o;1218:640:21:-;1515:9;1570:14;1324:8;:15;1310:10;:29;;1302:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1413:1;1399:10;:15;;1391:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1456:12;:10;:12::i;:::-;1527:1;1515:13;;1510:282;1534:8;:15;1530:1;:19;1510:282;;;1587:8;1596:1;1587:11;;;;;;;;;;;;;;;;;;1570:28;;1630:1;1620:6;:11;;;;1612:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1690:8;:16;1699:6;1690:16;;;;;;;;;;;;;;;;;;;;;;;;;1689:17;1681:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1777:4;1758:8;:16;1767:6;1758:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;1551:3;;;;;;;1510:282;;;1811:8;1801:7;:18;;;;;;;;;;;;:::i;:::-;;1841:10;1829:9;:22;;;;1218:640;;;;:::o;585:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;2514:625::-;2640:17;2762:16;941:8;:20;950:10;941:20;;;;;;;;;;;;;;;;;;;;;;;;;933:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2722:9;2733:8;2743;2660:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2660:92:21;;;;;;;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;;;2660:92:21;2640:112;;2781:17;2793:4;2781:11;:17::i;:::-;2762:36;;2817:10;:20;2828:8;2817:20;;;;;;;;;;;;;;;;;;;;;;;;;;;2816:21;2808:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2885:38;2914:8;2885:28;:38::i;:::-;2877:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2998:4;2975:10;:20;2986:8;2975:20;;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;3020:7;;;;;;;;;;;:33;;;3062:7;;;;;;;;;;;3072:1;3075:4;3081:19;3020: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;3020:81:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3020:81:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3020:81:21;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3020:81:21;;;;;;;;;;;;;;;;3012:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2514:625;;;;;:::o;1971:210::-;941:8;:20;950:10;941:20;;;;;;;;;;;;;;;;;;;;;;;;;933:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2074:10;:20;2085:8;2074:20;;;;;;;;;;;;;;;;;;;;;;;;;;;2073:21;2065:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2170:4;2134:11;:21;2146:8;2134:21;;;;;;;;;;;;;;;;;:33;2156:10;2134:33;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;1971:210;:::o;626:248:5:-;359:7:8;;;;;;;;;;;337:30;;:10;:30;;;329:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:5;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;3300:405:21:-;3401:4;3421:25;3461:9;3473:1;3461:13;;3456:221;3480:7;:14;;;;3476:1;:18;3456:221;;;3519:11;:21;3531:8;3519:21;;;;;;;;;;;;;;;;;:33;3541:7;3549:1;3541:10;;;;;;;;;;;;;;;;;;;;;;;;;;;3519:33;;;;;;;;;;;;;;;;;;;;;;;;;3515:74;;;3570:19;;;;;;;3515:74;3628:9;;3607:17;:30;3603:63;;;3662:4;3655:11;;;;3603:63;3496:3;;;;;;;3456:221;;;3693:5;3686:12;;3300:405;;;;;;:::o;353:54::-;;;;;;;;;;;;;;;;;;;;:::o;3834:130::-;3912:7;3952:4;3942: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;;;3942:15:21;;;;;;;;;;;;;;;;3935:22;;3834:130;;;:::o;829:65::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;490:24::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;694:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;413:40::-;;;;;;;;;;;;;;;;;;;;:::o;434:300:8:-;648:1;636:7;;;;;;;;;;;628:21;;;620:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;716:10;692:7;;:35;;;;;;;;;;;;;;;;;;434:300::o;306:3660:21:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", + "deployedSourceMap": "306:3660:21:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;460:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;460:24:21;;;;;;;;;;;;;;;;;;;;;;;262:28:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;262:28:9;;;;;;;;;;;;;;;;;;;;;;;;;;;1218:640:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1218:640:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;585:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;585:41:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2514:625;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2514:625:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1971:210;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1971:210:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;3300:405:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3300:405:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;353:54;;8:9:-1;5:2;;;30:1;27;20:12;5:2;353:54:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:54:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3834:130;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3834:130:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;829:65;;8:9:-1;5:2;;;30:1;27;20:12;5:2;829:65:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;490:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;490:24:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;694:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;694:43:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;413:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;413:40:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;413:40:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;460:24;;;;:::o;262:28:9:-;;;;;;;;;;;;;:::o;1218:640:21:-;1515:9;1570:14;1324:8;:15;1310:10;:29;;1302:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1413:1;1399:10;:15;;1391:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1456:12;:10;:12::i;:::-;1527:1;1515:13;;1510:282;1534:8;:15;1530:1;:19;1510:282;;;1587:8;1596:1;1587:11;;;;;;;;;;;;;;;;;;1570:28;;1630:1;1620:6;:11;;;;1612:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1690:8;:16;1699:6;1690:16;;;;;;;;;;;;;;;;;;;;;;;;;1689:17;1681:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1777:4;1758:8;:16;1767:6;1758:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;1551:3;;;;;;;1510:282;;;1811:8;1801:7;:18;;;;;;;;;;;;:::i;:::-;;1841:10;1829:9;:22;;;;1218:640;;;;:::o;585:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;2514:625::-;2640:17;2762:16;941:8;:20;950:10;941:20;;;;;;;;;;;;;;;;;;;;;;;;;933:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2722:9;2733:8;2743;2660:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2660:92:21;;;;;;;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;;;2660:92:21;2640:112;;2781:17;2793:4;2781:11;:17::i;:::-;2762:36;;2817:10;:20;2828:8;2817:20;;;;;;;;;;;;;;;;;;;;;;;;;;;2816:21;2808:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2885:38;2914:8;2885:28;:38::i;:::-;2877:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2998:4;2975:10;:20;2986:8;2975:20;;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;3020:7;;;;;;;;;;;:33;;;3062:7;;;;;;;;;;;3072:1;3075:4;3081:19;3020: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;3020:81:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3020:81:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3020:81:21;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3020:81:21;;;;;;;;;;;;;;;;3012:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2514:625;;;;;:::o;1971:210::-;941:8;:20;950:10;941:20;;;;;;;;;;;;;;;;;;;;;;;;;933:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2074:10;:20;2085:8;2074:20;;;;;;;;;;;;;;;;;;;;;;;;;;;2073:21;2065:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2170:4;2134:11;:21;2146:8;2134:21;;;;;;;;;;;;;;;;;:33;2156:10;2134:33;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;1971:210;:::o;626:248:7:-;359:7:9;;;;;;;;;;;337:30;;:10;:30;;;329:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:7;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;3300:405:21:-;3401:4;3421:25;3461:9;3473:1;3461:13;;3456:221;3480:7;:14;;;;3476:1;:18;3456:221;;;3519:11;:21;3531:8;3519:21;;;;;;;;;;;;;;;;;:33;3541:7;3549:1;3541:10;;;;;;;;;;;;;;;;;;;;;;;;;;;3519:33;;;;;;;;;;;;;;;;;;;;;;;;;3515:74;;;3570:19;;;;;;;3515:74;3628:9;;3607:17;:30;3603:63;;;3662:4;3655:11;;;;3603:63;3496:3;;;;;;;3456:221;;;3693:5;3686:12;;3300:405;;;;;;:::o;353:54::-;;;;;;;;;;;;;;;;;;;;:::o;3834:130::-;3912:7;3952:4;3942: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;;;3942:15:21;;;;;;;;;;;;;;;;3935:22;;3834:130;;;:::o;829:65::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;490:24::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;694:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;413:40::-;;;;;;;;;;;;;;;;;;;;:::o;434:300:9:-;648:1;636:7;;;;;;;;;;;628:21;;;620:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;716:10;692:7;;:35;;;;;;;;;;;;;;;;;;434:300::o;306:3660:21:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", "source": "pragma solidity 0.4.24;\nimport \"../Enum.sol\";\nimport \"../Module.sol\";\nimport \"../ModuleManager.sol\";\nimport \"../OwnerManager.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.1\";\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": [ - 3680 + 2380 ] }, - "id": 3681, + "id": 2381, "nodeType": "SourceUnit", "nodes": [ { - "id": 3417, + "id": 2117, "literals": [ "solidity", "0.4", @@ -273,9 +273,9 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", "file": "../Enum.sol", - "id": 3418, + "id": 2118, "nodeType": "ImportDirective", - "scope": 3681, + "scope": 2381, "sourceUnit": 31, "src": "24:21:21", "symbolAliases": [], @@ -284,10 +284,10 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", "file": "../Module.sol", - "id": 3419, + "id": 2119, "nodeType": "ImportDirective", - "scope": 3681, - "sourceUnit": 1862, + "scope": 2381, + "sourceUnit": 914, "src": "46:23:21", "symbolAliases": [], "unitAlias": "" @@ -295,10 +295,10 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", "file": "../ModuleManager.sol", - "id": 3420, + "id": 2120, "nodeType": "ImportDirective", - "scope": 3681, - "sourceUnit": 2233, + "scope": 2381, + "sourceUnit": 1181, "src": "70:30:21", "symbolAliases": [], "unitAlias": "" @@ -306,10 +306,10 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", "file": "../OwnerManager.sol", - "id": 3421, + "id": 2121, "nodeType": "ImportDirective", - "scope": 3681, - "sourceUnit": 2889, + "scope": 2381, + "sourceUnit": 1589, "src": "101:29:21", "symbolAliases": [], "unitAlias": "" @@ -320,45 +320,45 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 3422, + "id": 2122, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1861, + "referencedDeclaration": 913, "src": "339:6:21", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" } }, - "id": 3423, + "id": 2123, "nodeType": "InheritanceSpecifier", "src": "339:6:21" } ], "contractDependencies": [ - 632, - 1861, - 3065 + 813, + 913, + 1765 ], "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": 3680, + "id": 2380, "linearizedBaseContracts": [ - 3680, - 1861, - 632, - 3065 + 2380, + 913, + 813, + 1765 ], "name": "SocialRecoveryModule", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 3426, + "id": 2126, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 3680, + "scope": 2380, "src": "353:54:21", "stateVariable": true, "storageLocation": "default", @@ -367,7 +367,7 @@ "typeString": "string" }, "typeName": { - "id": 3424, + "id": 2124, "name": "string", "nodeType": "ElementaryTypeName", "src": "353:6:21", @@ -379,7 +379,7 @@ "value": { "argumentTypes": null, "hexValue": "536f6369616c205265636f76657279204d6f64756c65", - "id": 3425, + "id": 2125, "isConstant": false, "isLValue": false, "isPure": true, @@ -398,10 +398,10 @@ }, { "constant": true, - "id": 3429, + "id": 2129, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 3680, + "scope": 2380, "src": "413:40:21", "stateVariable": true, "storageLocation": "default", @@ -410,7 +410,7 @@ "typeString": "string" }, "typeName": { - "id": 3427, + "id": 2127, "name": "string", "nodeType": "ElementaryTypeName", "src": "413:6:21", @@ -422,7 +422,7 @@ "value": { "argumentTypes": null, "hexValue": "302e302e31", - "id": 3428, + "id": 2128, "isConstant": false, "isLValue": false, "isPure": true, @@ -441,10 +441,10 @@ }, { "constant": false, - "id": 3431, + "id": 2131, "name": "threshold", "nodeType": "VariableDeclaration", - "scope": 3680, + "scope": 2380, "src": "460:24:21", "stateVariable": true, "storageLocation": "default", @@ -453,7 +453,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3430, + "id": 2130, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "460:7:21", @@ -467,10 +467,10 @@ }, { "constant": false, - "id": 3434, + "id": 2134, "name": "friends", "nodeType": "VariableDeclaration", - "scope": 3680, + "scope": 2380, "src": "490:24:21", "stateVariable": true, "storageLocation": "default", @@ -480,7 +480,7 @@ }, "typeName": { "baseType": { - "id": 3432, + "id": 2132, "name": "address", "nodeType": "ElementaryTypeName", "src": "490:7:21", @@ -489,7 +489,7 @@ "typeString": "address" } }, - "id": 3433, + "id": 2133, "length": null, "nodeType": "ArrayTypeName", "src": "490:9:21", @@ -503,10 +503,10 @@ }, { "constant": false, - "id": 3438, + "id": 2138, "name": "isFriend", "nodeType": "VariableDeclaration", - "scope": 3680, + "scope": 2380, "src": "585:41:21", "stateVariable": true, "storageLocation": "default", @@ -515,9 +515,9 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 3437, + "id": 2137, "keyType": { - "id": 3435, + "id": 2135, "name": "address", "nodeType": "ElementaryTypeName", "src": "594:7:21", @@ -533,7 +533,7 @@ "typeString": "mapping(address => bool)" }, "valueType": { - "id": 3436, + "id": 2136, "name": "bool", "nodeType": "ElementaryTypeName", "src": "605:4:21", @@ -548,10 +548,10 @@ }, { "constant": false, - "id": 3442, + "id": 2142, "name": "isExecuted", "nodeType": "VariableDeclaration", - "scope": 3680, + "scope": 2380, "src": "694:43:21", "stateVariable": true, "storageLocation": "default", @@ -560,9 +560,9 @@ "typeString": "mapping(bytes32 => bool)" }, "typeName": { - "id": 3441, + "id": 2141, "keyType": { - "id": 3439, + "id": 2139, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "703:7:21", @@ -578,7 +578,7 @@ "typeString": "mapping(bytes32 => bool)" }, "valueType": { - "id": 3440, + "id": 2140, "name": "bool", "nodeType": "ElementaryTypeName", "src": "714:4:21", @@ -593,10 +593,10 @@ }, { "constant": false, - "id": 3448, + "id": 2148, "name": "isConfirmed", "nodeType": "VariableDeclaration", - "scope": 3680, + "scope": 2380, "src": "829:65:21", "stateVariable": true, "storageLocation": "default", @@ -605,9 +605,9 @@ "typeString": "mapping(bytes32 => mapping(address => bool))" }, "typeName": { - "id": 3447, + "id": 2147, "keyType": { - "id": 3443, + "id": 2143, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "838:7:21", @@ -623,9 +623,9 @@ "typeString": "mapping(bytes32 => mapping(address => bool))" }, "valueType": { - "id": 3446, + "id": 2146, "keyType": { - "id": 3444, + "id": 2144, "name": "address", "nodeType": "ElementaryTypeName", "src": "858:7:21", @@ -641,7 +641,7 @@ "typeString": "mapping(address => bool)" }, "valueType": { - "id": 3445, + "id": 2145, "name": "bool", "nodeType": "ElementaryTypeName", "src": "869:4:21", @@ -657,7 +657,7 @@ }, { "body": { - "id": 3459, + "id": 2159, "nodeType": "Block", "src": "923:98:21", "statements": [ @@ -669,34 +669,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3451, + "id": 2151, "name": "isFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3438, + "referencedDeclaration": 2138, "src": "941:8:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 3454, + "id": 2154, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3452, + "id": 2152, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4036, + "referencedDeclaration": 3828, "src": "950:3:21", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3453, + "id": 2153, "isConstant": false, "isLValue": false, "isPure": false, @@ -724,7 +724,7 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c6564206279206120667269656e64", - "id": 3455, + "id": 2155, "isConstant": false, "isLValue": false, "isPure": true, @@ -751,21 +751,21 @@ "typeString": "literal_string \"Method can only be called by a friend\"" } ], - "id": 3450, + "id": 2150, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "933:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3456, + "id": 2156, "isConstant": false, "isLValue": false, "isPure": false, @@ -779,23 +779,23 @@ "typeString": "tuple()" } }, - "id": 3457, + "id": 2157, "nodeType": "ExpressionStatement", "src": "933:70:21" }, { - "id": 3458, + "id": 2158, "nodeType": "PlaceholderStatement", "src": "1013:1:21" } ] }, "documentation": null, - "id": 3460, + "id": 2160, "name": "onlyFriend", "nodeType": "ModifierDefinition", "parameters": { - "id": 3449, + "id": 2149, "nodeType": "ParameterList", "parameters": [], "src": "920:2:21" @@ -805,7 +805,7 @@ }, { "body": { - "id": 3534, + "id": 2234, "nodeType": "Block", "src": "1292:566:21", "statements": [ @@ -819,18 +819,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3472, + "id": 2172, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3469, + "id": 2169, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3465, + "referencedDeclaration": 2165, "src": "1310:10:21", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -843,18 +843,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3470, + "id": 2170, "name": "_friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3463, + "referencedDeclaration": 2163, "src": "1324:8:21", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 3471, + "id": 2171, "isConstant": false, "isLValue": false, "isPure": false, @@ -877,7 +877,7 @@ { "argumentTypes": null, "hexValue": "5468726573686f6c642063616e6e6f742065786365656420667269656e647320636f756e74", - "id": 3473, + "id": 2173, "isConstant": false, "isLValue": false, "isPure": true, @@ -904,21 +904,21 @@ "typeString": "literal_string \"Threshold cannot exceed friends count\"" } ], - "id": 3468, + "id": 2168, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "1302:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3474, + "id": 2174, "isConstant": false, "isLValue": false, "isPure": false, @@ -932,7 +932,7 @@ "typeString": "tuple()" } }, - "id": 3475, + "id": 2175, "nodeType": "ExpressionStatement", "src": "1302:79:21" }, @@ -946,18 +946,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3479, + "id": 2179, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3477, + "id": 2177, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3465, + "referencedDeclaration": 2165, "src": "1399:10:21", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -969,7 +969,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "32", - "id": 3478, + "id": 2178, "isConstant": false, "isLValue": false, "isPure": true, @@ -993,7 +993,7 @@ { "argumentTypes": null, "hexValue": "4174206c65617374203220667269656e6473207265717569726564", - "id": 3480, + "id": 2180, "isConstant": false, "isLValue": false, "isPure": true, @@ -1020,21 +1020,21 @@ "typeString": "literal_string \"At least 2 friends required\"" } ], - "id": 3476, + "id": 2176, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "1391:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3481, + "id": 2181, "isConstant": false, "isLValue": false, "isPure": false, @@ -1048,7 +1048,7 @@ "typeString": "tuple()" } }, - "id": 3482, + "id": 2182, "nodeType": "ExpressionStatement", "src": "1391:55:21" }, @@ -1058,18 +1058,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 3483, + "id": 2183, "name": "setManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1860, + "referencedDeclaration": 912, "src": "1456:10:21", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 3484, + "id": 2184, "isConstant": false, "isLValue": false, "isPure": false, @@ -1083,27 +1083,27 @@ "typeString": "tuple()" } }, - "id": 3485, + "id": 2185, "nodeType": "ExpressionStatement", "src": "1456:12:21" }, { "body": { - "id": 3524, + "id": 2224, "nodeType": "Block", "src": "1556:236:21", "statements": [ { "assignments": [ - 3498 + 2198 ], "declarations": [ { "constant": false, - "id": 3498, + "id": 2198, "name": "friend", "nodeType": "VariableDeclaration", - "scope": 3535, + "scope": 2235, "src": "1570:14:21", "stateVariable": false, "storageLocation": "default", @@ -1112,7 +1112,7 @@ "typeString": "address" }, "typeName": { - "id": 3497, + "id": 2197, "name": "address", "nodeType": "ElementaryTypeName", "src": "1570:7:21", @@ -1125,30 +1125,30 @@ "visibility": "internal" } ], - "id": 3502, + "id": 2202, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3499, + "id": 2199, "name": "_friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3463, + "referencedDeclaration": 2163, "src": "1587:8:21", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 3501, + "id": 2201, "indexExpression": { "argumentTypes": null, - "id": 3500, + "id": 2200, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3487, + "referencedDeclaration": 2187, "src": "1596:1:21", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1179,18 +1179,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3506, + "id": 2206, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3504, + "id": 2204, "name": "friend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3498, + "referencedDeclaration": 2198, "src": "1620:6:21", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1202,7 +1202,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3505, + "id": 2205, "isConstant": false, "isLValue": false, "isPure": true, @@ -1226,7 +1226,7 @@ { "argumentTypes": null, "hexValue": "496e76616c696420667269656e6420616464726573732070726f7669646564", - "id": 3507, + "id": 2207, "isConstant": false, "isLValue": false, "isPure": true, @@ -1253,21 +1253,21 @@ "typeString": "literal_string \"Invalid friend address provided\"" } ], - "id": 3503, + "id": 2203, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "1612:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3508, + "id": 2208, "isConstant": false, "isLValue": false, "isPure": false, @@ -1281,7 +1281,7 @@ "typeString": "tuple()" } }, - "id": 3509, + "id": 2209, "nodeType": "ExpressionStatement", "src": "1612:55:21" }, @@ -1291,7 +1291,7 @@ "arguments": [ { "argumentTypes": null, - "id": 3514, + "id": 2214, "isConstant": false, "isLValue": false, "isPure": false, @@ -1304,25 +1304,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3511, + "id": 2211, "name": "isFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3438, + "referencedDeclaration": 2138, "src": "1690:8:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 3513, + "id": 2213, "indexExpression": { "argumentTypes": null, - "id": 3512, + "id": 2212, "name": "friend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3498, + "referencedDeclaration": 2198, "src": "1699:6:21", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1348,7 +1348,7 @@ { "argumentTypes": null, "hexValue": "4475706c696361746520667269656e6420616464726573732070726f7669646564", - "id": 3515, + "id": 2215, "isConstant": false, "isLValue": false, "isPure": true, @@ -1375,21 +1375,21 @@ "typeString": "literal_string \"Duplicate friend address provided\"" } ], - "id": 3510, + "id": 2210, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "1681:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3516, + "id": 2216, "isConstant": false, "isLValue": false, "isPure": false, @@ -1403,14 +1403,14 @@ "typeString": "tuple()" } }, - "id": 3517, + "id": 2217, "nodeType": "ExpressionStatement", "src": "1681:63:21" }, { "expression": { "argumentTypes": null, - "id": 3522, + "id": 2222, "isConstant": false, "isLValue": false, "isPure": false, @@ -1419,25 +1419,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3518, + "id": 2218, "name": "isFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3438, + "referencedDeclaration": 2138, "src": "1758:8:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 3520, + "id": 2220, "indexExpression": { "argumentTypes": null, - "id": 3519, + "id": 2219, "name": "friend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3498, + "referencedDeclaration": 2198, "src": "1767:6:21", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1460,7 +1460,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 3521, + "id": 2221, "isConstant": false, "isLValue": false, "isPure": true, @@ -1481,7 +1481,7 @@ "typeString": "bool" } }, - "id": 3523, + "id": 2223, "nodeType": "ExpressionStatement", "src": "1758:23:21" } @@ -1493,18 +1493,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3493, + "id": 2193, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3490, + "id": 2190, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3487, + "referencedDeclaration": 2187, "src": "1530:1:21", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1517,18 +1517,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3491, + "id": 2191, "name": "_friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3463, + "referencedDeclaration": 2163, "src": "1534:8:21", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 3492, + "id": 2192, "isConstant": false, "isLValue": false, "isPure": false, @@ -1548,18 +1548,18 @@ "typeString": "bool" } }, - "id": 3525, + "id": 2225, "initializationExpression": { "assignments": [ - 3487 + 2187 ], "declarations": [ { "constant": false, - "id": 3487, + "id": 2187, "name": "i", "nodeType": "VariableDeclaration", - "scope": 3535, + "scope": 2235, "src": "1515:9:21", "stateVariable": false, "storageLocation": "default", @@ -1568,7 +1568,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3486, + "id": 2186, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1515:7:21", @@ -1581,11 +1581,11 @@ "visibility": "internal" } ], - "id": 3489, + "id": 2189, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 3488, + "id": 2188, "isConstant": false, "isLValue": false, "isPure": true, @@ -1606,7 +1606,7 @@ "loopExpression": { "expression": { "argumentTypes": null, - "id": 3495, + "id": 2195, "isConstant": false, "isLValue": false, "isPure": false, @@ -1617,11 +1617,11 @@ "src": "1551:3:21", "subExpression": { "argumentTypes": null, - "id": 3494, + "id": 2194, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3487, + "referencedDeclaration": 2187, "src": "1551:1:21", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1633,7 +1633,7 @@ "typeString": "uint256" } }, - "id": 3496, + "id": 2196, "nodeType": "ExpressionStatement", "src": "1551:3:21" }, @@ -1643,18 +1643,18 @@ { "expression": { "argumentTypes": null, - "id": 3528, + "id": 2228, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3526, + "id": 2226, "name": "friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3434, + "referencedDeclaration": 2134, "src": "1801:7:21", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", @@ -1665,11 +1665,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3527, + "id": 2227, "name": "_friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3463, + "referencedDeclaration": 2163, "src": "1811:8:21", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", @@ -1682,25 +1682,25 @@ "typeString": "address[] storage ref" } }, - "id": 3529, + "id": 2229, "nodeType": "ExpressionStatement", "src": "1801:18:21" }, { "expression": { "argumentTypes": null, - "id": 3532, + "id": 2232, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3530, + "id": 2230, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3431, + "referencedDeclaration": 2131, "src": "1829:9:21", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1711,11 +1711,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3531, + "id": 2231, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3465, + "referencedDeclaration": 2165, "src": "1841:10:21", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1728,14 +1728,14 @@ "typeString": "uint256" } }, - "id": 3533, + "id": 2233, "nodeType": "ExpressionStatement", "src": "1829:22:21" } ] }, "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": 3535, + "id": 2235, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1743,15 +1743,15 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 3466, + "id": 2166, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3463, + "id": 2163, "name": "_friends", "nodeType": "VariableDeclaration", - "scope": 3535, + "scope": 2235, "src": "1233:18:21", "stateVariable": false, "storageLocation": "default", @@ -1761,7 +1761,7 @@ }, "typeName": { "baseType": { - "id": 3461, + "id": 2161, "name": "address", "nodeType": "ElementaryTypeName", "src": "1233:7:21", @@ -1770,7 +1770,7 @@ "typeString": "address" } }, - "id": 3462, + "id": 2162, "length": null, "nodeType": "ArrayTypeName", "src": "1233:9:21", @@ -1784,10 +1784,10 @@ }, { "constant": false, - "id": 3465, + "id": 2165, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 3535, + "scope": 2235, "src": "1253:18:21", "stateVariable": false, "storageLocation": "default", @@ -1796,7 +1796,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3464, + "id": 2164, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1253:7:21", @@ -1813,12 +1813,12 @@ }, "payable": false, "returnParameters": { - "id": 3467, + "id": 2167, "nodeType": "ParameterList", "parameters": [], "src": "1292:0:21" }, - "scope": 3680, + "scope": 2380, "src": "1218:640:21", "stateMutability": "nonpayable", "superFunction": null, @@ -1826,7 +1826,7 @@ }, { "body": { - "id": 3559, + "id": 2259, "nodeType": "Block", "src": "2055:126:21", "statements": [ @@ -1836,7 +1836,7 @@ "arguments": [ { "argumentTypes": null, - "id": 3546, + "id": 2246, "isConstant": false, "isLValue": false, "isPure": false, @@ -1849,25 +1849,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3543, + "id": 2243, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3442, + "referencedDeclaration": 2142, "src": "2074:10:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 3545, + "id": 2245, "indexExpression": { "argumentTypes": null, - "id": 3544, + "id": 2244, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3537, + "referencedDeclaration": 2237, "src": "2085:8:21", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1893,7 +1893,7 @@ { "argumentTypes": null, "hexValue": "5265636f7665727920616c7265616479206578656375746564", - "id": 3547, + "id": 2247, "isConstant": false, "isLValue": false, "isPure": true, @@ -1920,21 +1920,21 @@ "typeString": "literal_string \"Recovery already executed\"" } ], - "id": 3542, + "id": 2242, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "2065:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3548, + "id": 2248, "isConstant": false, "isLValue": false, "isPure": false, @@ -1948,14 +1948,14 @@ "typeString": "tuple()" } }, - "id": 3549, + "id": 2249, "nodeType": "ExpressionStatement", "src": "2065:59:21" }, { "expression": { "argumentTypes": null, - "id": 3557, + "id": 2257, "isConstant": false, "isLValue": false, "isPure": false, @@ -1966,25 +1966,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3550, + "id": 2250, "name": "isConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3448, + "referencedDeclaration": 2148, "src": "2134:11:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(bytes32 => mapping(address => bool))" } }, - "id": 3554, + "id": 2254, "indexExpression": { "argumentTypes": null, - "id": 3551, + "id": 2251, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3537, + "referencedDeclaration": 2237, "src": "2146:8:21", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -2002,23 +2002,23 @@ "typeString": "mapping(address => bool)" } }, - "id": 3555, + "id": 2255, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3552, + "id": 2252, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4036, + "referencedDeclaration": 3828, "src": "2156:3:21", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3553, + "id": 2253, "isConstant": false, "isLValue": false, "isPure": false, @@ -2048,7 +2048,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 3556, + "id": 2256, "isConstant": false, "isLValue": false, "isPure": true, @@ -2069,28 +2069,28 @@ "typeString": "bool" } }, - "id": 3558, + "id": 2258, "nodeType": "ExpressionStatement", "src": "2134:40:21" } ] }, "documentation": "@dev Allows a friend to confirm a Safe transaction.\n @param dataHash Safe transaction hash.", - "id": 3560, + "id": 2260, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 3540, + "id": 2240, "modifierName": { "argumentTypes": null, - "id": 3539, + "id": 2239, "name": "onlyFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3460, + "referencedDeclaration": 2160, "src": "2040:10:21", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -2104,15 +2104,15 @@ "name": "confirmTransaction", "nodeType": "FunctionDefinition", "parameters": { - "id": 3538, + "id": 2238, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3537, + "id": 2237, "name": "dataHash", "nodeType": "VariableDeclaration", - "scope": 3560, + "scope": 2260, "src": "1999:16:21", "stateVariable": false, "storageLocation": "default", @@ -2121,7 +2121,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3536, + "id": 2236, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1999:7:21", @@ -2138,12 +2138,12 @@ }, "payable": false, "returnParameters": { - "id": 3541, + "id": 2241, "nodeType": "ParameterList", "parameters": [], "src": "2055:0:21" }, - "scope": 3680, + "scope": 2380, "src": "1971:210:21", "stateMutability": "nonpayable", "superFunction": null, @@ -2151,21 +2151,21 @@ }, { "body": { - "id": 3623, + "id": 2323, "nodeType": "Block", "src": "2630:509:21", "statements": [ { "assignments": [ - 3572 + 2272 ], "declarations": [ { "constant": false, - "id": 3572, + "id": 2272, "name": "data", "nodeType": "VariableDeclaration", - "scope": 3624, + "scope": 2324, "src": "2640:17:21", "stateVariable": false, "storageLocation": "memory", @@ -2174,7 +2174,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3571, + "id": 2271, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "2640:5:21", @@ -2187,14 +2187,14 @@ "visibility": "internal" } ], - "id": 3580, + "id": 2280, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "737761704f776e657228616464726573732c616464726573732c6164647265737329", - "id": 3575, + "id": 2275, "isConstant": false, "isLValue": false, "isPure": true, @@ -2211,11 +2211,11 @@ }, { "argumentTypes": null, - "id": 3576, + "id": 2276, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3562, + "referencedDeclaration": 2262, "src": "2722:9:21", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2224,11 +2224,11 @@ }, { "argumentTypes": null, - "id": 3577, + "id": 2277, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3564, + "referencedDeclaration": 2264, "src": "2733:8:21", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2237,11 +2237,11 @@ }, { "argumentTypes": null, - "id": 3578, + "id": 2278, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3566, + "referencedDeclaration": 2266, "src": "2743:8:21", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2270,18 +2270,18 @@ ], "expression": { "argumentTypes": null, - "id": 3573, + "id": 2273, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4023, + "referencedDeclaration": 3815, "src": "2660:3:21", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 3574, + "id": 2274, "isConstant": false, "isLValue": false, "isPure": true, @@ -2295,7 +2295,7 @@ "typeString": "function (string memory) pure returns (bytes memory)" } }, - "id": 3579, + "id": 2279, "isConstant": false, "isLValue": false, "isPure": false, @@ -2314,15 +2314,15 @@ }, { "assignments": [ - 3582 + 2282 ], "declarations": [ { "constant": false, - "id": 3582, + "id": 2282, "name": "dataHash", "nodeType": "VariableDeclaration", - "scope": 3624, + "scope": 2324, "src": "2762:16:21", "stateVariable": false, "storageLocation": "default", @@ -2331,7 +2331,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3581, + "id": 2281, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2762:7:21", @@ -2344,17 +2344,17 @@ "visibility": "internal" } ], - "id": 3586, + "id": 2286, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 3584, + "id": 2284, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3572, + "referencedDeclaration": 2272, "src": "2793:4:21", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -2369,18 +2369,18 @@ "typeString": "bytes memory" } ], - "id": 3583, + "id": 2283, "name": "getDataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3679, + "referencedDeclaration": 2379, "src": "2781:11:21", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 3585, + "id": 2285, "isConstant": false, "isLValue": false, "isPure": false, @@ -2403,7 +2403,7 @@ "arguments": [ { "argumentTypes": null, - "id": 3591, + "id": 2291, "isConstant": false, "isLValue": false, "isPure": false, @@ -2416,25 +2416,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3588, + "id": 2288, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3442, + "referencedDeclaration": 2142, "src": "2817:10:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 3590, + "id": 2290, "indexExpression": { "argumentTypes": null, - "id": 3589, + "id": 2289, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3582, + "referencedDeclaration": 2282, "src": "2828:8:21", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -2460,7 +2460,7 @@ { "argumentTypes": null, "hexValue": "5265636f7665727920616c7265616479206578656375746564", - "id": 3592, + "id": 2292, "isConstant": false, "isLValue": false, "isPure": true, @@ -2487,21 +2487,21 @@ "typeString": "literal_string \"Recovery already executed\"" } ], - "id": 3587, + "id": 2287, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "2808:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3593, + "id": 2293, "isConstant": false, "isLValue": false, "isPure": false, @@ -2515,7 +2515,7 @@ "typeString": "tuple()" } }, - "id": 3594, + "id": 2294, "nodeType": "ExpressionStatement", "src": "2808:59:21" }, @@ -2528,11 +2528,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3597, + "id": 2297, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3582, + "referencedDeclaration": 2282, "src": "2914:8:21", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -2547,18 +2547,18 @@ "typeString": "bytes32" } ], - "id": 3596, + "id": 2296, "name": "isConfirmedByRequiredFriends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3667, + "referencedDeclaration": 2367, "src": "2885:28:21", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view returns (bool)" } }, - "id": 3598, + "id": 2298, "isConstant": false, "isLValue": false, "isPure": false, @@ -2575,7 +2575,7 @@ { "argumentTypes": null, "hexValue": "5265636f7665727920686173206e6f7420656e6f75676820636f6e6669726d6174696f6e73", - "id": 3599, + "id": 2299, "isConstant": false, "isLValue": false, "isPure": true, @@ -2602,21 +2602,21 @@ "typeString": "literal_string \"Recovery has not enough confirmations\"" } ], - "id": 3595, + "id": 2295, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "2877:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3600, + "id": 2300, "isConstant": false, "isLValue": false, "isPure": false, @@ -2630,14 +2630,14 @@ "typeString": "tuple()" } }, - "id": 3601, + "id": 2301, "nodeType": "ExpressionStatement", "src": "2877:88:21" }, { "expression": { "argumentTypes": null, - "id": 3606, + "id": 2306, "isConstant": false, "isLValue": false, "isPure": false, @@ -2646,25 +2646,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3602, + "id": 2302, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3442, + "referencedDeclaration": 2142, "src": "2975:10:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 3604, + "id": 2304, "indexExpression": { "argumentTypes": null, - "id": 3603, + "id": 2303, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3582, + "referencedDeclaration": 2282, "src": "2986:8:21", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -2687,7 +2687,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 3605, + "id": 2305, "isConstant": false, "isLValue": false, "isPure": true, @@ -2708,7 +2708,7 @@ "typeString": "bool" } }, - "id": 3607, + "id": 2307, "nodeType": "ExpressionStatement", "src": "2975:27:21" }, @@ -2724,14 +2724,14 @@ "arguments": [ { "argumentTypes": null, - "id": 3612, + "id": 2312, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1826, + "referencedDeclaration": 878, "src": "3062:7:21", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } } @@ -2739,11 +2739,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } ], - "id": 3611, + "id": 2311, "isConstant": false, "isLValue": false, "isPure": true, @@ -2756,7 +2756,7 @@ }, "typeName": "address" }, - "id": 3613, + "id": 2313, "isConstant": false, "isLValue": false, "isPure": false, @@ -2773,7 +2773,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3614, + "id": 2314, "isConstant": false, "isLValue": false, "isPure": true, @@ -2790,11 +2790,11 @@ }, { "argumentTypes": null, - "id": 3615, + "id": 2315, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3572, + "referencedDeclaration": 2272, "src": "3075:4:21", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -2807,7 +2807,7 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3616, + "id": 2316, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -2818,7 +2818,7 @@ "typeString": "type(contract Enum)" } }, - "id": 3617, + "id": 2317, "isConstant": false, "isLValue": false, "isPure": false, @@ -2832,7 +2832,7 @@ "typeString": "type(enum Enum.Operation)" } }, - "id": 3618, + "id": 2318, "isConstant": false, "isLValue": false, "isPure": true, @@ -2868,32 +2868,32 @@ ], "expression": { "argumentTypes": null, - "id": 3609, + "id": 2309, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1826, + "referencedDeclaration": 878, "src": "3020:7:21", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } }, - "id": 3610, + "id": 2310, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "execTransactionFromModule", "nodeType": "MemberAccess", - "referencedDeclaration": 2059, + "referencedDeclaration": 1106, "src": "3020:33:21", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" } }, - "id": 3619, + "id": 2319, "isConstant": false, "isLValue": false, "isPure": false, @@ -2910,7 +2910,7 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f742065786563757465207265636f76657279", - "id": 3620, + "id": 2320, "isConstant": false, "isLValue": false, "isPure": true, @@ -2937,21 +2937,21 @@ "typeString": "literal_string \"Could not execute recovery\"" } ], - "id": 3608, + "id": 2308, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "3012:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3621, + "id": 2321, "isConstant": false, "isLValue": false, "isPure": false, @@ -2965,28 +2965,28 @@ "typeString": "tuple()" } }, - "id": 3622, + "id": 2322, "nodeType": "ExpressionStatement", "src": "3012:120:21" } ] }, "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": 3624, + "id": 2324, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 3569, + "id": 2269, "modifierName": { "argumentTypes": null, - "id": 3568, + "id": 2268, "name": "onlyFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3460, + "referencedDeclaration": 2160, "src": "2615:10:21", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -3000,15 +3000,15 @@ "name": "recoverAccess", "nodeType": "FunctionDefinition", "parameters": { - "id": 3567, + "id": 2267, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3562, + "id": 2262, "name": "prevOwner", "nodeType": "VariableDeclaration", - "scope": 3624, + "scope": 2324, "src": "2537:17:21", "stateVariable": false, "storageLocation": "default", @@ -3017,7 +3017,7 @@ "typeString": "address" }, "typeName": { - "id": 3561, + "id": 2261, "name": "address", "nodeType": "ElementaryTypeName", "src": "2537:7:21", @@ -3031,10 +3031,10 @@ }, { "constant": false, - "id": 3564, + "id": 2264, "name": "oldOwner", "nodeType": "VariableDeclaration", - "scope": 3624, + "scope": 2324, "src": "2556:16:21", "stateVariable": false, "storageLocation": "default", @@ -3043,7 +3043,7 @@ "typeString": "address" }, "typeName": { - "id": 3563, + "id": 2263, "name": "address", "nodeType": "ElementaryTypeName", "src": "2556:7:21", @@ -3057,10 +3057,10 @@ }, { "constant": false, - "id": 3566, + "id": 2266, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 3624, + "scope": 2324, "src": "2574:16:21", "stateVariable": false, "storageLocation": "default", @@ -3069,7 +3069,7 @@ "typeString": "address" }, "typeName": { - "id": 3565, + "id": 2265, "name": "address", "nodeType": "ElementaryTypeName", "src": "2574:7:21", @@ -3086,12 +3086,12 @@ }, "payable": false, "returnParameters": { - "id": 3570, + "id": 2270, "nodeType": "ParameterList", "parameters": [], "src": "2630:0:21" }, - "scope": 3680, + "scope": 2380, "src": "2514:625:21", "stateMutability": "nonpayable", "superFunction": null, @@ -3099,7 +3099,7 @@ }, { "body": { - "id": 3666, + "id": 2366, "nodeType": "Block", "src": "3411:294:21", "statements": [ @@ -3108,10 +3108,10 @@ "declarations": [ { "constant": false, - "id": 3632, + "id": 2332, "name": "confirmationCount", "nodeType": "VariableDeclaration", - "scope": 3667, + "scope": 2367, "src": "3421:25:21", "stateVariable": false, "storageLocation": "default", @@ -3120,7 +3120,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3631, + "id": 2331, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3421:7:21", @@ -3133,14 +3133,14 @@ "visibility": "internal" } ], - "id": 3633, + "id": 2333, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "3421:25:21" }, { "body": { - "id": 3662, + "id": 2362, "nodeType": "Block", "src": "3501:176:21", "statements": [ @@ -3151,25 +3151,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3645, + "id": 2345, "name": "isConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3448, + "referencedDeclaration": 2148, "src": "3519:11:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(bytes32 => mapping(address => bool))" } }, - "id": 3647, + "id": 2347, "indexExpression": { "argumentTypes": null, - "id": 3646, + "id": 2346, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3626, + "referencedDeclaration": 2326, "src": "3531:8:21", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -3187,30 +3187,30 @@ "typeString": "mapping(address => bool)" } }, - "id": 3651, + "id": 2351, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3648, + "id": 2348, "name": "friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3434, + "referencedDeclaration": 2134, "src": "3541:7:21", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 3650, + "id": 2350, "indexExpression": { "argumentTypes": null, - "id": 3649, + "id": 2349, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3635, + "referencedDeclaration": 2335, "src": "3549:1:21", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3240,13 +3240,13 @@ } }, "falseBody": null, - "id": 3655, + "id": 2355, "nodeType": "IfStatement", "src": "3515:74:21", "trueBody": { "expression": { "argumentTypes": null, - "id": 3653, + "id": 2353, "isConstant": false, "isLValue": false, "isPure": false, @@ -3257,11 +3257,11 @@ "src": "3570:19:21", "subExpression": { "argumentTypes": null, - "id": 3652, + "id": 2352, "name": "confirmationCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3632, + "referencedDeclaration": 2332, "src": "3570:17:21", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3273,7 +3273,7 @@ "typeString": "uint256" } }, - "id": 3654, + "id": 2354, "nodeType": "ExpressionStatement", "src": "3570:19:21" } @@ -3285,18 +3285,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3658, + "id": 2358, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3656, + "id": 2356, "name": "confirmationCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3632, + "referencedDeclaration": 2332, "src": "3607:17:21", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3307,11 +3307,11 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 3657, + "id": 2357, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3431, + "referencedDeclaration": 2131, "src": "3628:9:21", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3325,14 +3325,14 @@ } }, "falseBody": null, - "id": 3661, + "id": 2361, "nodeType": "IfStatement", "src": "3603:63:21", "trueBody": { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3659, + "id": 2359, "isConstant": false, "isLValue": false, "isPure": true, @@ -3347,8 +3347,8 @@ }, "value": "true" }, - "functionReturnParameters": 3630, - "id": 3660, + "functionReturnParameters": 2330, + "id": 2360, "nodeType": "Return", "src": "3655:11:21" } @@ -3361,18 +3361,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3641, + "id": 2341, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3638, + "id": 2338, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3635, + "referencedDeclaration": 2335, "src": "3476:1:21", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3385,18 +3385,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3639, + "id": 2339, "name": "friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3434, + "referencedDeclaration": 2134, "src": "3480:7:21", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 3640, + "id": 2340, "isConstant": false, "isLValue": true, "isPure": false, @@ -3416,18 +3416,18 @@ "typeString": "bool" } }, - "id": 3663, + "id": 2363, "initializationExpression": { "assignments": [ - 3635 + 2335 ], "declarations": [ { "constant": false, - "id": 3635, + "id": 2335, "name": "i", "nodeType": "VariableDeclaration", - "scope": 3667, + "scope": 2367, "src": "3461:9:21", "stateVariable": false, "storageLocation": "default", @@ -3436,7 +3436,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3634, + "id": 2334, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3461:7:21", @@ -3449,11 +3449,11 @@ "visibility": "internal" } ], - "id": 3637, + "id": 2337, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 3636, + "id": 2336, "isConstant": false, "isLValue": false, "isPure": true, @@ -3474,7 +3474,7 @@ "loopExpression": { "expression": { "argumentTypes": null, - "id": 3643, + "id": 2343, "isConstant": false, "isLValue": false, "isPure": false, @@ -3485,11 +3485,11 @@ "src": "3496:3:21", "subExpression": { "argumentTypes": null, - "id": 3642, + "id": 2342, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3635, + "referencedDeclaration": 2335, "src": "3496:1:21", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3501,7 +3501,7 @@ "typeString": "uint256" } }, - "id": 3644, + "id": 2344, "nodeType": "ExpressionStatement", "src": "3496:3:21" }, @@ -3512,7 +3512,7 @@ "expression": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 3664, + "id": 2364, "isConstant": false, "isLValue": false, "isPure": true, @@ -3527,15 +3527,15 @@ }, "value": "false" }, - "functionReturnParameters": 3630, - "id": 3665, + "functionReturnParameters": 2330, + "id": 2365, "nodeType": "Return", "src": "3686:12:21" } ] }, "documentation": "@dev Returns if Safe transaction is a valid owner replacement transaction.\n @param dataHash Data hash.\n @return Confirmation status.", - "id": 3667, + "id": 2367, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3543,15 +3543,15 @@ "name": "isConfirmedByRequiredFriends", "nodeType": "FunctionDefinition", "parameters": { - "id": 3627, + "id": 2327, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3626, + "id": 2326, "name": "dataHash", "nodeType": "VariableDeclaration", - "scope": 3667, + "scope": 2367, "src": "3338:16:21", "stateVariable": false, "storageLocation": "default", @@ -3560,7 +3560,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3625, + "id": 2325, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "3338:7:21", @@ -3577,15 +3577,15 @@ }, "payable": false, "returnParameters": { - "id": 3630, + "id": 2330, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3629, + "id": 2329, "name": "", "nodeType": "VariableDeclaration", - "scope": 3667, + "scope": 2367, "src": "3401:4:21", "stateVariable": false, "storageLocation": "default", @@ -3594,7 +3594,7 @@ "typeString": "bool" }, "typeName": { - "id": 3628, + "id": 2328, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3401:4:21", @@ -3609,7 +3609,7 @@ ], "src": "3400:6:21" }, - "scope": 3680, + "scope": 2380, "src": "3300:405:21", "stateMutability": "view", "superFunction": null, @@ -3617,7 +3617,7 @@ }, { "body": { - "id": 3678, + "id": 2378, "nodeType": "Block", "src": "3925:39:21", "statements": [ @@ -3627,11 +3627,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3675, + "id": 2375, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3669, + "referencedDeclaration": 2369, "src": "3952:4:21", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -3646,18 +3646,18 @@ "typeString": "bytes memory" } ], - "id": 3674, + "id": 2374, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4030, + "referencedDeclaration": 3822, "src": "3942:9:21", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 3676, + "id": 2376, "isConstant": false, "isLValue": false, "isPure": false, @@ -3671,15 +3671,15 @@ "typeString": "bytes32" } }, - "functionReturnParameters": 3673, - "id": 3677, + "functionReturnParameters": 2373, + "id": 2377, "nodeType": "Return", "src": "3935:22:21" } ] }, "documentation": "@dev Returns hash of data encoding owner replacement.\n @param data Data payload.\n @return Data hash.", - "id": 3679, + "id": 2379, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3687,15 +3687,15 @@ "name": "getDataHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 3670, + "id": 2370, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3669, + "id": 2369, "name": "data", "nodeType": "VariableDeclaration", - "scope": 3679, + "scope": 2379, "src": "3855:10:21", "stateVariable": false, "storageLocation": "default", @@ -3704,7 +3704,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3668, + "id": 2368, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3855:5:21", @@ -3721,15 +3721,15 @@ }, "payable": false, "returnParameters": { - "id": 3673, + "id": 2373, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3672, + "id": 2372, "name": "", "nodeType": "VariableDeclaration", - "scope": 3679, + "scope": 2379, "src": "3912:7:21", "stateVariable": false, "storageLocation": "default", @@ -3738,7 +3738,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3671, + "id": 2371, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "3912:7:21", @@ -3753,14 +3753,14 @@ ], "src": "3911:9:21" }, - "scope": 3680, + "scope": 2380, "src": "3834:130:21", "stateMutability": "pure", "superFunction": null, "visibility": "public" } ], - "scope": 3681, + "scope": 2381, "src": "306:3660:21" } ], @@ -3770,14 +3770,14 @@ "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/SocialRecoveryModule.sol", "exportedSymbols": { "SocialRecoveryModule": [ - 3680 + 2380 ] }, - "id": 3681, + "id": 2381, "nodeType": "SourceUnit", "nodes": [ { - "id": 3417, + "id": 2117, "literals": [ "solidity", "0.4", @@ -3789,9 +3789,9 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", "file": "../Enum.sol", - "id": 3418, + "id": 2118, "nodeType": "ImportDirective", - "scope": 3681, + "scope": 2381, "sourceUnit": 31, "src": "24:21:21", "symbolAliases": [], @@ -3800,10 +3800,10 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", "file": "../Module.sol", - "id": 3419, + "id": 2119, "nodeType": "ImportDirective", - "scope": 3681, - "sourceUnit": 1862, + "scope": 2381, + "sourceUnit": 914, "src": "46:23:21", "symbolAliases": [], "unitAlias": "" @@ -3811,10 +3811,10 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", "file": "../ModuleManager.sol", - "id": 3420, + "id": 2120, "nodeType": "ImportDirective", - "scope": 3681, - "sourceUnit": 2233, + "scope": 2381, + "sourceUnit": 1181, "src": "70:30:21", "symbolAliases": [], "unitAlias": "" @@ -3822,10 +3822,10 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", "file": "../OwnerManager.sol", - "id": 3421, + "id": 2121, "nodeType": "ImportDirective", - "scope": 3681, - "sourceUnit": 2889, + "scope": 2381, + "sourceUnit": 1589, "src": "101:29:21", "symbolAliases": [], "unitAlias": "" @@ -3836,45 +3836,45 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 3422, + "id": 2122, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1861, + "referencedDeclaration": 913, "src": "339:6:21", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" } }, - "id": 3423, + "id": 2123, "nodeType": "InheritanceSpecifier", "src": "339:6:21" } ], "contractDependencies": [ - 632, - 1861, - 3065 + 813, + 913, + 1765 ], "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": 3680, + "id": 2380, "linearizedBaseContracts": [ - 3680, - 1861, - 632, - 3065 + 2380, + 913, + 813, + 1765 ], "name": "SocialRecoveryModule", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 3426, + "id": 2126, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 3680, + "scope": 2380, "src": "353:54:21", "stateVariable": true, "storageLocation": "default", @@ -3883,7 +3883,7 @@ "typeString": "string" }, "typeName": { - "id": 3424, + "id": 2124, "name": "string", "nodeType": "ElementaryTypeName", "src": "353:6:21", @@ -3895,7 +3895,7 @@ "value": { "argumentTypes": null, "hexValue": "536f6369616c205265636f76657279204d6f64756c65", - "id": 3425, + "id": 2125, "isConstant": false, "isLValue": false, "isPure": true, @@ -3914,10 +3914,10 @@ }, { "constant": true, - "id": 3429, + "id": 2129, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 3680, + "scope": 2380, "src": "413:40:21", "stateVariable": true, "storageLocation": "default", @@ -3926,7 +3926,7 @@ "typeString": "string" }, "typeName": { - "id": 3427, + "id": 2127, "name": "string", "nodeType": "ElementaryTypeName", "src": "413:6:21", @@ -3938,7 +3938,7 @@ "value": { "argumentTypes": null, "hexValue": "302e302e31", - "id": 3428, + "id": 2128, "isConstant": false, "isLValue": false, "isPure": true, @@ -3957,10 +3957,10 @@ }, { "constant": false, - "id": 3431, + "id": 2131, "name": "threshold", "nodeType": "VariableDeclaration", - "scope": 3680, + "scope": 2380, "src": "460:24:21", "stateVariable": true, "storageLocation": "default", @@ -3969,7 +3969,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3430, + "id": 2130, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "460:7:21", @@ -3983,10 +3983,10 @@ }, { "constant": false, - "id": 3434, + "id": 2134, "name": "friends", "nodeType": "VariableDeclaration", - "scope": 3680, + "scope": 2380, "src": "490:24:21", "stateVariable": true, "storageLocation": "default", @@ -3996,7 +3996,7 @@ }, "typeName": { "baseType": { - "id": 3432, + "id": 2132, "name": "address", "nodeType": "ElementaryTypeName", "src": "490:7:21", @@ -4005,7 +4005,7 @@ "typeString": "address" } }, - "id": 3433, + "id": 2133, "length": null, "nodeType": "ArrayTypeName", "src": "490:9:21", @@ -4019,10 +4019,10 @@ }, { "constant": false, - "id": 3438, + "id": 2138, "name": "isFriend", "nodeType": "VariableDeclaration", - "scope": 3680, + "scope": 2380, "src": "585:41:21", "stateVariable": true, "storageLocation": "default", @@ -4031,9 +4031,9 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 3437, + "id": 2137, "keyType": { - "id": 3435, + "id": 2135, "name": "address", "nodeType": "ElementaryTypeName", "src": "594:7:21", @@ -4049,7 +4049,7 @@ "typeString": "mapping(address => bool)" }, "valueType": { - "id": 3436, + "id": 2136, "name": "bool", "nodeType": "ElementaryTypeName", "src": "605:4:21", @@ -4064,10 +4064,10 @@ }, { "constant": false, - "id": 3442, + "id": 2142, "name": "isExecuted", "nodeType": "VariableDeclaration", - "scope": 3680, + "scope": 2380, "src": "694:43:21", "stateVariable": true, "storageLocation": "default", @@ -4076,9 +4076,9 @@ "typeString": "mapping(bytes32 => bool)" }, "typeName": { - "id": 3441, + "id": 2141, "keyType": { - "id": 3439, + "id": 2139, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "703:7:21", @@ -4094,7 +4094,7 @@ "typeString": "mapping(bytes32 => bool)" }, "valueType": { - "id": 3440, + "id": 2140, "name": "bool", "nodeType": "ElementaryTypeName", "src": "714:4:21", @@ -4109,10 +4109,10 @@ }, { "constant": false, - "id": 3448, + "id": 2148, "name": "isConfirmed", "nodeType": "VariableDeclaration", - "scope": 3680, + "scope": 2380, "src": "829:65:21", "stateVariable": true, "storageLocation": "default", @@ -4121,9 +4121,9 @@ "typeString": "mapping(bytes32 => mapping(address => bool))" }, "typeName": { - "id": 3447, + "id": 2147, "keyType": { - "id": 3443, + "id": 2143, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "838:7:21", @@ -4139,9 +4139,9 @@ "typeString": "mapping(bytes32 => mapping(address => bool))" }, "valueType": { - "id": 3446, + "id": 2146, "keyType": { - "id": 3444, + "id": 2144, "name": "address", "nodeType": "ElementaryTypeName", "src": "858:7:21", @@ -4157,7 +4157,7 @@ "typeString": "mapping(address => bool)" }, "valueType": { - "id": 3445, + "id": 2145, "name": "bool", "nodeType": "ElementaryTypeName", "src": "869:4:21", @@ -4173,7 +4173,7 @@ }, { "body": { - "id": 3459, + "id": 2159, "nodeType": "Block", "src": "923:98:21", "statements": [ @@ -4185,34 +4185,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3451, + "id": 2151, "name": "isFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3438, + "referencedDeclaration": 2138, "src": "941:8:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 3454, + "id": 2154, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3452, + "id": 2152, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4036, + "referencedDeclaration": 3828, "src": "950:3:21", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3453, + "id": 2153, "isConstant": false, "isLValue": false, "isPure": false, @@ -4240,7 +4240,7 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c6564206279206120667269656e64", - "id": 3455, + "id": 2155, "isConstant": false, "isLValue": false, "isPure": true, @@ -4267,21 +4267,21 @@ "typeString": "literal_string \"Method can only be called by a friend\"" } ], - "id": 3450, + "id": 2150, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "933:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3456, + "id": 2156, "isConstant": false, "isLValue": false, "isPure": false, @@ -4295,23 +4295,23 @@ "typeString": "tuple()" } }, - "id": 3457, + "id": 2157, "nodeType": "ExpressionStatement", "src": "933:70:21" }, { - "id": 3458, + "id": 2158, "nodeType": "PlaceholderStatement", "src": "1013:1:21" } ] }, "documentation": null, - "id": 3460, + "id": 2160, "name": "onlyFriend", "nodeType": "ModifierDefinition", "parameters": { - "id": 3449, + "id": 2149, "nodeType": "ParameterList", "parameters": [], "src": "920:2:21" @@ -4321,7 +4321,7 @@ }, { "body": { - "id": 3534, + "id": 2234, "nodeType": "Block", "src": "1292:566:21", "statements": [ @@ -4335,18 +4335,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3472, + "id": 2172, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3469, + "id": 2169, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3465, + "referencedDeclaration": 2165, "src": "1310:10:21", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4359,18 +4359,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3470, + "id": 2170, "name": "_friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3463, + "referencedDeclaration": 2163, "src": "1324:8:21", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 3471, + "id": 2171, "isConstant": false, "isLValue": false, "isPure": false, @@ -4393,7 +4393,7 @@ { "argumentTypes": null, "hexValue": "5468726573686f6c642063616e6e6f742065786365656420667269656e647320636f756e74", - "id": 3473, + "id": 2173, "isConstant": false, "isLValue": false, "isPure": true, @@ -4420,21 +4420,21 @@ "typeString": "literal_string \"Threshold cannot exceed friends count\"" } ], - "id": 3468, + "id": 2168, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "1302:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3474, + "id": 2174, "isConstant": false, "isLValue": false, "isPure": false, @@ -4448,7 +4448,7 @@ "typeString": "tuple()" } }, - "id": 3475, + "id": 2175, "nodeType": "ExpressionStatement", "src": "1302:79:21" }, @@ -4462,18 +4462,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3479, + "id": 2179, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3477, + "id": 2177, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3465, + "referencedDeclaration": 2165, "src": "1399:10:21", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4485,7 +4485,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "32", - "id": 3478, + "id": 2178, "isConstant": false, "isLValue": false, "isPure": true, @@ -4509,7 +4509,7 @@ { "argumentTypes": null, "hexValue": "4174206c65617374203220667269656e6473207265717569726564", - "id": 3480, + "id": 2180, "isConstant": false, "isLValue": false, "isPure": true, @@ -4536,21 +4536,21 @@ "typeString": "literal_string \"At least 2 friends required\"" } ], - "id": 3476, + "id": 2176, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "1391:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3481, + "id": 2181, "isConstant": false, "isLValue": false, "isPure": false, @@ -4564,7 +4564,7 @@ "typeString": "tuple()" } }, - "id": 3482, + "id": 2182, "nodeType": "ExpressionStatement", "src": "1391:55:21" }, @@ -4574,18 +4574,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 3483, + "id": 2183, "name": "setManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1860, + "referencedDeclaration": 912, "src": "1456:10:21", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 3484, + "id": 2184, "isConstant": false, "isLValue": false, "isPure": false, @@ -4599,27 +4599,27 @@ "typeString": "tuple()" } }, - "id": 3485, + "id": 2185, "nodeType": "ExpressionStatement", "src": "1456:12:21" }, { "body": { - "id": 3524, + "id": 2224, "nodeType": "Block", "src": "1556:236:21", "statements": [ { "assignments": [ - 3498 + 2198 ], "declarations": [ { "constant": false, - "id": 3498, + "id": 2198, "name": "friend", "nodeType": "VariableDeclaration", - "scope": 3535, + "scope": 2235, "src": "1570:14:21", "stateVariable": false, "storageLocation": "default", @@ -4628,7 +4628,7 @@ "typeString": "address" }, "typeName": { - "id": 3497, + "id": 2197, "name": "address", "nodeType": "ElementaryTypeName", "src": "1570:7:21", @@ -4641,30 +4641,30 @@ "visibility": "internal" } ], - "id": 3502, + "id": 2202, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3499, + "id": 2199, "name": "_friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3463, + "referencedDeclaration": 2163, "src": "1587:8:21", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 3501, + "id": 2201, "indexExpression": { "argumentTypes": null, - "id": 3500, + "id": 2200, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3487, + "referencedDeclaration": 2187, "src": "1596:1:21", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4695,18 +4695,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3506, + "id": 2206, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3504, + "id": 2204, "name": "friend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3498, + "referencedDeclaration": 2198, "src": "1620:6:21", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4718,7 +4718,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3505, + "id": 2205, "isConstant": false, "isLValue": false, "isPure": true, @@ -4742,7 +4742,7 @@ { "argumentTypes": null, "hexValue": "496e76616c696420667269656e6420616464726573732070726f7669646564", - "id": 3507, + "id": 2207, "isConstant": false, "isLValue": false, "isPure": true, @@ -4769,21 +4769,21 @@ "typeString": "literal_string \"Invalid friend address provided\"" } ], - "id": 3503, + "id": 2203, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "1612:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3508, + "id": 2208, "isConstant": false, "isLValue": false, "isPure": false, @@ -4797,7 +4797,7 @@ "typeString": "tuple()" } }, - "id": 3509, + "id": 2209, "nodeType": "ExpressionStatement", "src": "1612:55:21" }, @@ -4807,7 +4807,7 @@ "arguments": [ { "argumentTypes": null, - "id": 3514, + "id": 2214, "isConstant": false, "isLValue": false, "isPure": false, @@ -4820,25 +4820,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3511, + "id": 2211, "name": "isFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3438, + "referencedDeclaration": 2138, "src": "1690:8:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 3513, + "id": 2213, "indexExpression": { "argumentTypes": null, - "id": 3512, + "id": 2212, "name": "friend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3498, + "referencedDeclaration": 2198, "src": "1699:6:21", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4864,7 +4864,7 @@ { "argumentTypes": null, "hexValue": "4475706c696361746520667269656e6420616464726573732070726f7669646564", - "id": 3515, + "id": 2215, "isConstant": false, "isLValue": false, "isPure": true, @@ -4891,21 +4891,21 @@ "typeString": "literal_string \"Duplicate friend address provided\"" } ], - "id": 3510, + "id": 2210, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "1681:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3516, + "id": 2216, "isConstant": false, "isLValue": false, "isPure": false, @@ -4919,14 +4919,14 @@ "typeString": "tuple()" } }, - "id": 3517, + "id": 2217, "nodeType": "ExpressionStatement", "src": "1681:63:21" }, { "expression": { "argumentTypes": null, - "id": 3522, + "id": 2222, "isConstant": false, "isLValue": false, "isPure": false, @@ -4935,25 +4935,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3518, + "id": 2218, "name": "isFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3438, + "referencedDeclaration": 2138, "src": "1758:8:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 3520, + "id": 2220, "indexExpression": { "argumentTypes": null, - "id": 3519, + "id": 2219, "name": "friend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3498, + "referencedDeclaration": 2198, "src": "1767:6:21", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4976,7 +4976,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 3521, + "id": 2221, "isConstant": false, "isLValue": false, "isPure": true, @@ -4997,7 +4997,7 @@ "typeString": "bool" } }, - "id": 3523, + "id": 2223, "nodeType": "ExpressionStatement", "src": "1758:23:21" } @@ -5009,18 +5009,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3493, + "id": 2193, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3490, + "id": 2190, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3487, + "referencedDeclaration": 2187, "src": "1530:1:21", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5033,18 +5033,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3491, + "id": 2191, "name": "_friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3463, + "referencedDeclaration": 2163, "src": "1534:8:21", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 3492, + "id": 2192, "isConstant": false, "isLValue": false, "isPure": false, @@ -5064,18 +5064,18 @@ "typeString": "bool" } }, - "id": 3525, + "id": 2225, "initializationExpression": { "assignments": [ - 3487 + 2187 ], "declarations": [ { "constant": false, - "id": 3487, + "id": 2187, "name": "i", "nodeType": "VariableDeclaration", - "scope": 3535, + "scope": 2235, "src": "1515:9:21", "stateVariable": false, "storageLocation": "default", @@ -5084,7 +5084,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3486, + "id": 2186, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1515:7:21", @@ -5097,11 +5097,11 @@ "visibility": "internal" } ], - "id": 3489, + "id": 2189, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 3488, + "id": 2188, "isConstant": false, "isLValue": false, "isPure": true, @@ -5122,7 +5122,7 @@ "loopExpression": { "expression": { "argumentTypes": null, - "id": 3495, + "id": 2195, "isConstant": false, "isLValue": false, "isPure": false, @@ -5133,11 +5133,11 @@ "src": "1551:3:21", "subExpression": { "argumentTypes": null, - "id": 3494, + "id": 2194, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3487, + "referencedDeclaration": 2187, "src": "1551:1:21", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5149,7 +5149,7 @@ "typeString": "uint256" } }, - "id": 3496, + "id": 2196, "nodeType": "ExpressionStatement", "src": "1551:3:21" }, @@ -5159,18 +5159,18 @@ { "expression": { "argumentTypes": null, - "id": 3528, + "id": 2228, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3526, + "id": 2226, "name": "friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3434, + "referencedDeclaration": 2134, "src": "1801:7:21", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", @@ -5181,11 +5181,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3527, + "id": 2227, "name": "_friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3463, + "referencedDeclaration": 2163, "src": "1811:8:21", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", @@ -5198,25 +5198,25 @@ "typeString": "address[] storage ref" } }, - "id": 3529, + "id": 2229, "nodeType": "ExpressionStatement", "src": "1801:18:21" }, { "expression": { "argumentTypes": null, - "id": 3532, + "id": 2232, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3530, + "id": 2230, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3431, + "referencedDeclaration": 2131, "src": "1829:9:21", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5227,11 +5227,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3531, + "id": 2231, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3465, + "referencedDeclaration": 2165, "src": "1841:10:21", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5244,14 +5244,14 @@ "typeString": "uint256" } }, - "id": 3533, + "id": 2233, "nodeType": "ExpressionStatement", "src": "1829:22:21" } ] }, "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": 3535, + "id": 2235, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -5259,15 +5259,15 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 3466, + "id": 2166, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3463, + "id": 2163, "name": "_friends", "nodeType": "VariableDeclaration", - "scope": 3535, + "scope": 2235, "src": "1233:18:21", "stateVariable": false, "storageLocation": "default", @@ -5277,7 +5277,7 @@ }, "typeName": { "baseType": { - "id": 3461, + "id": 2161, "name": "address", "nodeType": "ElementaryTypeName", "src": "1233:7:21", @@ -5286,7 +5286,7 @@ "typeString": "address" } }, - "id": 3462, + "id": 2162, "length": null, "nodeType": "ArrayTypeName", "src": "1233:9:21", @@ -5300,10 +5300,10 @@ }, { "constant": false, - "id": 3465, + "id": 2165, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 3535, + "scope": 2235, "src": "1253:18:21", "stateVariable": false, "storageLocation": "default", @@ -5312,7 +5312,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3464, + "id": 2164, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1253:7:21", @@ -5329,12 +5329,12 @@ }, "payable": false, "returnParameters": { - "id": 3467, + "id": 2167, "nodeType": "ParameterList", "parameters": [], "src": "1292:0:21" }, - "scope": 3680, + "scope": 2380, "src": "1218:640:21", "stateMutability": "nonpayable", "superFunction": null, @@ -5342,7 +5342,7 @@ }, { "body": { - "id": 3559, + "id": 2259, "nodeType": "Block", "src": "2055:126:21", "statements": [ @@ -5352,7 +5352,7 @@ "arguments": [ { "argumentTypes": null, - "id": 3546, + "id": 2246, "isConstant": false, "isLValue": false, "isPure": false, @@ -5365,25 +5365,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3543, + "id": 2243, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3442, + "referencedDeclaration": 2142, "src": "2074:10:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 3545, + "id": 2245, "indexExpression": { "argumentTypes": null, - "id": 3544, + "id": 2244, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3537, + "referencedDeclaration": 2237, "src": "2085:8:21", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -5409,7 +5409,7 @@ { "argumentTypes": null, "hexValue": "5265636f7665727920616c7265616479206578656375746564", - "id": 3547, + "id": 2247, "isConstant": false, "isLValue": false, "isPure": true, @@ -5436,21 +5436,21 @@ "typeString": "literal_string \"Recovery already executed\"" } ], - "id": 3542, + "id": 2242, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "2065:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3548, + "id": 2248, "isConstant": false, "isLValue": false, "isPure": false, @@ -5464,14 +5464,14 @@ "typeString": "tuple()" } }, - "id": 3549, + "id": 2249, "nodeType": "ExpressionStatement", "src": "2065:59:21" }, { "expression": { "argumentTypes": null, - "id": 3557, + "id": 2257, "isConstant": false, "isLValue": false, "isPure": false, @@ -5482,25 +5482,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3550, + "id": 2250, "name": "isConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3448, + "referencedDeclaration": 2148, "src": "2134:11:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(bytes32 => mapping(address => bool))" } }, - "id": 3554, + "id": 2254, "indexExpression": { "argumentTypes": null, - "id": 3551, + "id": 2251, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3537, + "referencedDeclaration": 2237, "src": "2146:8:21", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -5518,23 +5518,23 @@ "typeString": "mapping(address => bool)" } }, - "id": 3555, + "id": 2255, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3552, + "id": 2252, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4036, + "referencedDeclaration": 3828, "src": "2156:3:21", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3553, + "id": 2253, "isConstant": false, "isLValue": false, "isPure": false, @@ -5564,7 +5564,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 3556, + "id": 2256, "isConstant": false, "isLValue": false, "isPure": true, @@ -5585,28 +5585,28 @@ "typeString": "bool" } }, - "id": 3558, + "id": 2258, "nodeType": "ExpressionStatement", "src": "2134:40:21" } ] }, "documentation": "@dev Allows a friend to confirm a Safe transaction.\n @param dataHash Safe transaction hash.", - "id": 3560, + "id": 2260, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 3540, + "id": 2240, "modifierName": { "argumentTypes": null, - "id": 3539, + "id": 2239, "name": "onlyFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3460, + "referencedDeclaration": 2160, "src": "2040:10:21", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -5620,15 +5620,15 @@ "name": "confirmTransaction", "nodeType": "FunctionDefinition", "parameters": { - "id": 3538, + "id": 2238, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3537, + "id": 2237, "name": "dataHash", "nodeType": "VariableDeclaration", - "scope": 3560, + "scope": 2260, "src": "1999:16:21", "stateVariable": false, "storageLocation": "default", @@ -5637,7 +5637,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3536, + "id": 2236, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1999:7:21", @@ -5654,12 +5654,12 @@ }, "payable": false, "returnParameters": { - "id": 3541, + "id": 2241, "nodeType": "ParameterList", "parameters": [], "src": "2055:0:21" }, - "scope": 3680, + "scope": 2380, "src": "1971:210:21", "stateMutability": "nonpayable", "superFunction": null, @@ -5667,21 +5667,21 @@ }, { "body": { - "id": 3623, + "id": 2323, "nodeType": "Block", "src": "2630:509:21", "statements": [ { "assignments": [ - 3572 + 2272 ], "declarations": [ { "constant": false, - "id": 3572, + "id": 2272, "name": "data", "nodeType": "VariableDeclaration", - "scope": 3624, + "scope": 2324, "src": "2640:17:21", "stateVariable": false, "storageLocation": "memory", @@ -5690,7 +5690,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3571, + "id": 2271, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "2640:5:21", @@ -5703,14 +5703,14 @@ "visibility": "internal" } ], - "id": 3580, + "id": 2280, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "737761704f776e657228616464726573732c616464726573732c6164647265737329", - "id": 3575, + "id": 2275, "isConstant": false, "isLValue": false, "isPure": true, @@ -5727,11 +5727,11 @@ }, { "argumentTypes": null, - "id": 3576, + "id": 2276, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3562, + "referencedDeclaration": 2262, "src": "2722:9:21", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5740,11 +5740,11 @@ }, { "argumentTypes": null, - "id": 3577, + "id": 2277, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3564, + "referencedDeclaration": 2264, "src": "2733:8:21", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5753,11 +5753,11 @@ }, { "argumentTypes": null, - "id": 3578, + "id": 2278, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3566, + "referencedDeclaration": 2266, "src": "2743:8:21", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5786,18 +5786,18 @@ ], "expression": { "argumentTypes": null, - "id": 3573, + "id": 2273, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4023, + "referencedDeclaration": 3815, "src": "2660:3:21", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 3574, + "id": 2274, "isConstant": false, "isLValue": false, "isPure": true, @@ -5811,7 +5811,7 @@ "typeString": "function (string memory) pure returns (bytes memory)" } }, - "id": 3579, + "id": 2279, "isConstant": false, "isLValue": false, "isPure": false, @@ -5830,15 +5830,15 @@ }, { "assignments": [ - 3582 + 2282 ], "declarations": [ { "constant": false, - "id": 3582, + "id": 2282, "name": "dataHash", "nodeType": "VariableDeclaration", - "scope": 3624, + "scope": 2324, "src": "2762:16:21", "stateVariable": false, "storageLocation": "default", @@ -5847,7 +5847,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3581, + "id": 2281, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2762:7:21", @@ -5860,17 +5860,17 @@ "visibility": "internal" } ], - "id": 3586, + "id": 2286, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 3584, + "id": 2284, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3572, + "referencedDeclaration": 2272, "src": "2793:4:21", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -5885,18 +5885,18 @@ "typeString": "bytes memory" } ], - "id": 3583, + "id": 2283, "name": "getDataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3679, + "referencedDeclaration": 2379, "src": "2781:11:21", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 3585, + "id": 2285, "isConstant": false, "isLValue": false, "isPure": false, @@ -5919,7 +5919,7 @@ "arguments": [ { "argumentTypes": null, - "id": 3591, + "id": 2291, "isConstant": false, "isLValue": false, "isPure": false, @@ -5932,25 +5932,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3588, + "id": 2288, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3442, + "referencedDeclaration": 2142, "src": "2817:10:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 3590, + "id": 2290, "indexExpression": { "argumentTypes": null, - "id": 3589, + "id": 2289, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3582, + "referencedDeclaration": 2282, "src": "2828:8:21", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -5976,7 +5976,7 @@ { "argumentTypes": null, "hexValue": "5265636f7665727920616c7265616479206578656375746564", - "id": 3592, + "id": 2292, "isConstant": false, "isLValue": false, "isPure": true, @@ -6003,21 +6003,21 @@ "typeString": "literal_string \"Recovery already executed\"" } ], - "id": 3587, + "id": 2287, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "2808:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3593, + "id": 2293, "isConstant": false, "isLValue": false, "isPure": false, @@ -6031,7 +6031,7 @@ "typeString": "tuple()" } }, - "id": 3594, + "id": 2294, "nodeType": "ExpressionStatement", "src": "2808:59:21" }, @@ -6044,11 +6044,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3597, + "id": 2297, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3582, + "referencedDeclaration": 2282, "src": "2914:8:21", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -6063,18 +6063,18 @@ "typeString": "bytes32" } ], - "id": 3596, + "id": 2296, "name": "isConfirmedByRequiredFriends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3667, + "referencedDeclaration": 2367, "src": "2885:28:21", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view returns (bool)" } }, - "id": 3598, + "id": 2298, "isConstant": false, "isLValue": false, "isPure": false, @@ -6091,7 +6091,7 @@ { "argumentTypes": null, "hexValue": "5265636f7665727920686173206e6f7420656e6f75676820636f6e6669726d6174696f6e73", - "id": 3599, + "id": 2299, "isConstant": false, "isLValue": false, "isPure": true, @@ -6118,21 +6118,21 @@ "typeString": "literal_string \"Recovery has not enough confirmations\"" } ], - "id": 3595, + "id": 2295, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "2877:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3600, + "id": 2300, "isConstant": false, "isLValue": false, "isPure": false, @@ -6146,14 +6146,14 @@ "typeString": "tuple()" } }, - "id": 3601, + "id": 2301, "nodeType": "ExpressionStatement", "src": "2877:88:21" }, { "expression": { "argumentTypes": null, - "id": 3606, + "id": 2306, "isConstant": false, "isLValue": false, "isPure": false, @@ -6162,25 +6162,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3602, + "id": 2302, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3442, + "referencedDeclaration": 2142, "src": "2975:10:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 3604, + "id": 2304, "indexExpression": { "argumentTypes": null, - "id": 3603, + "id": 2303, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3582, + "referencedDeclaration": 2282, "src": "2986:8:21", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -6203,7 +6203,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 3605, + "id": 2305, "isConstant": false, "isLValue": false, "isPure": true, @@ -6224,7 +6224,7 @@ "typeString": "bool" } }, - "id": 3607, + "id": 2307, "nodeType": "ExpressionStatement", "src": "2975:27:21" }, @@ -6240,14 +6240,14 @@ "arguments": [ { "argumentTypes": null, - "id": 3612, + "id": 2312, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1826, + "referencedDeclaration": 878, "src": "3062:7:21", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } } @@ -6255,11 +6255,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } ], - "id": 3611, + "id": 2311, "isConstant": false, "isLValue": false, "isPure": true, @@ -6272,7 +6272,7 @@ }, "typeName": "address" }, - "id": 3613, + "id": 2313, "isConstant": false, "isLValue": false, "isPure": false, @@ -6289,7 +6289,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3614, + "id": 2314, "isConstant": false, "isLValue": false, "isPure": true, @@ -6306,11 +6306,11 @@ }, { "argumentTypes": null, - "id": 3615, + "id": 2315, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3572, + "referencedDeclaration": 2272, "src": "3075:4:21", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -6323,7 +6323,7 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3616, + "id": 2316, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -6334,7 +6334,7 @@ "typeString": "type(contract Enum)" } }, - "id": 3617, + "id": 2317, "isConstant": false, "isLValue": false, "isPure": false, @@ -6348,7 +6348,7 @@ "typeString": "type(enum Enum.Operation)" } }, - "id": 3618, + "id": 2318, "isConstant": false, "isLValue": false, "isPure": true, @@ -6384,32 +6384,32 @@ ], "expression": { "argumentTypes": null, - "id": 3609, + "id": 2309, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1826, + "referencedDeclaration": 878, "src": "3020:7:21", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } }, - "id": 3610, + "id": 2310, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "execTransactionFromModule", "nodeType": "MemberAccess", - "referencedDeclaration": 2059, + "referencedDeclaration": 1106, "src": "3020:33:21", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" } }, - "id": 3619, + "id": 2319, "isConstant": false, "isLValue": false, "isPure": false, @@ -6426,7 +6426,7 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f742065786563757465207265636f76657279", - "id": 3620, + "id": 2320, "isConstant": false, "isLValue": false, "isPure": true, @@ -6453,21 +6453,21 @@ "typeString": "literal_string \"Could not execute recovery\"" } ], - "id": 3608, + "id": 2308, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "3012:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3621, + "id": 2321, "isConstant": false, "isLValue": false, "isPure": false, @@ -6481,28 +6481,28 @@ "typeString": "tuple()" } }, - "id": 3622, + "id": 2322, "nodeType": "ExpressionStatement", "src": "3012:120:21" } ] }, "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": 3624, + "id": 2324, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 3569, + "id": 2269, "modifierName": { "argumentTypes": null, - "id": 3568, + "id": 2268, "name": "onlyFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3460, + "referencedDeclaration": 2160, "src": "2615:10:21", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -6516,15 +6516,15 @@ "name": "recoverAccess", "nodeType": "FunctionDefinition", "parameters": { - "id": 3567, + "id": 2267, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3562, + "id": 2262, "name": "prevOwner", "nodeType": "VariableDeclaration", - "scope": 3624, + "scope": 2324, "src": "2537:17:21", "stateVariable": false, "storageLocation": "default", @@ -6533,7 +6533,7 @@ "typeString": "address" }, "typeName": { - "id": 3561, + "id": 2261, "name": "address", "nodeType": "ElementaryTypeName", "src": "2537:7:21", @@ -6547,10 +6547,10 @@ }, { "constant": false, - "id": 3564, + "id": 2264, "name": "oldOwner", "nodeType": "VariableDeclaration", - "scope": 3624, + "scope": 2324, "src": "2556:16:21", "stateVariable": false, "storageLocation": "default", @@ -6559,7 +6559,7 @@ "typeString": "address" }, "typeName": { - "id": 3563, + "id": 2263, "name": "address", "nodeType": "ElementaryTypeName", "src": "2556:7:21", @@ -6573,10 +6573,10 @@ }, { "constant": false, - "id": 3566, + "id": 2266, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 3624, + "scope": 2324, "src": "2574:16:21", "stateVariable": false, "storageLocation": "default", @@ -6585,7 +6585,7 @@ "typeString": "address" }, "typeName": { - "id": 3565, + "id": 2265, "name": "address", "nodeType": "ElementaryTypeName", "src": "2574:7:21", @@ -6602,12 +6602,12 @@ }, "payable": false, "returnParameters": { - "id": 3570, + "id": 2270, "nodeType": "ParameterList", "parameters": [], "src": "2630:0:21" }, - "scope": 3680, + "scope": 2380, "src": "2514:625:21", "stateMutability": "nonpayable", "superFunction": null, @@ -6615,7 +6615,7 @@ }, { "body": { - "id": 3666, + "id": 2366, "nodeType": "Block", "src": "3411:294:21", "statements": [ @@ -6624,10 +6624,10 @@ "declarations": [ { "constant": false, - "id": 3632, + "id": 2332, "name": "confirmationCount", "nodeType": "VariableDeclaration", - "scope": 3667, + "scope": 2367, "src": "3421:25:21", "stateVariable": false, "storageLocation": "default", @@ -6636,7 +6636,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3631, + "id": 2331, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3421:7:21", @@ -6649,14 +6649,14 @@ "visibility": "internal" } ], - "id": 3633, + "id": 2333, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "3421:25:21" }, { "body": { - "id": 3662, + "id": 2362, "nodeType": "Block", "src": "3501:176:21", "statements": [ @@ -6667,25 +6667,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3645, + "id": 2345, "name": "isConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3448, + "referencedDeclaration": 2148, "src": "3519:11:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(bytes32 => mapping(address => bool))" } }, - "id": 3647, + "id": 2347, "indexExpression": { "argumentTypes": null, - "id": 3646, + "id": 2346, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3626, + "referencedDeclaration": 2326, "src": "3531:8:21", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -6703,30 +6703,30 @@ "typeString": "mapping(address => bool)" } }, - "id": 3651, + "id": 2351, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3648, + "id": 2348, "name": "friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3434, + "referencedDeclaration": 2134, "src": "3541:7:21", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 3650, + "id": 2350, "indexExpression": { "argumentTypes": null, - "id": 3649, + "id": 2349, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3635, + "referencedDeclaration": 2335, "src": "3549:1:21", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6756,13 +6756,13 @@ } }, "falseBody": null, - "id": 3655, + "id": 2355, "nodeType": "IfStatement", "src": "3515:74:21", "trueBody": { "expression": { "argumentTypes": null, - "id": 3653, + "id": 2353, "isConstant": false, "isLValue": false, "isPure": false, @@ -6773,11 +6773,11 @@ "src": "3570:19:21", "subExpression": { "argumentTypes": null, - "id": 3652, + "id": 2352, "name": "confirmationCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3632, + "referencedDeclaration": 2332, "src": "3570:17:21", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6789,7 +6789,7 @@ "typeString": "uint256" } }, - "id": 3654, + "id": 2354, "nodeType": "ExpressionStatement", "src": "3570:19:21" } @@ -6801,18 +6801,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3658, + "id": 2358, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3656, + "id": 2356, "name": "confirmationCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3632, + "referencedDeclaration": 2332, "src": "3607:17:21", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6823,11 +6823,11 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 3657, + "id": 2357, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3431, + "referencedDeclaration": 2131, "src": "3628:9:21", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6841,14 +6841,14 @@ } }, "falseBody": null, - "id": 3661, + "id": 2361, "nodeType": "IfStatement", "src": "3603:63:21", "trueBody": { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3659, + "id": 2359, "isConstant": false, "isLValue": false, "isPure": true, @@ -6863,8 +6863,8 @@ }, "value": "true" }, - "functionReturnParameters": 3630, - "id": 3660, + "functionReturnParameters": 2330, + "id": 2360, "nodeType": "Return", "src": "3655:11:21" } @@ -6877,18 +6877,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3641, + "id": 2341, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3638, + "id": 2338, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3635, + "referencedDeclaration": 2335, "src": "3476:1:21", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6901,18 +6901,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3639, + "id": 2339, "name": "friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3434, + "referencedDeclaration": 2134, "src": "3480:7:21", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 3640, + "id": 2340, "isConstant": false, "isLValue": true, "isPure": false, @@ -6932,18 +6932,18 @@ "typeString": "bool" } }, - "id": 3663, + "id": 2363, "initializationExpression": { "assignments": [ - 3635 + 2335 ], "declarations": [ { "constant": false, - "id": 3635, + "id": 2335, "name": "i", "nodeType": "VariableDeclaration", - "scope": 3667, + "scope": 2367, "src": "3461:9:21", "stateVariable": false, "storageLocation": "default", @@ -6952,7 +6952,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3634, + "id": 2334, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3461:7:21", @@ -6965,11 +6965,11 @@ "visibility": "internal" } ], - "id": 3637, + "id": 2337, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 3636, + "id": 2336, "isConstant": false, "isLValue": false, "isPure": true, @@ -6990,7 +6990,7 @@ "loopExpression": { "expression": { "argumentTypes": null, - "id": 3643, + "id": 2343, "isConstant": false, "isLValue": false, "isPure": false, @@ -7001,11 +7001,11 @@ "src": "3496:3:21", "subExpression": { "argumentTypes": null, - "id": 3642, + "id": 2342, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3635, + "referencedDeclaration": 2335, "src": "3496:1:21", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7017,7 +7017,7 @@ "typeString": "uint256" } }, - "id": 3644, + "id": 2344, "nodeType": "ExpressionStatement", "src": "3496:3:21" }, @@ -7028,7 +7028,7 @@ "expression": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 3664, + "id": 2364, "isConstant": false, "isLValue": false, "isPure": true, @@ -7043,15 +7043,15 @@ }, "value": "false" }, - "functionReturnParameters": 3630, - "id": 3665, + "functionReturnParameters": 2330, + "id": 2365, "nodeType": "Return", "src": "3686:12:21" } ] }, "documentation": "@dev Returns if Safe transaction is a valid owner replacement transaction.\n @param dataHash Data hash.\n @return Confirmation status.", - "id": 3667, + "id": 2367, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -7059,15 +7059,15 @@ "name": "isConfirmedByRequiredFriends", "nodeType": "FunctionDefinition", "parameters": { - "id": 3627, + "id": 2327, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3626, + "id": 2326, "name": "dataHash", "nodeType": "VariableDeclaration", - "scope": 3667, + "scope": 2367, "src": "3338:16:21", "stateVariable": false, "storageLocation": "default", @@ -7076,7 +7076,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3625, + "id": 2325, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "3338:7:21", @@ -7093,15 +7093,15 @@ }, "payable": false, "returnParameters": { - "id": 3630, + "id": 2330, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3629, + "id": 2329, "name": "", "nodeType": "VariableDeclaration", - "scope": 3667, + "scope": 2367, "src": "3401:4:21", "stateVariable": false, "storageLocation": "default", @@ -7110,7 +7110,7 @@ "typeString": "bool" }, "typeName": { - "id": 3628, + "id": 2328, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3401:4:21", @@ -7125,7 +7125,7 @@ ], "src": "3400:6:21" }, - "scope": 3680, + "scope": 2380, "src": "3300:405:21", "stateMutability": "view", "superFunction": null, @@ -7133,7 +7133,7 @@ }, { "body": { - "id": 3678, + "id": 2378, "nodeType": "Block", "src": "3925:39:21", "statements": [ @@ -7143,11 +7143,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3675, + "id": 2375, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3669, + "referencedDeclaration": 2369, "src": "3952:4:21", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -7162,18 +7162,18 @@ "typeString": "bytes memory" } ], - "id": 3674, + "id": 2374, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4030, + "referencedDeclaration": 3822, "src": "3942:9:21", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 3676, + "id": 2376, "isConstant": false, "isLValue": false, "isPure": false, @@ -7187,15 +7187,15 @@ "typeString": "bytes32" } }, - "functionReturnParameters": 3673, - "id": 3677, + "functionReturnParameters": 2373, + "id": 2377, "nodeType": "Return", "src": "3935:22:21" } ] }, "documentation": "@dev Returns hash of data encoding owner replacement.\n @param data Data payload.\n @return Data hash.", - "id": 3679, + "id": 2379, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -7203,15 +7203,15 @@ "name": "getDataHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 3670, + "id": 2370, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3669, + "id": 2369, "name": "data", "nodeType": "VariableDeclaration", - "scope": 3679, + "scope": 2379, "src": "3855:10:21", "stateVariable": false, "storageLocation": "default", @@ -7220,7 +7220,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3668, + "id": 2368, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3855:5:21", @@ -7237,15 +7237,15 @@ }, "payable": false, "returnParameters": { - "id": 3673, + "id": 2373, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3672, + "id": 2372, "name": "", "nodeType": "VariableDeclaration", - "scope": 3679, + "scope": 2379, "src": "3912:7:21", "stateVariable": false, "storageLocation": "default", @@ -7254,7 +7254,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3671, + "id": 2371, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "3912:7:21", @@ -7269,14 +7269,14 @@ ], "src": "3911:9:21" }, - "scope": 3680, + "scope": 2380, "src": "3834:130:21", "stateMutability": "pure", "superFunction": null, "visibility": "public" } ], - "scope": 3681, + "scope": 2381, "src": "306:3660:21" } ], @@ -7290,28 +7290,16 @@ "4": { "events": {}, "links": {}, - "address": "0x9b7aa0f7a7b44616d0a9d7b955ebd5d93ed281ed", - "transactionHash": "0x5c01f255739a7f684c226c579c4cae34da68bfacb0b7b4e7e39b5f7288dcace6" + "address": "0x5a115fcbe29dd3f82484ea4d2561d14b91545e60", + "transactionHash": "0xd3cc68dfd19f3f6bd65bb7fb8ce55efb5d33e7404c33cc1a09c6c79627430687" }, - "1530013596495": { + "1534750848541": { "events": {}, "links": {}, - "address": "0xeaf2060e0be99ce5d5c25cf5122f09dac5ab24a1", - "transactionHash": "0xbda6edd30fdaa35267fc715f4db20e738b911db0e7ab3a857c39f48e5091f722" - }, - "1530525742205": { - "events": {}, - "links": {}, - "address": "0x49753b0c280e394d9e949ce790d8f2552c4752cc", - "transactionHash": "0xa16f1a61604288a7e29ef1a2ec02c9a4e978585340acca518d37bfb75201d1f9" - }, - "1530611935189": { - "events": {}, - "links": {}, - "address": "0x54bd49e1cff1a60da063499da80e131aa5408e7d", - "transactionHash": "0xa16f1a61604288a7e29ef1a2ec02c9a4e978585340acca518d37bfb75201d1f9" + "address": "0x86072cbff48da3c1f01824a6761a03f105bcc697", + "transactionHash": "0x3ea564482a8f392a363a7d84b1519ed000ae0491c24a848901af99fbfe96baae" } }, "schemaVersion": "2.0.0", - "updatedAt": "2018-07-03T09:59:18.536Z" + "updatedAt": "2018-08-20T07:50:29.699Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/StateChannelModule.json b/safe-contracts/build/contracts/StateChannelModule.json index f8ad1634c9..0bc0efc003 100644 --- a/safe-contracts/build/contracts/StateChannelModule.json +++ b/safe-contracts/build/contracts/StateChannelModule.json @@ -155,24 +155,24 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b5061117e806100206000396000f30060806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632b50004114610093578063481c6a75146101595780637de7edef146101b0578063a3f4df7e146101f3578063ba0bba4014610283578063e52cb36a1461029a578063f6cc15d0146102df578063ffa1ad74146103cf575b600080fd5b34801561009f57600080fd5b5061013b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291908035906020019092919050505061045f565b60405180826000191660001916815260200191505060405180910390f35b34801561016557600080fd5b5061016e6106e7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101bc57600080fd5b506101f1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061070d565b005b3480156101ff57600080fd5b506102086108f0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561024857808201518184015260208101905061022d565b50505050905090810190601f1680156102755780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028f57600080fd5b50610298610929565b005b3480156102a657600080fd5b506102c96004803603810190808035600019169060200190929190505050610933565b6040518082815260200191505060405180910390f35b3480156102eb57600080fd5b506103cd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061094b565b005b3480156103db57600080fd5b506103e4610c1a565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610424578082015181840152602081019050610409565b50505050905090810190601f1680156104515780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600060197f01000000000000000000000000000000000000000000000000000000000000000260007f01000000000000000000000000000000000000000000000000000000000000000230888888888860405160200180897effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101887effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140185815260200184805190602001908083835b60208310151561060357805182526020820191506020810190506020830392506105de565b6001836020036101000a03801982511681845116808217855250505050505090500183600281111561063157fe5b60ff167f0100000000000000000000000000000000000000000000000000000000000000028152600101828152602001985050505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156106af578051825260208201915060208101905060208303925061068a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905095945050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156107f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156108ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040805190810160405280601481526020017f5374617465204368616e6e656c204d6f64756c6500000000000000000000000081525081565b610931610c53565b565b60026020528060005260406000206000915090505481565b600061095a878787878761045f565b90506000600260008360001916600019168152602001908152602001600020541415156109ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f5472616e73616374696f6e20616c72656164792065786563757465640000000081525060200191505060405180910390fd5b6109f98183610d46565b600160026000836000191660001916815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7888888886040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610ad357fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610b13578082015181840152602081019050610af8565b50505050905090810190601f168015610b405780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610b6257600080fd5b505af1158015610b76573d6000803e3d6000fd5b505050506040513d6020811015610b8c57600080fd5b81019080805190602001909291905050501515610c11576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f756c64206e6f742065786563757465207472616e73616374696f6e00000081525060200191505060405180910390fd5b50505050505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610d03576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060008060009350600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e75235b86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610dd657600080fd5b505af1158015610dea573d6000803e3d6000fd5b505050506040513d6020811015610e0057600080fd5b81019080805190602001909291905050509050600091505b8082101561107257610e2b86868461107a565b9250600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610eea57600080fd5b505af1158015610efe573d6000803e3d6000fd5b505050506040513d6020811015610f1457600080fd5b81019080805190602001909291905050501515610f99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5369676e6174757265206e6f742070726f7669646564206279206f776e65720081525060200191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16111515611062576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f5369676e61747572657320617265206e6f74206f726465726564206279206f7781526020017f6e6572206164647265737300000000000000000000000000000000000000000081525060400191505060405180910390fd5b8293508180600101925050610e18565b505050505050565b60008060008061108a8686611123565b809350819450829550505050600187848484604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af115801561110d573d6000803e3d6000fd5b5050506020604051035193505050509392505050565b60008060008360410260208101860151925060408101860151915060ff604182018701511693505092509250925600a165627a7a72305820d2834484d40c8ee60c472d27914d0e4d5029520c243a789fc3184ddb6e4ae9410029", - "deployedBytecode": "0x60806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632b50004114610093578063481c6a75146101595780637de7edef146101b0578063a3f4df7e146101f3578063ba0bba4014610283578063e52cb36a1461029a578063f6cc15d0146102df578063ffa1ad74146103cf575b600080fd5b34801561009f57600080fd5b5061013b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291908035906020019092919050505061045f565b60405180826000191660001916815260200191505060405180910390f35b34801561016557600080fd5b5061016e6106e7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101bc57600080fd5b506101f1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061070d565b005b3480156101ff57600080fd5b506102086108f0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561024857808201518184015260208101905061022d565b50505050905090810190601f1680156102755780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028f57600080fd5b50610298610929565b005b3480156102a657600080fd5b506102c96004803603810190808035600019169060200190929190505050610933565b6040518082815260200191505060405180910390f35b3480156102eb57600080fd5b506103cd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061094b565b005b3480156103db57600080fd5b506103e4610c1a565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610424578082015181840152602081019050610409565b50505050905090810190601f1680156104515780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600060197f01000000000000000000000000000000000000000000000000000000000000000260007f01000000000000000000000000000000000000000000000000000000000000000230888888888860405160200180897effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101887effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140185815260200184805190602001908083835b60208310151561060357805182526020820191506020810190506020830392506105de565b6001836020036101000a03801982511681845116808217855250505050505090500183600281111561063157fe5b60ff167f0100000000000000000000000000000000000000000000000000000000000000028152600101828152602001985050505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156106af578051825260208201915060208101905060208303925061068a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905095945050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156107f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156108ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040805190810160405280601481526020017f5374617465204368616e6e656c204d6f64756c6500000000000000000000000081525081565b610931610c53565b565b60026020528060005260406000206000915090505481565b600061095a878787878761045f565b90506000600260008360001916600019168152602001908152602001600020541415156109ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f5472616e73616374696f6e20616c72656164792065786563757465640000000081525060200191505060405180910390fd5b6109f98183610d46565b600160026000836000191660001916815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7888888886040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610ad357fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610b13578082015181840152602081019050610af8565b50505050905090810190601f168015610b405780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610b6257600080fd5b505af1158015610b76573d6000803e3d6000fd5b505050506040513d6020811015610b8c57600080fd5b81019080805190602001909291905050501515610c11576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f756c64206e6f742065786563757465207472616e73616374696f6e00000081525060200191505060405180910390fd5b50505050505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610d03576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060008060009350600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e75235b86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610dd657600080fd5b505af1158015610dea573d6000803e3d6000fd5b505050506040513d6020811015610e0057600080fd5b81019080805190602001909291905050509050600091505b8082101561107257610e2b86868461107a565b9250600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610eea57600080fd5b505af1158015610efe573d6000803e3d6000fd5b505050506040513d6020811015610f1457600080fd5b81019080805190602001909291905050501515610f99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5369676e6174757265206e6f742070726f7669646564206279206f776e65720081525060200191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16111515611062576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f5369676e61747572657320617265206e6f74206f726465726564206279206f7781526020017f6e6572206164647265737300000000000000000000000000000000000000000081525060400191505060405180910390fd5b8293508180600101925050610e18565b505050505050565b60008060008061108a8686611123565b809350819450829550505050600187848484604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af115801561110d573d6000803e3d6000fd5b5050506020604051035193505050509392505050565b60008060008360410260208101860151925060408101860151915060ff604182018701511693505092509250925600a165627a7a72305820d2834484d40c8ee60c472d27914d0e4d5029520c243a789fc3184ddb6e4ae9410029", + "bytecode": "0x608060405234801561001057600080fd5b5061117e806100206000396000f30060806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632b50004114610093578063481c6a75146101595780637de7edef146101b0578063a3f4df7e146101f3578063ba0bba4014610283578063e52cb36a1461029a578063f6cc15d0146102df578063ffa1ad74146103cf575b600080fd5b34801561009f57600080fd5b5061013b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291908035906020019092919050505061045f565b60405180826000191660001916815260200191505060405180910390f35b34801561016557600080fd5b5061016e6106e7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101bc57600080fd5b506101f1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061070d565b005b3480156101ff57600080fd5b506102086108f0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561024857808201518184015260208101905061022d565b50505050905090810190601f1680156102755780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028f57600080fd5b50610298610929565b005b3480156102a657600080fd5b506102c96004803603810190808035600019169060200190929190505050610933565b6040518082815260200191505060405180910390f35b3480156102eb57600080fd5b506103cd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061094b565b005b3480156103db57600080fd5b506103e4610c1a565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610424578082015181840152602081019050610409565b50505050905090810190601f1680156104515780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600060197f01000000000000000000000000000000000000000000000000000000000000000260007f01000000000000000000000000000000000000000000000000000000000000000230888888888860405160200180897effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101887effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140185815260200184805190602001908083835b60208310151561060357805182526020820191506020810190506020830392506105de565b6001836020036101000a03801982511681845116808217855250505050505090500183600281111561063157fe5b60ff167f0100000000000000000000000000000000000000000000000000000000000000028152600101828152602001985050505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156106af578051825260208201915060208101905060208303925061068a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905095945050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156107f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156108ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040805190810160405280601481526020017f5374617465204368616e6e656c204d6f64756c6500000000000000000000000081525081565b610931610c53565b565b60026020528060005260406000206000915090505481565b600061095a878787878761045f565b90506000600260008360001916600019168152602001908152602001600020541415156109ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f5472616e73616374696f6e20616c72656164792065786563757465640000000081525060200191505060405180910390fd5b6109f98183610d46565b600160026000836000191660001916815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7888888886040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610ad357fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610b13578082015181840152602081019050610af8565b50505050905090810190601f168015610b405780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610b6257600080fd5b505af1158015610b76573d6000803e3d6000fd5b505050506040513d6020811015610b8c57600080fd5b81019080805190602001909291905050501515610c11576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f756c64206e6f742065786563757465207472616e73616374696f6e00000081525060200191505060405180910390fd5b50505050505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610d03576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060008060009350600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e75235b86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610dd657600080fd5b505af1158015610dea573d6000803e3d6000fd5b505050506040513d6020811015610e0057600080fd5b81019080805190602001909291905050509050600091505b8082101561107257610e2b86868461107a565b9250600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610eea57600080fd5b505af1158015610efe573d6000803e3d6000fd5b505050506040513d6020811015610f1457600080fd5b81019080805190602001909291905050501515610f99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5369676e6174757265206e6f742070726f7669646564206279206f776e65720081525060200191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16111515611062576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f5369676e61747572657320617265206e6f74206f726465726564206279206f7781526020017f6e6572206164647265737300000000000000000000000000000000000000000081525060400191505060405180910390fd5b8293508180600101925050610e18565b505050505050565b60008060008061108a8686611123565b809350819450829550505050600187848484604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af115801561110d573d6000803e3d6000fd5b5050506020604051035193505050509392505050565b60008060008360410260208101860151925060408101860151915060ff604182018701511693505092509250925600a165627a7a723058204ca002f64369c9c5c575e5a73140dc4461359a6d5cfd60fb502adfb4edbf6eae0029", + "deployedBytecode": "0x60806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632b50004114610093578063481c6a75146101595780637de7edef146101b0578063a3f4df7e146101f3578063ba0bba4014610283578063e52cb36a1461029a578063f6cc15d0146102df578063ffa1ad74146103cf575b600080fd5b34801561009f57600080fd5b5061013b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291908035906020019092919050505061045f565b60405180826000191660001916815260200191505060405180910390f35b34801561016557600080fd5b5061016e6106e7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101bc57600080fd5b506101f1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061070d565b005b3480156101ff57600080fd5b506102086108f0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561024857808201518184015260208101905061022d565b50505050905090810190601f1680156102755780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028f57600080fd5b50610298610929565b005b3480156102a657600080fd5b506102c96004803603810190808035600019169060200190929190505050610933565b6040518082815260200191505060405180910390f35b3480156102eb57600080fd5b506103cd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061094b565b005b3480156103db57600080fd5b506103e4610c1a565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610424578082015181840152602081019050610409565b50505050905090810190601f1680156104515780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600060197f01000000000000000000000000000000000000000000000000000000000000000260007f01000000000000000000000000000000000000000000000000000000000000000230888888888860405160200180897effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101887effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140185815260200184805190602001908083835b60208310151561060357805182526020820191506020810190506020830392506105de565b6001836020036101000a03801982511681845116808217855250505050505090500183600281111561063157fe5b60ff167f0100000000000000000000000000000000000000000000000000000000000000028152600101828152602001985050505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156106af578051825260208201915060208101905060208303925061068a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905095945050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156107f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156108ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040805190810160405280601481526020017f5374617465204368616e6e656c204d6f64756c6500000000000000000000000081525081565b610931610c53565b565b60026020528060005260406000206000915090505481565b600061095a878787878761045f565b90506000600260008360001916600019168152602001908152602001600020541415156109ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f5472616e73616374696f6e20616c72656164792065786563757465640000000081525060200191505060405180910390fd5b6109f98183610d46565b600160026000836000191660001916815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7888888886040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610ad357fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610b13578082015181840152602081019050610af8565b50505050905090810190601f168015610b405780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610b6257600080fd5b505af1158015610b76573d6000803e3d6000fd5b505050506040513d6020811015610b8c57600080fd5b81019080805190602001909291905050501515610c11576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f756c64206e6f742065786563757465207472616e73616374696f6e00000081525060200191505060405180910390fd5b50505050505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610d03576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060008060009350600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e75235b86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610dd657600080fd5b505af1158015610dea573d6000803e3d6000fd5b505050506040513d6020811015610e0057600080fd5b81019080805190602001909291905050509050600091505b8082101561107257610e2b86868461107a565b9250600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610eea57600080fd5b505af1158015610efe573d6000803e3d6000fd5b505050506040513d6020811015610f1457600080fd5b81019080805190602001909291905050501515610f99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5369676e6174757265206e6f742070726f7669646564206279206f776e65720081525060200191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16111515611062576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f5369676e61747572657320617265206e6f74206f726465726564206279206f7781526020017f6e6572206164647265737300000000000000000000000000000000000000000081525060400191505060405180910390fd5b8293508180600101925050610e18565b505050505050565b60008060008061108a8686611123565b809350819450829550505050600187848484604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af115801561110d573d6000803e3d6000fd5b5050506020604051035193505050509392505050565b60008060008360410260208101860151925060408101860151915060ff604182018701511693505092509250925600a165627a7a723058204ca002f64369c9c5c575e5a73140dc4461359a6d5cfd60fb502adfb4edbf6eae0029", "sourceMap": "305:2842:22:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;305:2842:22;;;;;;;", - "deployedSourceMap": "305:2842:22:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2816:329;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2816:329:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;262:28:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;262:28:8;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;370:52:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;370:52:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;370:52:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;660:65;;8:9:-1;5:2;;;30:1;27;20:12;5:2;660:65:22;;;;;;566:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;566:46:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1190:634;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1190:634:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;428:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;428:40:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;428:40:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2816:329;3019:7;3081:4;3076:10;;3093:1;3088:7;;3097:4;3103:2;3107:5;3114:4;3120:9;3131:5;3059: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;;;3059:78:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3059:78:22;;;3049: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;;;3049:89:22;;;;;;;;;;;;;;;;3042:96;;2816:329;;;;;;;:::o;262:28:8:-;;;;;;;;;;;;;:::o;626:248:5:-;359:7:8;;;;;;;;;;;337:30;;:10;:30;;;329:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:5;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;370:52:22:-;;;;;;;;;;;;;;;;;;;;:::o;660:65::-;706:12;:10;:12::i;:::-;660:65::o;566:46::-;;;;;;;;;;;;;;;;;:::o;1190:634::-;1400:23;1426:53;1445:2;1449:5;1456:4;1462:9;1473:5;1426:18;:53::i;:::-;1400:79;;1528:1;1497:10;:27;1508:15;1497:27;;;;;;;;;;;;;;;;;;:32;1489:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1572:38;1582:15;1599:10;1572:9;:38::i;:::-;1703:1;1673:10;:27;1684:15;1673:27;;;;;;;;;;;;;;;;;:31;;;;1722:7;;;;;;;;;;;:33;;;1756:2;1760:5;1767:4;1773:9;1722: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;1722:61:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1722:61:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1722:61:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1722:61:22;;;;;;;;;;;;;;;;1714:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1190:634;;;;;;;:::o;428:40::-;;;;;;;;;;;;;;;;;;;;:::o;434:300:8:-;648:1;636:7;;;;;;;;;;;628:21;;;620:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;716:10;692:7;;:35;;;;;;;;;;;;;;;;;;434:300::o;1830:708:22:-;1988:17;2028:20;2058:9;2077:17;2016:1;1988:30;;2110:7;;;;;;;;;;;2097:34;;;:36;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2097:36:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2097:36:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2097:36:22;;;;;;;;;;;;;;;;2077:56;;2194:1;2190:5;;2185:347;2201:9;2197:1;:13;2185:347;;;2246:42;2257:15;2274:10;2286:1;2246:10;:42::i;:::-;2231:57;;2323:7;;;;;;;;;;;2310:29;;;2340:12;2310:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2310:43:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2310:43:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2310:43:22;;;;;;;;;;;;;;;;2302:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2426:9;2411:24;;:12;:24;;;2403:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2509:12;2497:24;;2212:3;;;;;;;2185:347;;;1830:708;;;;;;:::o;477:330:17:-;629:7;653;670:9;689;720:37;735:16;753:3;720:14;:37::i;:::-;708:49;;;;;;;;;;;;774:26;784:6;792:1;795;798;774:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;774:26:17;;;;;;;;767:33;;477:330;;;;;;;;:::o;984:914::-;1086:7;1095:9;1106;1406:3;1400:4;1396:14;1468:4;1454:12;1450:23;1438:10;1434:40;1428:47;1423:52;;1533:4;1519:12;1515:23;1503:10;1499:40;1493:47;1488:52;;1877:4;1868;1854:12;1850:23;1838:10;1834:40;1828:47;1824:58;1819:63;;1362:530;;;;;;:::o", + "deployedSourceMap": "305:2842:22:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2816:329;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2816:329:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;262:28:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;262:28:9;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;370:52:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;370:52:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;370:52:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;660:65;;8:9:-1;5:2;;;30:1;27;20:12;5:2;660:65:22;;;;;;566:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;566:46:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1190:634;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1190:634:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;428:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;428:40:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;428:40:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2816:329;3019:7;3081:4;3076:10;;3093:1;3088:7;;3097:4;3103:2;3107:5;3114:4;3120:9;3131:5;3059: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;;;3059:78:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3059:78:22;;;3049: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;;;3049:89:22;;;;;;;;;;;;;;;;3042:96;;2816:329;;;;;;;:::o;262:28:9:-;;;;;;;;;;;;;:::o;626:248:7:-;359:7:9;;;;;;;;;;;337:30;;:10;:30;;;329:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:7;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;370:52:22:-;;;;;;;;;;;;;;;;;;;;:::o;660:65::-;706:12;:10;:12::i;:::-;660:65::o;566:46::-;;;;;;;;;;;;;;;;;:::o;1190:634::-;1400:23;1426:53;1445:2;1449:5;1456:4;1462:9;1473:5;1426:18;:53::i;:::-;1400:79;;1528:1;1497:10;:27;1508:15;1497:27;;;;;;;;;;;;;;;;;;:32;1489:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1572:38;1582:15;1599:10;1572:9;:38::i;:::-;1703:1;1673:10;:27;1684:15;1673:27;;;;;;;;;;;;;;;;;:31;;;;1722:7;;;;;;;;;;;:33;;;1756:2;1760:5;1767:4;1773:9;1722: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;1722:61:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1722:61:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1722:61:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1722:61:22;;;;;;;;;;;;;;;;1714:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1190:634;;;;;;;:::o;428:40::-;;;;;;;;;;;;;;;;;;;;:::o;434:300:9:-;648:1;636:7;;;;;;;;;;;628:21;;;620:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;716:10;692:7;;:35;;;;;;;;;;;;;;;;;;434:300::o;1830:708:22:-;1988:17;2028:20;2058:9;2077:17;2016:1;1988:30;;2110:7;;;;;;;;;;;2097:34;;;:36;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2097:36:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2097:36:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2097:36:22;;;;;;;;;;;;;;;;2077:56;;2194:1;2190:5;;2185:347;2201:9;2197:1;:13;2185:347;;;2246:42;2257:15;2274:10;2286:1;2246:10;:42::i;:::-;2231:57;;2323:7;;;;;;;;;;;2310:29;;;2340:12;2310:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2310:43:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2310:43:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2310:43:22;;;;;;;;;;;;;;;;2302:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2426:9;2411:24;;:12;:24;;;2403:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2509:12;2497:24;;2212:3;;;;;;;2185:347;;;1830:708;;;;;;:::o;477:330:17:-;629:7;653;670:9;689;720:37;735:16;753:3;720:14;:37::i;:::-;708:49;;;;;;;;;;;;774:26;784:6;792:1;795;798;774:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;774:26:17;;;;;;;;767:33;;477:330;;;;;;;;:::o;984:914::-;1086:7;1095:9;1106;1406:3;1400:4;1396:14;1468:4;1454:12;1450:23;1438:10;1434:40;1428:47;1423:52;;1533:4;1519:12;1515:23;1503:10;1499:40;1493:47;1488:52;;1877:4;1868;1854:12;1850:23;1838:10;1834:40;1828:47;1824:58;1819:63;;1362:530;;;;;;:::o", "source": "pragma solidity 0.4.24;\nimport \"../Module.sol\";\nimport \"../OwnerManager.sol\";\nimport \"../SignatureValidator.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, SignatureValidator {\n\n string public constant NAME = \"State Channel Module\";\n string public constant VERSION = \"0.0.1\";\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": [ - 3867 + 2567 ] }, - "id": 3868, + "id": 2568, "nodeType": "SourceUnit", "nodes": [ { - "id": 3682, + "id": 2382, "literals": [ "solidity", "0.4", @@ -184,10 +184,10 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", "file": "../Module.sol", - "id": 3683, + "id": 2383, "nodeType": "ImportDirective", - "scope": 3868, - "sourceUnit": 1862, + "scope": 2568, + "sourceUnit": 914, "src": "24:23:22", "symbolAliases": [], "unitAlias": "" @@ -195,10 +195,10 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", "file": "../OwnerManager.sol", - "id": 3684, + "id": 2384, "nodeType": "ImportDirective", - "scope": 3868, - "sourceUnit": 2889, + "scope": 2568, + "sourceUnit": 1589, "src": "48:29:22", "symbolAliases": [], "unitAlias": "" @@ -206,10 +206,10 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SignatureValidator.sol", "file": "../SignatureValidator.sol", - "id": 3685, + "id": 2385, "nodeType": "ImportDirective", - "scope": 3868, - "sourceUnit": 3122, + "scope": 2568, + "sourceUnit": 1822, "src": "78:35:22", "symbolAliases": [], "unitAlias": "" @@ -220,17 +220,17 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 3686, + "id": 2386, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1861, + "referencedDeclaration": 913, "src": "336:6:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" } }, - "id": 3687, + "id": 2387, "nodeType": "InheritanceSpecifier", "src": "336:6:22" }, @@ -238,47 +238,47 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 3688, + "id": 2388, "name": "SignatureValidator", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3121, + "referencedDeclaration": 1821, "src": "344:18:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_SignatureValidator_$3121", + "typeIdentifier": "t_contract$_SignatureValidator_$1821", "typeString": "contract SignatureValidator" } }, - "id": 3689, + "id": 2389, "nodeType": "InheritanceSpecifier", "src": "344:18:22" } ], "contractDependencies": [ - 632, - 1861, - 3065, - 3121 + 813, + 913, + 1765, + 1821 ], "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": 3867, + "id": 2567, "linearizedBaseContracts": [ - 3867, - 3121, - 1861, - 632, - 3065 + 2567, + 1821, + 913, + 813, + 1765 ], "name": "StateChannelModule", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 3692, + "id": 2392, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 3867, + "scope": 2567, "src": "370:52:22", "stateVariable": true, "storageLocation": "default", @@ -287,7 +287,7 @@ "typeString": "string" }, "typeName": { - "id": 3690, + "id": 2390, "name": "string", "nodeType": "ElementaryTypeName", "src": "370:6:22", @@ -299,7 +299,7 @@ "value": { "argumentTypes": null, "hexValue": "5374617465204368616e6e656c204d6f64756c65", - "id": 3691, + "id": 2391, "isConstant": false, "isLValue": false, "isPure": true, @@ -318,10 +318,10 @@ }, { "constant": true, - "id": 3695, + "id": 2395, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 3867, + "scope": 2567, "src": "428:40:22", "stateVariable": true, "storageLocation": "default", @@ -330,7 +330,7 @@ "typeString": "string" }, "typeName": { - "id": 3693, + "id": 2393, "name": "string", "nodeType": "ElementaryTypeName", "src": "428:6:22", @@ -342,7 +342,7 @@ "value": { "argumentTypes": null, "hexValue": "302e302e31", - "id": 3694, + "id": 2394, "isConstant": false, "isLValue": false, "isPure": true, @@ -361,10 +361,10 @@ }, { "constant": false, - "id": 3699, + "id": 2399, "name": "isExecuted", "nodeType": "VariableDeclaration", - "scope": 3867, + "scope": 2567, "src": "566:46:22", "stateVariable": true, "storageLocation": "default", @@ -373,9 +373,9 @@ "typeString": "mapping(bytes32 => uint256)" }, "typeName": { - "id": 3698, + "id": 2398, "keyType": { - "id": 3696, + "id": 2396, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "575:7:22", @@ -391,7 +391,7 @@ "typeString": "mapping(bytes32 => uint256)" }, "valueType": { - "id": 3697, + "id": 2397, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "586:7:22", @@ -406,7 +406,7 @@ }, { "body": { - "id": 3705, + "id": 2405, "nodeType": "Block", "src": "696:29:22", "statements": [ @@ -416,18 +416,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 3702, + "id": 2402, "name": "setManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1860, + "referencedDeclaration": 912, "src": "706:10:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 3703, + "id": 2403, "isConstant": false, "isLValue": false, "isPure": false, @@ -441,14 +441,14 @@ "typeString": "tuple()" } }, - "id": 3704, + "id": 2404, "nodeType": "ExpressionStatement", "src": "706:12:22" } ] }, "documentation": "@dev Setup function sets manager", - "id": 3706, + "id": 2406, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -456,19 +456,19 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 3700, + "id": 2400, "nodeType": "ParameterList", "parameters": [], "src": "674:2:22" }, "payable": false, "returnParameters": { - "id": 3701, + "id": 2401, "nodeType": "ParameterList", "parameters": [], "src": "696:0:22" }, - "scope": 3867, + "scope": 2567, "src": "660:65:22", "stateMutability": "nonpayable", "superFunction": null, @@ -476,21 +476,21 @@ }, { "body": { - "id": 3762, + "id": 2462, "nodeType": "Block", "src": "1390:434:22", "statements": [ { "assignments": [ - 3722 + 2422 ], "declarations": [ { "constant": false, - "id": 3722, + "id": 2422, "name": "transactionHash", "nodeType": "VariableDeclaration", - "scope": 3763, + "scope": 2463, "src": "1400:23:22", "stateVariable": false, "storageLocation": "default", @@ -499,7 +499,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3721, + "id": 2421, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1400:7:22", @@ -512,17 +512,17 @@ "visibility": "internal" } ], - "id": 3730, + "id": 2430, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 3724, + "id": 2424, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3708, + "referencedDeclaration": 2408, "src": "1445:2:22", "typeDescriptions": { "typeIdentifier": "t_address", @@ -531,11 +531,11 @@ }, { "argumentTypes": null, - "id": 3725, + "id": 2425, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3710, + "referencedDeclaration": 2410, "src": "1449:5:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -544,11 +544,11 @@ }, { "argumentTypes": null, - "id": 3726, + "id": 2426, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3712, + "referencedDeclaration": 2412, "src": "1456:4:22", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -557,11 +557,11 @@ }, { "argumentTypes": null, - "id": 3727, + "id": 2427, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3714, + "referencedDeclaration": 2414, "src": "1462:9:22", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$29", @@ -570,11 +570,11 @@ }, { "argumentTypes": null, - "id": 3728, + "id": 2428, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3716, + "referencedDeclaration": 2416, "src": "1473:5:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -605,18 +605,18 @@ "typeString": "uint256" } ], - "id": 3723, + "id": 2423, "name": "getTransactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3866, + "referencedDeclaration": 2566, "src": "1426:18:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bytes32_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) view returns (bytes32)" } }, - "id": 3729, + "id": 2429, "isConstant": false, "isLValue": false, "isPure": false, @@ -643,7 +643,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3736, + "id": 2436, "isConstant": false, "isLValue": false, "isPure": false, @@ -652,25 +652,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3732, + "id": 2432, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3699, + "referencedDeclaration": 2399, "src": "1497:10:22", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3734, + "id": 2434, "indexExpression": { "argumentTypes": null, - "id": 3733, + "id": 2433, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3722, + "referencedDeclaration": 2422, "src": "1508:15:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -693,7 +693,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3735, + "id": 2435, "isConstant": false, "isLValue": false, "isPure": true, @@ -717,7 +717,7 @@ { "argumentTypes": null, "hexValue": "5472616e73616374696f6e20616c7265616479206578656375746564", - "id": 3737, + "id": 2437, "isConstant": false, "isLValue": false, "isPure": true, @@ -744,21 +744,21 @@ "typeString": "literal_string \"Transaction already executed\"" } ], - "id": 3731, + "id": 2431, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "1489:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3738, + "id": 2438, "isConstant": false, "isLValue": false, "isPure": false, @@ -772,7 +772,7 @@ "typeString": "tuple()" } }, - "id": 3739, + "id": 2439, "nodeType": "ExpressionStatement", "src": "1489:73:22" }, @@ -782,11 +782,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3741, + "id": 2441, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3722, + "referencedDeclaration": 2422, "src": "1582:15:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -795,11 +795,11 @@ }, { "argumentTypes": null, - "id": 3742, + "id": 2442, "name": "signatures", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3718, + "referencedDeclaration": 2418, "src": "1599:10:22", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -818,18 +818,18 @@ "typeString": "bytes memory" } ], - "id": 3740, + "id": 2440, "name": "checkHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3832, + "referencedDeclaration": 2532, "src": "1572:9:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes32,bytes memory) view" } }, - "id": 3743, + "id": 2443, "isConstant": false, "isLValue": false, "isPure": false, @@ -843,14 +843,14 @@ "typeString": "tuple()" } }, - "id": 3744, + "id": 2444, "nodeType": "ExpressionStatement", "src": "1572:38:22" }, { "expression": { "argumentTypes": null, - "id": 3749, + "id": 2449, "isConstant": false, "isLValue": false, "isPure": false, @@ -859,25 +859,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3745, + "id": 2445, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3699, + "referencedDeclaration": 2399, "src": "1673:10:22", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3747, + "id": 2447, "indexExpression": { "argumentTypes": null, - "id": 3746, + "id": 2446, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3722, + "referencedDeclaration": 2422, "src": "1684:15:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -900,7 +900,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "31", - "id": 3748, + "id": 2448, "isConstant": false, "isLValue": false, "isPure": true, @@ -921,7 +921,7 @@ "typeString": "uint256" } }, - "id": 3750, + "id": 2450, "nodeType": "ExpressionStatement", "src": "1673:31:22" }, @@ -934,11 +934,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3754, + "id": 2454, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3708, + "referencedDeclaration": 2408, "src": "1756:2:22", "typeDescriptions": { "typeIdentifier": "t_address", @@ -947,11 +947,11 @@ }, { "argumentTypes": null, - "id": 3755, + "id": 2455, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3710, + "referencedDeclaration": 2410, "src": "1760:5:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -960,11 +960,11 @@ }, { "argumentTypes": null, - "id": 3756, + "id": 2456, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3712, + "referencedDeclaration": 2412, "src": "1767:4:22", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -973,11 +973,11 @@ }, { "argumentTypes": null, - "id": 3757, + "id": 2457, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3714, + "referencedDeclaration": 2414, "src": "1773:9:22", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$29", @@ -1006,32 +1006,32 @@ ], "expression": { "argumentTypes": null, - "id": 3752, + "id": 2452, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1826, + "referencedDeclaration": 878, "src": "1722:7:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } }, - "id": 3753, + "id": 2453, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "execTransactionFromModule", "nodeType": "MemberAccess", - "referencedDeclaration": 2059, + "referencedDeclaration": 1106, "src": "1722:33:22", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" } }, - "id": 3758, + "id": 2458, "isConstant": false, "isLValue": false, "isPure": false, @@ -1048,7 +1048,7 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f742065786563757465207472616e73616374696f6e", - "id": 3759, + "id": 2459, "isConstant": false, "isLValue": false, "isPure": true, @@ -1075,21 +1075,21 @@ "typeString": "literal_string \"Could not execute transaction\"" } ], - "id": 3751, + "id": 2451, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "1714:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3760, + "id": 2460, "isConstant": false, "isLValue": false, "isPure": false, @@ -1103,14 +1103,14 @@ "typeString": "tuple()" } }, - "id": 3761, + "id": 2461, "nodeType": "ExpressionStatement", "src": "1714:103:22" } ] }, "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": 3763, + "id": 2463, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1118,15 +1118,15 @@ "name": "execTransaction", "nodeType": "FunctionDefinition", "parameters": { - "id": 3719, + "id": 2419, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3708, + "id": 2408, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3763, + "scope": 2463, "src": "1224:10:22", "stateVariable": false, "storageLocation": "default", @@ -1135,7 +1135,7 @@ "typeString": "address" }, "typeName": { - "id": 3707, + "id": 2407, "name": "address", "nodeType": "ElementaryTypeName", "src": "1224:7:22", @@ -1149,10 +1149,10 @@ }, { "constant": false, - "id": 3710, + "id": 2410, "name": "value", "nodeType": "VariableDeclaration", - "scope": 3763, + "scope": 2463, "src": "1245:13:22", "stateVariable": false, "storageLocation": "default", @@ -1161,7 +1161,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3709, + "id": 2409, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1245:7:22", @@ -1175,10 +1175,10 @@ }, { "constant": false, - "id": 3712, + "id": 2412, "name": "data", "nodeType": "VariableDeclaration", - "scope": 3763, + "scope": 2463, "src": "1269:10:22", "stateVariable": false, "storageLocation": "default", @@ -1187,7 +1187,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3711, + "id": 2411, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1269:5:22", @@ -1201,10 +1201,10 @@ }, { "constant": false, - "id": 3714, + "id": 2414, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 3763, + "scope": 2463, "src": "1290:24:22", "stateVariable": false, "storageLocation": "default", @@ -1214,7 +1214,7 @@ }, "typeName": { "contractScope": null, - "id": 3713, + "id": 2413, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 29, @@ -1229,10 +1229,10 @@ }, { "constant": false, - "id": 3716, + "id": 2416, "name": "nonce", "nodeType": "VariableDeclaration", - "scope": 3763, + "scope": 2463, "src": "1325:13:22", "stateVariable": false, "storageLocation": "default", @@ -1241,7 +1241,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3715, + "id": 2415, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1325:7:22", @@ -1255,10 +1255,10 @@ }, { "constant": false, - "id": 3718, + "id": 2418, "name": "signatures", "nodeType": "VariableDeclaration", - "scope": 3763, + "scope": 2463, "src": "1348:16:22", "stateVariable": false, "storageLocation": "default", @@ -1267,7 +1267,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3717, + "id": 2417, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1348:5:22", @@ -1284,12 +1284,12 @@ }, "payable": false, "returnParameters": { - "id": 3720, + "id": 2420, "nodeType": "ParameterList", "parameters": [], "src": "1390:0:22" }, - "scope": 3867, + "scope": 2567, "src": "1190:634:22", "stateMutability": "nonpayable", "superFunction": null, @@ -1297,21 +1297,21 @@ }, { "body": { - "id": 3831, + "id": 2531, "nodeType": "Block", "src": "1926:612:22", "statements": [ { "assignments": [ - 3771 + 2471 ], "declarations": [ { "constant": false, - "id": 3771, + "id": 2471, "name": "lastOwner", "nodeType": "VariableDeclaration", - "scope": 3832, + "scope": 2532, "src": "1988:17:22", "stateVariable": false, "storageLocation": "default", @@ -1320,7 +1320,7 @@ "typeString": "address" }, "typeName": { - "id": 3770, + "id": 2470, "name": "address", "nodeType": "ElementaryTypeName", "src": "1988:7:22", @@ -1333,14 +1333,14 @@ "visibility": "internal" } ], - "id": 3775, + "id": 2475, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 3773, + "id": 2473, "isConstant": false, "isLValue": false, "isPure": true, @@ -1363,7 +1363,7 @@ "typeString": "int_const 0" } ], - "id": 3772, + "id": 2472, "isConstant": false, "isLValue": false, "isPure": true, @@ -1376,7 +1376,7 @@ }, "typeName": "address" }, - "id": 3774, + "id": 2474, "isConstant": false, "isLValue": false, "isPure": true, @@ -1398,10 +1398,10 @@ "declarations": [ { "constant": false, - "id": 3777, + "id": 2477, "name": "currentOwner", "nodeType": "VariableDeclaration", - "scope": 3832, + "scope": 2532, "src": "2028:20:22", "stateVariable": false, "storageLocation": "default", @@ -1410,7 +1410,7 @@ "typeString": "address" }, "typeName": { - "id": 3776, + "id": 2476, "name": "address", "nodeType": "ElementaryTypeName", "src": "2028:7:22", @@ -1423,7 +1423,7 @@ "visibility": "internal" } ], - "id": 3778, + "id": 2478, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "2028:20:22" @@ -1433,10 +1433,10 @@ "declarations": [ { "constant": false, - "id": 3780, + "id": 2480, "name": "i", "nodeType": "VariableDeclaration", - "scope": 3832, + "scope": 2532, "src": "2058:9:22", "stateVariable": false, "storageLocation": "default", @@ -1445,7 +1445,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3779, + "id": 2479, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2058:7:22", @@ -1458,22 +1458,22 @@ "visibility": "internal" } ], - "id": 3781, + "id": 2481, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "2058:9:22" }, { "assignments": [ - 3783 + 2483 ], "declarations": [ { "constant": false, - "id": 3783, + "id": 2483, "name": "threshold", "nodeType": "VariableDeclaration", - "scope": 3832, + "scope": 2532, "src": "2077:17:22", "stateVariable": false, "storageLocation": "default", @@ -1482,7 +1482,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3782, + "id": 2482, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2077:7:22", @@ -1495,7 +1495,7 @@ "visibility": "internal" } ], - "id": 3789, + "id": 2489, "initialValue": { "argumentTypes": null, "arguments": [], @@ -1506,14 +1506,14 @@ "arguments": [ { "argumentTypes": null, - "id": 3785, + "id": 2485, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1826, + "referencedDeclaration": 878, "src": "2110:7:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } } @@ -1521,22 +1521,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } ], - "id": 3784, + "id": 2484, "name": "OwnerManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2888, + "referencedDeclaration": 1588, "src": "2097:12:22", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$2888_$", + "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1588_$", "typeString": "type(contract OwnerManager)" } }, - "id": 3786, + "id": 2486, "isConstant": false, "isLValue": false, "isPure": false, @@ -1546,25 +1546,25 @@ "nodeType": "FunctionCall", "src": "2097:21:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$2888", + "typeIdentifier": "t_contract$_OwnerManager_$1588", "typeString": "contract OwnerManager" } }, - "id": 3787, + "id": 2487, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getThreshold", "nodeType": "MemberAccess", - "referencedDeclaration": 2824, + "referencedDeclaration": 1524, "src": "2097:34:22", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 3788, + "id": 2488, "isConstant": false, "isLValue": false, "isPure": false, @@ -1583,25 +1583,25 @@ }, { "body": { - "id": 3829, + "id": 2529, "nodeType": "Block", "src": "2217:315:22", "statements": [ { "expression": { "argumentTypes": null, - "id": 3806, + "id": 2506, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3800, + "id": 2500, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3777, + "referencedDeclaration": 2477, "src": "2231:12:22", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1615,11 +1615,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3802, + "id": 2502, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3765, + "referencedDeclaration": 2465, "src": "2257:15:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1628,11 +1628,11 @@ }, { "argumentTypes": null, - "id": 3803, + "id": 2503, "name": "signatures", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3767, + "referencedDeclaration": 2467, "src": "2274:10:22", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -1641,11 +1641,11 @@ }, { "argumentTypes": null, - "id": 3804, + "id": 2504, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3780, + "referencedDeclaration": 2480, "src": "2286:1:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1668,18 +1668,18 @@ "typeString": "uint256" } ], - "id": 3801, + "id": 2501, "name": "recoverKey", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3105, + "referencedDeclaration": 1805, "src": "2246:10:22", "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": 3805, + "id": 2505, "isConstant": false, "isLValue": false, "isPure": false, @@ -1699,7 +1699,7 @@ "typeString": "address" } }, - "id": 3807, + "id": 2507, "nodeType": "ExpressionStatement", "src": "2231:57:22" }, @@ -1712,11 +1712,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3813, + "id": 2513, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3777, + "referencedDeclaration": 2477, "src": "2340:12:22", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1736,14 +1736,14 @@ "arguments": [ { "argumentTypes": null, - "id": 3810, + "id": 2510, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1826, + "referencedDeclaration": 878, "src": "2323:7:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } } @@ -1751,22 +1751,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } ], - "id": 3809, + "id": 2509, "name": "OwnerManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2888, + "referencedDeclaration": 1588, "src": "2310:12:22", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$2888_$", + "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1588_$", "typeString": "type(contract OwnerManager)" } }, - "id": 3811, + "id": 2511, "isConstant": false, "isLValue": false, "isPure": false, @@ -1776,25 +1776,25 @@ "nodeType": "FunctionCall", "src": "2310:21:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$2888", + "typeIdentifier": "t_contract$_OwnerManager_$1588", "typeString": "contract OwnerManager" } }, - "id": 3812, + "id": 2512, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isOwner", "nodeType": "MemberAccess", - "referencedDeclaration": 2838, + "referencedDeclaration": 1538, "src": "2310:29:22", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view external returns (bool)" } }, - "id": 3814, + "id": 2514, "isConstant": false, "isLValue": false, "isPure": false, @@ -1811,7 +1811,7 @@ { "argumentTypes": null, "hexValue": "5369676e6174757265206e6f742070726f7669646564206279206f776e6572", - "id": 3815, + "id": 2515, "isConstant": false, "isLValue": false, "isPure": true, @@ -1838,21 +1838,21 @@ "typeString": "literal_string \"Signature not provided by owner\"" } ], - "id": 3808, + "id": 2508, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "2302:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3816, + "id": 2516, "isConstant": false, "isLValue": false, "isPure": false, @@ -1866,7 +1866,7 @@ "typeString": "tuple()" } }, - "id": 3817, + "id": 2517, "nodeType": "ExpressionStatement", "src": "2302:87:22" }, @@ -1880,18 +1880,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3821, + "id": 2521, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3819, + "id": 2519, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3777, + "referencedDeclaration": 2477, "src": "2411:12:22", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1902,11 +1902,11 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 3820, + "id": 2520, "name": "lastOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3771, + "referencedDeclaration": 2471, "src": "2426:9:22", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1922,7 +1922,7 @@ { "argumentTypes": null, "hexValue": "5369676e61747572657320617265206e6f74206f726465726564206279206f776e65722061646472657373", - "id": 3822, + "id": 2522, "isConstant": false, "isLValue": false, "isPure": true, @@ -1949,21 +1949,21 @@ "typeString": "literal_string \"Signatures are not ordered by owner address\"" } ], - "id": 3818, + "id": 2518, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "2403:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3823, + "id": 2523, "isConstant": false, "isLValue": false, "isPure": false, @@ -1977,25 +1977,25 @@ "typeString": "tuple()" } }, - "id": 3824, + "id": 2524, "nodeType": "ExpressionStatement", "src": "2403:80:22" }, { "expression": { "argumentTypes": null, - "id": 3827, + "id": 2527, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3825, + "id": 2525, "name": "lastOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3771, + "referencedDeclaration": 2471, "src": "2497:9:22", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2006,11 +2006,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3826, + "id": 2526, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3777, + "referencedDeclaration": 2477, "src": "2509:12:22", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2023,7 +2023,7 @@ "typeString": "address" } }, - "id": 3828, + "id": 2528, "nodeType": "ExpressionStatement", "src": "2497:24:22" } @@ -2035,18 +2035,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3796, + "id": 2496, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3794, + "id": 2494, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3780, + "referencedDeclaration": 2480, "src": "2197:1:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2057,11 +2057,11 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 3795, + "id": 2495, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3783, + "referencedDeclaration": 2483, "src": "2201:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2074,22 +2074,22 @@ "typeString": "bool" } }, - "id": 3830, + "id": 2530, "initializationExpression": { "expression": { "argumentTypes": null, - "id": 3792, + "id": 2492, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3790, + "id": 2490, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3780, + "referencedDeclaration": 2480, "src": "2190:1:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2101,7 +2101,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 3791, + "id": 2491, "isConstant": false, "isLValue": false, "isPure": true, @@ -2122,14 +2122,14 @@ "typeString": "uint256" } }, - "id": 3793, + "id": 2493, "nodeType": "ExpressionStatement", "src": "2190:5:22" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 3798, + "id": 2498, "isConstant": false, "isLValue": false, "isPure": false, @@ -2140,11 +2140,11 @@ "src": "2212:3:22", "subExpression": { "argumentTypes": null, - "id": 3797, + "id": 2497, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3780, + "referencedDeclaration": 2480, "src": "2212:1:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2156,7 +2156,7 @@ "typeString": "uint256" } }, - "id": 3799, + "id": 2499, "nodeType": "ExpressionStatement", "src": "2212:3:22" }, @@ -2166,7 +2166,7 @@ ] }, "documentation": null, - "id": 3832, + "id": 2532, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2174,15 +2174,15 @@ "name": "checkHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 3768, + "id": 2468, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3765, + "id": 2465, "name": "transactionHash", "nodeType": "VariableDeclaration", - "scope": 3832, + "scope": 2532, "src": "1849:23:22", "stateVariable": false, "storageLocation": "default", @@ -2191,7 +2191,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3764, + "id": 2464, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1849:7:22", @@ -2205,10 +2205,10 @@ }, { "constant": false, - "id": 3767, + "id": 2467, "name": "signatures", "nodeType": "VariableDeclaration", - "scope": 3832, + "scope": 2532, "src": "1874:16:22", "stateVariable": false, "storageLocation": "default", @@ -2217,7 +2217,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3766, + "id": 2466, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1874:5:22", @@ -2234,12 +2234,12 @@ }, "payable": false, "returnParameters": { - "id": 3769, + "id": 2469, "nodeType": "ParameterList", "parameters": [], "src": "1926:0:22" }, - "scope": 3867, + "scope": 2567, "src": "1830:708:22", "stateMutability": "view", "superFunction": null, @@ -2247,7 +2247,7 @@ }, { "body": { - "id": 3865, + "id": 2565, "nodeType": "Block", "src": "3032:113:22", "statements": [ @@ -2264,7 +2264,7 @@ { "argumentTypes": null, "hexValue": "30783139", - "id": 3851, + "id": 2551, "isConstant": false, "isLValue": false, "isPure": true, @@ -2287,7 +2287,7 @@ "typeString": "int_const 25" } ], - "id": 3850, + "id": 2550, "isConstant": false, "isLValue": false, "isPure": true, @@ -2300,7 +2300,7 @@ }, "typeName": "byte" }, - "id": 3852, + "id": 2552, "isConstant": false, "isLValue": false, "isPure": true, @@ -2320,7 +2320,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3854, + "id": 2554, "isConstant": false, "isLValue": false, "isPure": true, @@ -2343,7 +2343,7 @@ "typeString": "int_const 0" } ], - "id": 3853, + "id": 2553, "isConstant": false, "isLValue": false, "isPure": true, @@ -2356,7 +2356,7 @@ }, "typeName": "byte" }, - "id": 3855, + "id": 2555, "isConstant": false, "isLValue": false, "isPure": true, @@ -2372,24 +2372,24 @@ }, { "argumentTypes": null, - "id": 3856, + "id": 2556, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4093, + "referencedDeclaration": 3885, "src": "3097:4:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_StateChannelModule_$3867", + "typeIdentifier": "t_contract$_StateChannelModule_$2567", "typeString": "contract StateChannelModule" } }, { "argumentTypes": null, - "id": 3857, + "id": 2557, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3834, + "referencedDeclaration": 2534, "src": "3103:2:22", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2398,11 +2398,11 @@ }, { "argumentTypes": null, - "id": 3858, + "id": 2558, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3836, + "referencedDeclaration": 2536, "src": "3107:5:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2411,11 +2411,11 @@ }, { "argumentTypes": null, - "id": 3859, + "id": 2559, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3838, + "referencedDeclaration": 2538, "src": "3114:4:22", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -2424,11 +2424,11 @@ }, { "argumentTypes": null, - "id": 3860, + "id": 2560, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3840, + "referencedDeclaration": 2540, "src": "3120:9:22", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$29", @@ -2437,11 +2437,11 @@ }, { "argumentTypes": null, - "id": 3861, + "id": 2561, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3842, + "referencedDeclaration": 2542, "src": "3131:5:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2460,7 +2460,7 @@ "typeString": "bytes1" }, { - "typeIdentifier": "t_contract$_StateChannelModule_$3867", + "typeIdentifier": "t_contract$_StateChannelModule_$2567", "typeString": "contract StateChannelModule" }, { @@ -2486,18 +2486,18 @@ ], "expression": { "argumentTypes": null, - "id": 3848, + "id": 2548, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4023, + "referencedDeclaration": 3815, "src": "3059:3:22", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 3849, + "id": 2549, "isConstant": false, "isLValue": false, "isPure": true, @@ -2511,7 +2511,7 @@ "typeString": "function () pure returns (bytes memory)" } }, - "id": 3862, + "id": 2562, "isConstant": false, "isLValue": false, "isPure": false, @@ -2533,18 +2533,18 @@ "typeString": "bytes memory" } ], - "id": 3847, + "id": 2547, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4030, + "referencedDeclaration": 3822, "src": "3049:9:22", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 3863, + "id": 2563, "isConstant": false, "isLValue": false, "isPure": false, @@ -2558,15 +2558,15 @@ "typeString": "bytes32" } }, - "functionReturnParameters": 3846, - "id": 3864, + "functionReturnParameters": 2546, + "id": 2564, "nodeType": "Return", "src": "3042:96:22" } ] }, "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": 3866, + "id": 2566, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2574,15 +2574,15 @@ "name": "getTransactionHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 3843, + "id": 2543, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3834, + "id": 2534, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3866, + "scope": 2566, "src": "2853:10:22", "stateVariable": false, "storageLocation": "default", @@ -2591,7 +2591,7 @@ "typeString": "address" }, "typeName": { - "id": 3833, + "id": 2533, "name": "address", "nodeType": "ElementaryTypeName", "src": "2853:7:22", @@ -2605,10 +2605,10 @@ }, { "constant": false, - "id": 3836, + "id": 2536, "name": "value", "nodeType": "VariableDeclaration", - "scope": 3866, + "scope": 2566, "src": "2874:13:22", "stateVariable": false, "storageLocation": "default", @@ -2617,7 +2617,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3835, + "id": 2535, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2874:7:22", @@ -2631,10 +2631,10 @@ }, { "constant": false, - "id": 3838, + "id": 2538, "name": "data", "nodeType": "VariableDeclaration", - "scope": 3866, + "scope": 2566, "src": "2898:10:22", "stateVariable": false, "storageLocation": "default", @@ -2643,7 +2643,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3837, + "id": 2537, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "2898:5:22", @@ -2657,10 +2657,10 @@ }, { "constant": false, - "id": 3840, + "id": 2540, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 3866, + "scope": 2566, "src": "2919:24:22", "stateVariable": false, "storageLocation": "default", @@ -2670,7 +2670,7 @@ }, "typeName": { "contractScope": null, - "id": 3839, + "id": 2539, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 29, @@ -2685,10 +2685,10 @@ }, { "constant": false, - "id": 3842, + "id": 2542, "name": "nonce", "nodeType": "VariableDeclaration", - "scope": 3866, + "scope": 2566, "src": "2954:13:22", "stateVariable": false, "storageLocation": "default", @@ -2697,7 +2697,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3841, + "id": 2541, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2954:7:22", @@ -2714,15 +2714,15 @@ }, "payable": false, "returnParameters": { - "id": 3846, + "id": 2546, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3845, + "id": 2545, "name": "", "nodeType": "VariableDeclaration", - "scope": 3866, + "scope": 2566, "src": "3019:7:22", "stateVariable": false, "storageLocation": "default", @@ -2731,7 +2731,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3844, + "id": 2544, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "3019:7:22", @@ -2746,14 +2746,14 @@ ], "src": "3018:9:22" }, - "scope": 3867, + "scope": 2567, "src": "2816:329:22", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 3868, + "scope": 2568, "src": "305:2842:22" } ], @@ -2763,14 +2763,14 @@ "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/StateChannelModule.sol", "exportedSymbols": { "StateChannelModule": [ - 3867 + 2567 ] }, - "id": 3868, + "id": 2568, "nodeType": "SourceUnit", "nodes": [ { - "id": 3682, + "id": 2382, "literals": [ "solidity", "0.4", @@ -2782,10 +2782,10 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", "file": "../Module.sol", - "id": 3683, + "id": 2383, "nodeType": "ImportDirective", - "scope": 3868, - "sourceUnit": 1862, + "scope": 2568, + "sourceUnit": 914, "src": "24:23:22", "symbolAliases": [], "unitAlias": "" @@ -2793,10 +2793,10 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", "file": "../OwnerManager.sol", - "id": 3684, + "id": 2384, "nodeType": "ImportDirective", - "scope": 3868, - "sourceUnit": 2889, + "scope": 2568, + "sourceUnit": 1589, "src": "48:29:22", "symbolAliases": [], "unitAlias": "" @@ -2804,10 +2804,10 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SignatureValidator.sol", "file": "../SignatureValidator.sol", - "id": 3685, + "id": 2385, "nodeType": "ImportDirective", - "scope": 3868, - "sourceUnit": 3122, + "scope": 2568, + "sourceUnit": 1822, "src": "78:35:22", "symbolAliases": [], "unitAlias": "" @@ -2818,17 +2818,17 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 3686, + "id": 2386, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1861, + "referencedDeclaration": 913, "src": "336:6:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" } }, - "id": 3687, + "id": 2387, "nodeType": "InheritanceSpecifier", "src": "336:6:22" }, @@ -2836,47 +2836,47 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 3688, + "id": 2388, "name": "SignatureValidator", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3121, + "referencedDeclaration": 1821, "src": "344:18:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_SignatureValidator_$3121", + "typeIdentifier": "t_contract$_SignatureValidator_$1821", "typeString": "contract SignatureValidator" } }, - "id": 3689, + "id": 2389, "nodeType": "InheritanceSpecifier", "src": "344:18:22" } ], "contractDependencies": [ - 632, - 1861, - 3065, - 3121 + 813, + 913, + 1765, + 1821 ], "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": 3867, + "id": 2567, "linearizedBaseContracts": [ - 3867, - 3121, - 1861, - 632, - 3065 + 2567, + 1821, + 913, + 813, + 1765 ], "name": "StateChannelModule", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 3692, + "id": 2392, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 3867, + "scope": 2567, "src": "370:52:22", "stateVariable": true, "storageLocation": "default", @@ -2885,7 +2885,7 @@ "typeString": "string" }, "typeName": { - "id": 3690, + "id": 2390, "name": "string", "nodeType": "ElementaryTypeName", "src": "370:6:22", @@ -2897,7 +2897,7 @@ "value": { "argumentTypes": null, "hexValue": "5374617465204368616e6e656c204d6f64756c65", - "id": 3691, + "id": 2391, "isConstant": false, "isLValue": false, "isPure": true, @@ -2916,10 +2916,10 @@ }, { "constant": true, - "id": 3695, + "id": 2395, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 3867, + "scope": 2567, "src": "428:40:22", "stateVariable": true, "storageLocation": "default", @@ -2928,7 +2928,7 @@ "typeString": "string" }, "typeName": { - "id": 3693, + "id": 2393, "name": "string", "nodeType": "ElementaryTypeName", "src": "428:6:22", @@ -2940,7 +2940,7 @@ "value": { "argumentTypes": null, "hexValue": "302e302e31", - "id": 3694, + "id": 2394, "isConstant": false, "isLValue": false, "isPure": true, @@ -2959,10 +2959,10 @@ }, { "constant": false, - "id": 3699, + "id": 2399, "name": "isExecuted", "nodeType": "VariableDeclaration", - "scope": 3867, + "scope": 2567, "src": "566:46:22", "stateVariable": true, "storageLocation": "default", @@ -2971,9 +2971,9 @@ "typeString": "mapping(bytes32 => uint256)" }, "typeName": { - "id": 3698, + "id": 2398, "keyType": { - "id": 3696, + "id": 2396, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "575:7:22", @@ -2989,7 +2989,7 @@ "typeString": "mapping(bytes32 => uint256)" }, "valueType": { - "id": 3697, + "id": 2397, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "586:7:22", @@ -3004,7 +3004,7 @@ }, { "body": { - "id": 3705, + "id": 2405, "nodeType": "Block", "src": "696:29:22", "statements": [ @@ -3014,18 +3014,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 3702, + "id": 2402, "name": "setManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1860, + "referencedDeclaration": 912, "src": "706:10:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 3703, + "id": 2403, "isConstant": false, "isLValue": false, "isPure": false, @@ -3039,14 +3039,14 @@ "typeString": "tuple()" } }, - "id": 3704, + "id": 2404, "nodeType": "ExpressionStatement", "src": "706:12:22" } ] }, "documentation": "@dev Setup function sets manager", - "id": 3706, + "id": 2406, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3054,19 +3054,19 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 3700, + "id": 2400, "nodeType": "ParameterList", "parameters": [], "src": "674:2:22" }, "payable": false, "returnParameters": { - "id": 3701, + "id": 2401, "nodeType": "ParameterList", "parameters": [], "src": "696:0:22" }, - "scope": 3867, + "scope": 2567, "src": "660:65:22", "stateMutability": "nonpayable", "superFunction": null, @@ -3074,21 +3074,21 @@ }, { "body": { - "id": 3762, + "id": 2462, "nodeType": "Block", "src": "1390:434:22", "statements": [ { "assignments": [ - 3722 + 2422 ], "declarations": [ { "constant": false, - "id": 3722, + "id": 2422, "name": "transactionHash", "nodeType": "VariableDeclaration", - "scope": 3763, + "scope": 2463, "src": "1400:23:22", "stateVariable": false, "storageLocation": "default", @@ -3097,7 +3097,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3721, + "id": 2421, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1400:7:22", @@ -3110,17 +3110,17 @@ "visibility": "internal" } ], - "id": 3730, + "id": 2430, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 3724, + "id": 2424, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3708, + "referencedDeclaration": 2408, "src": "1445:2:22", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3129,11 +3129,11 @@ }, { "argumentTypes": null, - "id": 3725, + "id": 2425, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3710, + "referencedDeclaration": 2410, "src": "1449:5:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3142,11 +3142,11 @@ }, { "argumentTypes": null, - "id": 3726, + "id": 2426, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3712, + "referencedDeclaration": 2412, "src": "1456:4:22", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -3155,11 +3155,11 @@ }, { "argumentTypes": null, - "id": 3727, + "id": 2427, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3714, + "referencedDeclaration": 2414, "src": "1462:9:22", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$29", @@ -3168,11 +3168,11 @@ }, { "argumentTypes": null, - "id": 3728, + "id": 2428, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3716, + "referencedDeclaration": 2416, "src": "1473:5:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3203,18 +3203,18 @@ "typeString": "uint256" } ], - "id": 3723, + "id": 2423, "name": "getTransactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3866, + "referencedDeclaration": 2566, "src": "1426:18:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bytes32_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) view returns (bytes32)" } }, - "id": 3729, + "id": 2429, "isConstant": false, "isLValue": false, "isPure": false, @@ -3241,7 +3241,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3736, + "id": 2436, "isConstant": false, "isLValue": false, "isPure": false, @@ -3250,25 +3250,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3732, + "id": 2432, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3699, + "referencedDeclaration": 2399, "src": "1497:10:22", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3734, + "id": 2434, "indexExpression": { "argumentTypes": null, - "id": 3733, + "id": 2433, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3722, + "referencedDeclaration": 2422, "src": "1508:15:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -3291,7 +3291,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3735, + "id": 2435, "isConstant": false, "isLValue": false, "isPure": true, @@ -3315,7 +3315,7 @@ { "argumentTypes": null, "hexValue": "5472616e73616374696f6e20616c7265616479206578656375746564", - "id": 3737, + "id": 2437, "isConstant": false, "isLValue": false, "isPure": true, @@ -3342,21 +3342,21 @@ "typeString": "literal_string \"Transaction already executed\"" } ], - "id": 3731, + "id": 2431, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "1489:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3738, + "id": 2438, "isConstant": false, "isLValue": false, "isPure": false, @@ -3370,7 +3370,7 @@ "typeString": "tuple()" } }, - "id": 3739, + "id": 2439, "nodeType": "ExpressionStatement", "src": "1489:73:22" }, @@ -3380,11 +3380,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3741, + "id": 2441, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3722, + "referencedDeclaration": 2422, "src": "1582:15:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -3393,11 +3393,11 @@ }, { "argumentTypes": null, - "id": 3742, + "id": 2442, "name": "signatures", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3718, + "referencedDeclaration": 2418, "src": "1599:10:22", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -3416,18 +3416,18 @@ "typeString": "bytes memory" } ], - "id": 3740, + "id": 2440, "name": "checkHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3832, + "referencedDeclaration": 2532, "src": "1572:9:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes32,bytes memory) view" } }, - "id": 3743, + "id": 2443, "isConstant": false, "isLValue": false, "isPure": false, @@ -3441,14 +3441,14 @@ "typeString": "tuple()" } }, - "id": 3744, + "id": 2444, "nodeType": "ExpressionStatement", "src": "1572:38:22" }, { "expression": { "argumentTypes": null, - "id": 3749, + "id": 2449, "isConstant": false, "isLValue": false, "isPure": false, @@ -3457,25 +3457,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3745, + "id": 2445, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3699, + "referencedDeclaration": 2399, "src": "1673:10:22", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 3747, + "id": 2447, "indexExpression": { "argumentTypes": null, - "id": 3746, + "id": 2446, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3722, + "referencedDeclaration": 2422, "src": "1684:15:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -3498,7 +3498,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "31", - "id": 3748, + "id": 2448, "isConstant": false, "isLValue": false, "isPure": true, @@ -3519,7 +3519,7 @@ "typeString": "uint256" } }, - "id": 3750, + "id": 2450, "nodeType": "ExpressionStatement", "src": "1673:31:22" }, @@ -3532,11 +3532,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3754, + "id": 2454, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3708, + "referencedDeclaration": 2408, "src": "1756:2:22", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3545,11 +3545,11 @@ }, { "argumentTypes": null, - "id": 3755, + "id": 2455, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3710, + "referencedDeclaration": 2410, "src": "1760:5:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3558,11 +3558,11 @@ }, { "argumentTypes": null, - "id": 3756, + "id": 2456, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3712, + "referencedDeclaration": 2412, "src": "1767:4:22", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -3571,11 +3571,11 @@ }, { "argumentTypes": null, - "id": 3757, + "id": 2457, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3714, + "referencedDeclaration": 2414, "src": "1773:9:22", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$29", @@ -3604,32 +3604,32 @@ ], "expression": { "argumentTypes": null, - "id": 3752, + "id": 2452, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1826, + "referencedDeclaration": 878, "src": "1722:7:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } }, - "id": 3753, + "id": 2453, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "execTransactionFromModule", "nodeType": "MemberAccess", - "referencedDeclaration": 2059, + "referencedDeclaration": 1106, "src": "1722:33:22", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" } }, - "id": 3758, + "id": 2458, "isConstant": false, "isLValue": false, "isPure": false, @@ -3646,7 +3646,7 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f742065786563757465207472616e73616374696f6e", - "id": 3759, + "id": 2459, "isConstant": false, "isLValue": false, "isPure": true, @@ -3673,21 +3673,21 @@ "typeString": "literal_string \"Could not execute transaction\"" } ], - "id": 3751, + "id": 2451, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "1714:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3760, + "id": 2460, "isConstant": false, "isLValue": false, "isPure": false, @@ -3701,14 +3701,14 @@ "typeString": "tuple()" } }, - "id": 3761, + "id": 2461, "nodeType": "ExpressionStatement", "src": "1714:103:22" } ] }, "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": 3763, + "id": 2463, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3716,15 +3716,15 @@ "name": "execTransaction", "nodeType": "FunctionDefinition", "parameters": { - "id": 3719, + "id": 2419, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3708, + "id": 2408, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3763, + "scope": 2463, "src": "1224:10:22", "stateVariable": false, "storageLocation": "default", @@ -3733,7 +3733,7 @@ "typeString": "address" }, "typeName": { - "id": 3707, + "id": 2407, "name": "address", "nodeType": "ElementaryTypeName", "src": "1224:7:22", @@ -3747,10 +3747,10 @@ }, { "constant": false, - "id": 3710, + "id": 2410, "name": "value", "nodeType": "VariableDeclaration", - "scope": 3763, + "scope": 2463, "src": "1245:13:22", "stateVariable": false, "storageLocation": "default", @@ -3759,7 +3759,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3709, + "id": 2409, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1245:7:22", @@ -3773,10 +3773,10 @@ }, { "constant": false, - "id": 3712, + "id": 2412, "name": "data", "nodeType": "VariableDeclaration", - "scope": 3763, + "scope": 2463, "src": "1269:10:22", "stateVariable": false, "storageLocation": "default", @@ -3785,7 +3785,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3711, + "id": 2411, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1269:5:22", @@ -3799,10 +3799,10 @@ }, { "constant": false, - "id": 3714, + "id": 2414, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 3763, + "scope": 2463, "src": "1290:24:22", "stateVariable": false, "storageLocation": "default", @@ -3812,7 +3812,7 @@ }, "typeName": { "contractScope": null, - "id": 3713, + "id": 2413, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 29, @@ -3827,10 +3827,10 @@ }, { "constant": false, - "id": 3716, + "id": 2416, "name": "nonce", "nodeType": "VariableDeclaration", - "scope": 3763, + "scope": 2463, "src": "1325:13:22", "stateVariable": false, "storageLocation": "default", @@ -3839,7 +3839,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3715, + "id": 2415, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1325:7:22", @@ -3853,10 +3853,10 @@ }, { "constant": false, - "id": 3718, + "id": 2418, "name": "signatures", "nodeType": "VariableDeclaration", - "scope": 3763, + "scope": 2463, "src": "1348:16:22", "stateVariable": false, "storageLocation": "default", @@ -3865,7 +3865,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3717, + "id": 2417, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1348:5:22", @@ -3882,12 +3882,12 @@ }, "payable": false, "returnParameters": { - "id": 3720, + "id": 2420, "nodeType": "ParameterList", "parameters": [], "src": "1390:0:22" }, - "scope": 3867, + "scope": 2567, "src": "1190:634:22", "stateMutability": "nonpayable", "superFunction": null, @@ -3895,21 +3895,21 @@ }, { "body": { - "id": 3831, + "id": 2531, "nodeType": "Block", "src": "1926:612:22", "statements": [ { "assignments": [ - 3771 + 2471 ], "declarations": [ { "constant": false, - "id": 3771, + "id": 2471, "name": "lastOwner", "nodeType": "VariableDeclaration", - "scope": 3832, + "scope": 2532, "src": "1988:17:22", "stateVariable": false, "storageLocation": "default", @@ -3918,7 +3918,7 @@ "typeString": "address" }, "typeName": { - "id": 3770, + "id": 2470, "name": "address", "nodeType": "ElementaryTypeName", "src": "1988:7:22", @@ -3931,14 +3931,14 @@ "visibility": "internal" } ], - "id": 3775, + "id": 2475, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 3773, + "id": 2473, "isConstant": false, "isLValue": false, "isPure": true, @@ -3961,7 +3961,7 @@ "typeString": "int_const 0" } ], - "id": 3772, + "id": 2472, "isConstant": false, "isLValue": false, "isPure": true, @@ -3974,7 +3974,7 @@ }, "typeName": "address" }, - "id": 3774, + "id": 2474, "isConstant": false, "isLValue": false, "isPure": true, @@ -3996,10 +3996,10 @@ "declarations": [ { "constant": false, - "id": 3777, + "id": 2477, "name": "currentOwner", "nodeType": "VariableDeclaration", - "scope": 3832, + "scope": 2532, "src": "2028:20:22", "stateVariable": false, "storageLocation": "default", @@ -4008,7 +4008,7 @@ "typeString": "address" }, "typeName": { - "id": 3776, + "id": 2476, "name": "address", "nodeType": "ElementaryTypeName", "src": "2028:7:22", @@ -4021,7 +4021,7 @@ "visibility": "internal" } ], - "id": 3778, + "id": 2478, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "2028:20:22" @@ -4031,10 +4031,10 @@ "declarations": [ { "constant": false, - "id": 3780, + "id": 2480, "name": "i", "nodeType": "VariableDeclaration", - "scope": 3832, + "scope": 2532, "src": "2058:9:22", "stateVariable": false, "storageLocation": "default", @@ -4043,7 +4043,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3779, + "id": 2479, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2058:7:22", @@ -4056,22 +4056,22 @@ "visibility": "internal" } ], - "id": 3781, + "id": 2481, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "2058:9:22" }, { "assignments": [ - 3783 + 2483 ], "declarations": [ { "constant": false, - "id": 3783, + "id": 2483, "name": "threshold", "nodeType": "VariableDeclaration", - "scope": 3832, + "scope": 2532, "src": "2077:17:22", "stateVariable": false, "storageLocation": "default", @@ -4080,7 +4080,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3782, + "id": 2482, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2077:7:22", @@ -4093,7 +4093,7 @@ "visibility": "internal" } ], - "id": 3789, + "id": 2489, "initialValue": { "argumentTypes": null, "arguments": [], @@ -4104,14 +4104,14 @@ "arguments": [ { "argumentTypes": null, - "id": 3785, + "id": 2485, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1826, + "referencedDeclaration": 878, "src": "2110:7:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } } @@ -4119,22 +4119,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } ], - "id": 3784, + "id": 2484, "name": "OwnerManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2888, + "referencedDeclaration": 1588, "src": "2097:12:22", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$2888_$", + "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1588_$", "typeString": "type(contract OwnerManager)" } }, - "id": 3786, + "id": 2486, "isConstant": false, "isLValue": false, "isPure": false, @@ -4144,25 +4144,25 @@ "nodeType": "FunctionCall", "src": "2097:21:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$2888", + "typeIdentifier": "t_contract$_OwnerManager_$1588", "typeString": "contract OwnerManager" } }, - "id": 3787, + "id": 2487, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getThreshold", "nodeType": "MemberAccess", - "referencedDeclaration": 2824, + "referencedDeclaration": 1524, "src": "2097:34:22", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 3788, + "id": 2488, "isConstant": false, "isLValue": false, "isPure": false, @@ -4181,25 +4181,25 @@ }, { "body": { - "id": 3829, + "id": 2529, "nodeType": "Block", "src": "2217:315:22", "statements": [ { "expression": { "argumentTypes": null, - "id": 3806, + "id": 2506, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3800, + "id": 2500, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3777, + "referencedDeclaration": 2477, "src": "2231:12:22", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4213,11 +4213,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3802, + "id": 2502, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3765, + "referencedDeclaration": 2465, "src": "2257:15:22", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -4226,11 +4226,11 @@ }, { "argumentTypes": null, - "id": 3803, + "id": 2503, "name": "signatures", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3767, + "referencedDeclaration": 2467, "src": "2274:10:22", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -4239,11 +4239,11 @@ }, { "argumentTypes": null, - "id": 3804, + "id": 2504, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3780, + "referencedDeclaration": 2480, "src": "2286:1:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4266,18 +4266,18 @@ "typeString": "uint256" } ], - "id": 3801, + "id": 2501, "name": "recoverKey", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3105, + "referencedDeclaration": 1805, "src": "2246:10:22", "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": 3805, + "id": 2505, "isConstant": false, "isLValue": false, "isPure": false, @@ -4297,7 +4297,7 @@ "typeString": "address" } }, - "id": 3807, + "id": 2507, "nodeType": "ExpressionStatement", "src": "2231:57:22" }, @@ -4310,11 +4310,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3813, + "id": 2513, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3777, + "referencedDeclaration": 2477, "src": "2340:12:22", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4334,14 +4334,14 @@ "arguments": [ { "argumentTypes": null, - "id": 3810, + "id": 2510, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1826, + "referencedDeclaration": 878, "src": "2323:7:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } } @@ -4349,22 +4349,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } ], - "id": 3809, + "id": 2509, "name": "OwnerManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2888, + "referencedDeclaration": 1588, "src": "2310:12:22", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$2888_$", + "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1588_$", "typeString": "type(contract OwnerManager)" } }, - "id": 3811, + "id": 2511, "isConstant": false, "isLValue": false, "isPure": false, @@ -4374,25 +4374,25 @@ "nodeType": "FunctionCall", "src": "2310:21:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$2888", + "typeIdentifier": "t_contract$_OwnerManager_$1588", "typeString": "contract OwnerManager" } }, - "id": 3812, + "id": 2512, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isOwner", "nodeType": "MemberAccess", - "referencedDeclaration": 2838, + "referencedDeclaration": 1538, "src": "2310:29:22", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view external returns (bool)" } }, - "id": 3814, + "id": 2514, "isConstant": false, "isLValue": false, "isPure": false, @@ -4409,7 +4409,7 @@ { "argumentTypes": null, "hexValue": "5369676e6174757265206e6f742070726f7669646564206279206f776e6572", - "id": 3815, + "id": 2515, "isConstant": false, "isLValue": false, "isPure": true, @@ -4436,21 +4436,21 @@ "typeString": "literal_string \"Signature not provided by owner\"" } ], - "id": 3808, + "id": 2508, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "2302:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3816, + "id": 2516, "isConstant": false, "isLValue": false, "isPure": false, @@ -4464,7 +4464,7 @@ "typeString": "tuple()" } }, - "id": 3817, + "id": 2517, "nodeType": "ExpressionStatement", "src": "2302:87:22" }, @@ -4478,18 +4478,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3821, + "id": 2521, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3819, + "id": 2519, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3777, + "referencedDeclaration": 2477, "src": "2411:12:22", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4500,11 +4500,11 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 3820, + "id": 2520, "name": "lastOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3771, + "referencedDeclaration": 2471, "src": "2426:9:22", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4520,7 +4520,7 @@ { "argumentTypes": null, "hexValue": "5369676e61747572657320617265206e6f74206f726465726564206279206f776e65722061646472657373", - "id": 3822, + "id": 2522, "isConstant": false, "isLValue": false, "isPure": true, @@ -4547,21 +4547,21 @@ "typeString": "literal_string \"Signatures are not ordered by owner address\"" } ], - "id": 3818, + "id": 2518, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "2403:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3823, + "id": 2523, "isConstant": false, "isLValue": false, "isPure": false, @@ -4575,25 +4575,25 @@ "typeString": "tuple()" } }, - "id": 3824, + "id": 2524, "nodeType": "ExpressionStatement", "src": "2403:80:22" }, { "expression": { "argumentTypes": null, - "id": 3827, + "id": 2527, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3825, + "id": 2525, "name": "lastOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3771, + "referencedDeclaration": 2471, "src": "2497:9:22", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4604,11 +4604,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3826, + "id": 2526, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3777, + "referencedDeclaration": 2477, "src": "2509:12:22", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4621,7 +4621,7 @@ "typeString": "address" } }, - "id": 3828, + "id": 2528, "nodeType": "ExpressionStatement", "src": "2497:24:22" } @@ -4633,18 +4633,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3796, + "id": 2496, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3794, + "id": 2494, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3780, + "referencedDeclaration": 2480, "src": "2197:1:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4655,11 +4655,11 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 3795, + "id": 2495, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3783, + "referencedDeclaration": 2483, "src": "2201:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4672,22 +4672,22 @@ "typeString": "bool" } }, - "id": 3830, + "id": 2530, "initializationExpression": { "expression": { "argumentTypes": null, - "id": 3792, + "id": 2492, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3790, + "id": 2490, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3780, + "referencedDeclaration": 2480, "src": "2190:1:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4699,7 +4699,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 3791, + "id": 2491, "isConstant": false, "isLValue": false, "isPure": true, @@ -4720,14 +4720,14 @@ "typeString": "uint256" } }, - "id": 3793, + "id": 2493, "nodeType": "ExpressionStatement", "src": "2190:5:22" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 3798, + "id": 2498, "isConstant": false, "isLValue": false, "isPure": false, @@ -4738,11 +4738,11 @@ "src": "2212:3:22", "subExpression": { "argumentTypes": null, - "id": 3797, + "id": 2497, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3780, + "referencedDeclaration": 2480, "src": "2212:1:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4754,7 +4754,7 @@ "typeString": "uint256" } }, - "id": 3799, + "id": 2499, "nodeType": "ExpressionStatement", "src": "2212:3:22" }, @@ -4764,7 +4764,7 @@ ] }, "documentation": null, - "id": 3832, + "id": 2532, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4772,15 +4772,15 @@ "name": "checkHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 3768, + "id": 2468, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3765, + "id": 2465, "name": "transactionHash", "nodeType": "VariableDeclaration", - "scope": 3832, + "scope": 2532, "src": "1849:23:22", "stateVariable": false, "storageLocation": "default", @@ -4789,7 +4789,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3764, + "id": 2464, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1849:7:22", @@ -4803,10 +4803,10 @@ }, { "constant": false, - "id": 3767, + "id": 2467, "name": "signatures", "nodeType": "VariableDeclaration", - "scope": 3832, + "scope": 2532, "src": "1874:16:22", "stateVariable": false, "storageLocation": "default", @@ -4815,7 +4815,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3766, + "id": 2466, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1874:5:22", @@ -4832,12 +4832,12 @@ }, "payable": false, "returnParameters": { - "id": 3769, + "id": 2469, "nodeType": "ParameterList", "parameters": [], "src": "1926:0:22" }, - "scope": 3867, + "scope": 2567, "src": "1830:708:22", "stateMutability": "view", "superFunction": null, @@ -4845,7 +4845,7 @@ }, { "body": { - "id": 3865, + "id": 2565, "nodeType": "Block", "src": "3032:113:22", "statements": [ @@ -4862,7 +4862,7 @@ { "argumentTypes": null, "hexValue": "30783139", - "id": 3851, + "id": 2551, "isConstant": false, "isLValue": false, "isPure": true, @@ -4885,7 +4885,7 @@ "typeString": "int_const 25" } ], - "id": 3850, + "id": 2550, "isConstant": false, "isLValue": false, "isPure": true, @@ -4898,7 +4898,7 @@ }, "typeName": "byte" }, - "id": 3852, + "id": 2552, "isConstant": false, "isLValue": false, "isPure": true, @@ -4918,7 +4918,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3854, + "id": 2554, "isConstant": false, "isLValue": false, "isPure": true, @@ -4941,7 +4941,7 @@ "typeString": "int_const 0" } ], - "id": 3853, + "id": 2553, "isConstant": false, "isLValue": false, "isPure": true, @@ -4954,7 +4954,7 @@ }, "typeName": "byte" }, - "id": 3855, + "id": 2555, "isConstant": false, "isLValue": false, "isPure": true, @@ -4970,24 +4970,24 @@ }, { "argumentTypes": null, - "id": 3856, + "id": 2556, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4093, + "referencedDeclaration": 3885, "src": "3097:4:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_StateChannelModule_$3867", + "typeIdentifier": "t_contract$_StateChannelModule_$2567", "typeString": "contract StateChannelModule" } }, { "argumentTypes": null, - "id": 3857, + "id": 2557, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3834, + "referencedDeclaration": 2534, "src": "3103:2:22", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4996,11 +4996,11 @@ }, { "argumentTypes": null, - "id": 3858, + "id": 2558, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3836, + "referencedDeclaration": 2536, "src": "3107:5:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5009,11 +5009,11 @@ }, { "argumentTypes": null, - "id": 3859, + "id": 2559, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3838, + "referencedDeclaration": 2538, "src": "3114:4:22", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -5022,11 +5022,11 @@ }, { "argumentTypes": null, - "id": 3860, + "id": 2560, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3840, + "referencedDeclaration": 2540, "src": "3120:9:22", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$29", @@ -5035,11 +5035,11 @@ }, { "argumentTypes": null, - "id": 3861, + "id": 2561, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3842, + "referencedDeclaration": 2542, "src": "3131:5:22", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5058,7 +5058,7 @@ "typeString": "bytes1" }, { - "typeIdentifier": "t_contract$_StateChannelModule_$3867", + "typeIdentifier": "t_contract$_StateChannelModule_$2567", "typeString": "contract StateChannelModule" }, { @@ -5084,18 +5084,18 @@ ], "expression": { "argumentTypes": null, - "id": 3848, + "id": 2548, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4023, + "referencedDeclaration": 3815, "src": "3059:3:22", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 3849, + "id": 2549, "isConstant": false, "isLValue": false, "isPure": true, @@ -5109,7 +5109,7 @@ "typeString": "function () pure returns (bytes memory)" } }, - "id": 3862, + "id": 2562, "isConstant": false, "isLValue": false, "isPure": false, @@ -5131,18 +5131,18 @@ "typeString": "bytes memory" } ], - "id": 3847, + "id": 2547, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4030, + "referencedDeclaration": 3822, "src": "3049:9:22", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 3863, + "id": 2563, "isConstant": false, "isLValue": false, "isPure": false, @@ -5156,15 +5156,15 @@ "typeString": "bytes32" } }, - "functionReturnParameters": 3846, - "id": 3864, + "functionReturnParameters": 2546, + "id": 2564, "nodeType": "Return", "src": "3042:96:22" } ] }, "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": 3866, + "id": 2566, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -5172,15 +5172,15 @@ "name": "getTransactionHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 3843, + "id": 2543, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3834, + "id": 2534, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3866, + "scope": 2566, "src": "2853:10:22", "stateVariable": false, "storageLocation": "default", @@ -5189,7 +5189,7 @@ "typeString": "address" }, "typeName": { - "id": 3833, + "id": 2533, "name": "address", "nodeType": "ElementaryTypeName", "src": "2853:7:22", @@ -5203,10 +5203,10 @@ }, { "constant": false, - "id": 3836, + "id": 2536, "name": "value", "nodeType": "VariableDeclaration", - "scope": 3866, + "scope": 2566, "src": "2874:13:22", "stateVariable": false, "storageLocation": "default", @@ -5215,7 +5215,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3835, + "id": 2535, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2874:7:22", @@ -5229,10 +5229,10 @@ }, { "constant": false, - "id": 3838, + "id": 2538, "name": "data", "nodeType": "VariableDeclaration", - "scope": 3866, + "scope": 2566, "src": "2898:10:22", "stateVariable": false, "storageLocation": "default", @@ -5241,7 +5241,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3837, + "id": 2537, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "2898:5:22", @@ -5255,10 +5255,10 @@ }, { "constant": false, - "id": 3840, + "id": 2540, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 3866, + "scope": 2566, "src": "2919:24:22", "stateVariable": false, "storageLocation": "default", @@ -5268,7 +5268,7 @@ }, "typeName": { "contractScope": null, - "id": 3839, + "id": 2539, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 29, @@ -5283,10 +5283,10 @@ }, { "constant": false, - "id": 3842, + "id": 2542, "name": "nonce", "nodeType": "VariableDeclaration", - "scope": 3866, + "scope": 2566, "src": "2954:13:22", "stateVariable": false, "storageLocation": "default", @@ -5295,7 +5295,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3841, + "id": 2541, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2954:7:22", @@ -5312,15 +5312,15 @@ }, "payable": false, "returnParameters": { - "id": 3846, + "id": 2546, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3845, + "id": 2545, "name": "", "nodeType": "VariableDeclaration", - "scope": 3866, + "scope": 2566, "src": "3019:7:22", "stateVariable": false, "storageLocation": "default", @@ -5329,7 +5329,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3844, + "id": 2544, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "3019:7:22", @@ -5344,14 +5344,14 @@ ], "src": "3018:9:22" }, - "scope": 3867, + "scope": 2567, "src": "2816:329:22", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 3868, + "scope": 2568, "src": "305:2842:22" } ], @@ -5365,28 +5365,16 @@ "4": { "events": {}, "links": {}, - "address": "0x523a2d11c105fb2b1134f21b6ad34dbb62ecad81", - "transactionHash": "0xc0d4a5fa237eb42c04e0fedf0c30a5575a93cd46a78c252ad4972241dc707cfe" - }, - "1530013596495": { - "events": {}, - "links": {}, - "address": "0x700545035d6b441cab5c3da85efc56aa456669c7", - "transactionHash": "0x67c2ddf416ae96a5e4462dfdd4a757761fdf814768df194b1a605aade9e87fdd" - }, - "1530525742205": { - "events": {}, - "links": {}, - "address": "0x4f13491508b380e086b0b359be49dd653e074b69", - "transactionHash": "0xcd7ec6bdcfe68324241f773fb38be11d682a1bcf4a4cce5275c9c485ec56eb09" + "address": "0xc8498fc36e3da3bcbee6e348d6acb3624dd0119f", + "transactionHash": "0x4d6be9fe685a30b2b46da1eb945b622fa6048cedde06881b2e59fee4cf917749" }, - "1530611935189": { + "1534750848541": { "events": {}, "links": {}, - "address": "0x1b7d1c4ec04526ce164d9aa85acf1812c132dedd", - "transactionHash": "0xcd7ec6bdcfe68324241f773fb38be11d682a1bcf4a4cce5275c9c485ec56eb09" + "address": "0x4bf749ec68270027c5910220ceab30cc284c7ba2", + "transactionHash": "0xa6d1215db43b8641bd857b3ac7344524e1ff995d56c7fbebac56235136d8abf6" } }, "schemaVersion": "2.0.0", - "updatedAt": "2018-07-03T09:59:18.528Z" + "updatedAt": "2018-08-20T07:50:29.690Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/WhitelistModule.json b/safe-contracts/build/contracts/WhitelistModule.json index 5ce5be6558..cd0739014e 100644 --- a/safe-contracts/build/contracts/WhitelistModule.json +++ b/safe-contracts/build/contracts/WhitelistModule.json @@ -146,24 +146,24 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50611248806100206000396000f300608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f2f3be11461009e5780633af32abf14610149578063481c6a75146101a45780637de7edef146101fb5780638ab1d6811461023e578063a3f4df7e14610281578063bd5b853b14610311578063e43252d714610377578063ffa1ad74146103ba575b600080fd5b3480156100aa57600080fd5b5061012f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061044a565b604051808215151515815260200191505060405180910390f35b34801561015557600080fd5b5061018a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108c4565b604051808215151515815260200191505060405180910390f35b3480156101b057600080fd5b506101b96108e4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561020757600080fd5b5061023c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061090a565b005b34801561024a57600080fd5b5061027f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aed565b005b34801561028d57600080fd5b50610296610cf4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102d65780820151818401526020810190506102bb565b50505050905090810190601f1680156103035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561031d57600080fd5b5061037560048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610d2d565b005b34801561038357600080fd5b506103b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e59565b005b3480156103c657600080fd5b506103cf6110f0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561040f5780820151818401526020810190506103f4565b50505050905090810190601f16801561043c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561050957600080fd5b505af115801561051d573d6000803e3d6000fd5b505050506040513d602081101561053357600080fd5b810190808051906020019092919050505015156105de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e2081526020017f6f776e657200000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156106c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f546172676574206163636f756e74206973206e6f742077686974656c6973746581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a785858560006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200183600281111561077f57fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b838110156107bf5780820151818401526020810190506107a4565b50505050905090810190601f1680156107ec5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561080e57600080fd5b505af1158015610822573d6000803e3d6000fd5b505050506040513d602081101561083857600080fd5b810190808051906020019092919050505015156108bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f756c64206e6f742065786563757465207472616e73616374696f6e00000081525060200191505060405180910390fd5b9392505050565b60026020528060005260406000206000915054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610aaa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bd8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610c99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4163636f756e74206973206e6f742077686974656c697374656400000000000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040805190810160405280601081526020017f57686974656c697374204d6f64756c650000000000000000000000000000000081525081565b600080610d38611129565b600091505b8251821015610e54578282815181101515610d5457fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614151515610def576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964206163636f756e742070726f7669646564000000000000000081525060200191505060405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508180600101925050610d3d565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f44576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610fd3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964206163636f756e742070726f7669646564000000000000000081525060200191505060405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611095576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4163636f756e7420697320616c72656164792077686974656c6973746564000081525060200191505060405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156111d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505600a165627a7a72305820f7b0f6c9f5aa10563d61c2ce71381d314dc3d82b86d273bfaa866fc47b976f7a0029", - "deployedBytecode": "0x608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f2f3be11461009e5780633af32abf14610149578063481c6a75146101a45780637de7edef146101fb5780638ab1d6811461023e578063a3f4df7e14610281578063bd5b853b14610311578063e43252d714610377578063ffa1ad74146103ba575b600080fd5b3480156100aa57600080fd5b5061012f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061044a565b604051808215151515815260200191505060405180910390f35b34801561015557600080fd5b5061018a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108c4565b604051808215151515815260200191505060405180910390f35b3480156101b057600080fd5b506101b96108e4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561020757600080fd5b5061023c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061090a565b005b34801561024a57600080fd5b5061027f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aed565b005b34801561028d57600080fd5b50610296610cf4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102d65780820151818401526020810190506102bb565b50505050905090810190601f1680156103035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561031d57600080fd5b5061037560048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610d2d565b005b34801561038357600080fd5b506103b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e59565b005b3480156103c657600080fd5b506103cf6110f0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561040f5780820151818401526020810190506103f4565b50505050905090810190601f16801561043c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561050957600080fd5b505af115801561051d573d6000803e3d6000fd5b505050506040513d602081101561053357600080fd5b810190808051906020019092919050505015156105de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e2081526020017f6f776e657200000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156106c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f546172676574206163636f756e74206973206e6f742077686974656c6973746581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a785858560006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200183600281111561077f57fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b838110156107bf5780820151818401526020810190506107a4565b50505050905090810190601f1680156107ec5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561080e57600080fd5b505af1158015610822573d6000803e3d6000fd5b505050506040513d602081101561083857600080fd5b810190808051906020019092919050505015156108bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f756c64206e6f742065786563757465207472616e73616374696f6e00000081525060200191505060405180910390fd5b9392505050565b60026020528060005260406000206000915054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610aaa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bd8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610c99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4163636f756e74206973206e6f742077686974656c697374656400000000000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040805190810160405280601081526020017f57686974656c697374204d6f64756c650000000000000000000000000000000081525081565b600080610d38611129565b600091505b8251821015610e54578282815181101515610d5457fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614151515610def576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964206163636f756e742070726f7669646564000000000000000081525060200191505060405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508180600101925050610d3d565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f44576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610fd3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964206163636f756e742070726f7669646564000000000000000081525060200191505060405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611095576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4163636f756e7420697320616c72656164792077686974656c6973746564000081525060200191505060405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156111d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505600a165627a7a72305820f7b0f6c9f5aa10563d61c2ce71381d314dc3d82b86d273bfaa866fc47b976f7a0029", + "bytecode": "0x608060405234801561001057600080fd5b50611248806100206000396000f300608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f2f3be11461009e5780633af32abf14610149578063481c6a75146101a45780637de7edef146101fb5780638ab1d6811461023e578063a3f4df7e14610281578063bd5b853b14610311578063e43252d714610377578063ffa1ad74146103ba575b600080fd5b3480156100aa57600080fd5b5061012f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061044a565b604051808215151515815260200191505060405180910390f35b34801561015557600080fd5b5061018a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108c4565b604051808215151515815260200191505060405180910390f35b3480156101b057600080fd5b506101b96108e4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561020757600080fd5b5061023c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061090a565b005b34801561024a57600080fd5b5061027f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aed565b005b34801561028d57600080fd5b50610296610cf4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102d65780820151818401526020810190506102bb565b50505050905090810190601f1680156103035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561031d57600080fd5b5061037560048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610d2d565b005b34801561038357600080fd5b506103b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e59565b005b3480156103c657600080fd5b506103cf6110f0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561040f5780820151818401526020810190506103f4565b50505050905090810190601f16801561043c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561050957600080fd5b505af115801561051d573d6000803e3d6000fd5b505050506040513d602081101561053357600080fd5b810190808051906020019092919050505015156105de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e2081526020017f6f776e657200000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156106c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f546172676574206163636f756e74206973206e6f742077686974656c6973746581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a785858560006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200183600281111561077f57fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b838110156107bf5780820151818401526020810190506107a4565b50505050905090810190601f1680156107ec5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561080e57600080fd5b505af1158015610822573d6000803e3d6000fd5b505050506040513d602081101561083857600080fd5b810190808051906020019092919050505015156108bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f756c64206e6f742065786563757465207472616e73616374696f6e00000081525060200191505060405180910390fd5b9392505050565b60026020528060005260406000206000915054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610aaa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bd8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610c99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4163636f756e74206973206e6f742077686974656c697374656400000000000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040805190810160405280601081526020017f57686974656c697374204d6f64756c650000000000000000000000000000000081525081565b600080610d38611129565b600091505b8251821015610e54578282815181101515610d5457fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614151515610def576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964206163636f756e742070726f7669646564000000000000000081525060200191505060405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508180600101925050610d3d565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f44576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610fd3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964206163636f756e742070726f7669646564000000000000000081525060200191505060405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611095576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4163636f756e7420697320616c72656164792077686974656c6973746564000081525060200191505060405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156111d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505600a165627a7a723058205659a70706960385766f28a257121b0b44f23142275b603b9b8983a7d4ae04040029", + "deployedBytecode": "0x608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f2f3be11461009e5780633af32abf14610149578063481c6a75146101a45780637de7edef146101fb5780638ab1d6811461023e578063a3f4df7e14610281578063bd5b853b14610311578063e43252d714610377578063ffa1ad74146103ba575b600080fd5b3480156100aa57600080fd5b5061012f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061044a565b604051808215151515815260200191505060405180910390f35b34801561015557600080fd5b5061018a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108c4565b604051808215151515815260200191505060405180910390f35b3480156101b057600080fd5b506101b96108e4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561020757600080fd5b5061023c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061090a565b005b34801561024a57600080fd5b5061027f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aed565b005b34801561028d57600080fd5b50610296610cf4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102d65780820151818401526020810190506102bb565b50505050905090810190601f1680156103035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561031d57600080fd5b5061037560048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610d2d565b005b34801561038357600080fd5b506103b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e59565b005b3480156103c657600080fd5b506103cf6110f0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561040f5780820151818401526020810190506103f4565b50505050905090810190601f16801561043c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561050957600080fd5b505af115801561051d573d6000803e3d6000fd5b505050506040513d602081101561053357600080fd5b810190808051906020019092919050505015156105de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e2081526020017f6f776e657200000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156106c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f546172676574206163636f756e74206973206e6f742077686974656c6973746581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a785858560006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200183600281111561077f57fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b838110156107bf5780820151818401526020810190506107a4565b50505050905090810190601f1680156107ec5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561080e57600080fd5b505af1158015610822573d6000803e3d6000fd5b505050506040513d602081101561083857600080fd5b810190808051906020019092919050505015156108bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f756c64206e6f742065786563757465207472616e73616374696f6e00000081525060200191505060405180910390fd5b9392505050565b60026020528060005260406000206000915054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610aaa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bd8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610c99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4163636f756e74206973206e6f742077686974656c697374656400000000000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040805190810160405280601081526020017f57686974656c697374204d6f64756c650000000000000000000000000000000081525081565b600080610d38611129565b600091505b8251821015610e54578282815181101515610d5457fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614151515610def576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964206163636f756e742070726f7669646564000000000000000081525060200191505060405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508180600101925050610d3d565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f44576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610fd3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964206163636f756e742070726f7669646564000000000000000081525060200191505060405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611095576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4163636f756e7420697320616c72656164792077686974656c6973746564000081525060200191505060405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156111d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505600a165627a7a723058205659a70706960385766f28a257121b0b44f23142275b603b9b8983a7d4ae04040029", "sourceMap": "289:2199:23:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;289:2199:23;;;;;;;", - "deployedSourceMap": "289:2199:23:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1984:502;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1984:502:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;498:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;498:46:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;262:28:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;262:28:8;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;1528:202:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1528:202:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;331:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;331:48:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;331:48:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;667:298;;8:9:-1;5:2;;;30:1;27;20:12;5:2;667:298:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1114:260;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1114:260:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;385:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;385:40:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;385:40:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1984:502;2083:4;2213:7;;;;;;;;;;;2200:29;;;2230:10;2200:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2200:41:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2200:41:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2200:41:23;;;;;;;;;;;;;;;;2192:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2301:13;:17;2315:2;2301:17;;;;;;;;;;;;;;;;;;;;;;;;;2293:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2374:7;;;;;;;;;;;:33;;;2408:2;2412:5;2419:4;2425:19;2374: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;2374:71:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2374:71:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2374:71:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2374:71:23;;;;;;;;;;;;;;;;2366:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1984:502;;;;;:::o;498:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;262:28:8:-;;;;;;;;;;;;;:::o;626:248:5:-;359:7:8;;;;;;;;;;;337:30;;:10;:30;;;329:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:5;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;1528:202:23:-;359:7:8;;;;;;;;;;;337:30;;:10;:30;;;329:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1630:13:23;:22;1644:7;1630:22;;;;;;;;;;;;;;;;;;;;;;;;;1622:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1718:5;1693:13;:22;1707:7;1693:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;1528:202;:::o;331:48::-;;;;;;;;;;;;;;;;;;;;:::o;667:298::-;758:9;813:15;731:12;:10;:12::i;:::-;770:1;758:13;;753:206;777:8;:15;773:1;:19;753:206;;;831:8;840:1;831:11;;;;;;;;;;;;;;;;;;813:29;;875:1;864:7;:12;;;;856:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;944:4;919:13;:22;933:7;919:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;794:3;;;;;;;753:206;;;667:298;;;:::o;1114:260::-;359:7:8;;;;;;;;;;;337:30;;:10;:30;;;329:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1222:1:23;1211:7;:12;;;;1203:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1271:13;:22;1285:7;1271:22;;;;;;;;;;;;;;;;;;;;;;;;;1270:23;1262:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1363:4;1338:13;:22;1352:7;1338:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;1114:260;:::o;385:40::-;;;;;;;;;;;;;;;;;;;;:::o;434:300:8:-;648:1;636:7;;;;;;;;;;;628:21;;;620:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;716:10;692:7;;:35;;;;;;;;;;;;;;;;;;434:300::o", + "deployedSourceMap": "289:2199:23:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1984:502;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1984:502:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;498:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;498:46:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;262:28:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;262:28:9;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;1528:202:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1528:202:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;331:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;331:48:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;331:48:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;667:298;;8:9:-1;5:2;;;30:1;27;20:12;5:2;667:298:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1114:260;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1114:260:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;385:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;385:40:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;385:40:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1984:502;2083:4;2213:7;;;;;;;;;;;2200:29;;;2230:10;2200:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2200:41:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2200:41:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2200:41:23;;;;;;;;;;;;;;;;2192:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2301:13;:17;2315:2;2301:17;;;;;;;;;;;;;;;;;;;;;;;;;2293:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2374:7;;;;;;;;;;;:33;;;2408:2;2412:5;2419:4;2425:19;2374: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;2374:71:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2374:71:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2374:71:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2374:71:23;;;;;;;;;;;;;;;;2366:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1984:502;;;;;:::o;498:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;262:28:9:-;;;;;;;;;;;;;:::o;626:248:7:-;359:7:9;;;;;;;;;;;337:30;;:10;:30;;;329:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:7;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;1528:202:23:-;359:7:9;;;;;;;;;;;337:30;;:10;:30;;;329:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1630:13:23;:22;1644:7;1630:22;;;;;;;;;;;;;;;;;;;;;;;;;1622:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1718:5;1693:13;:22;1707:7;1693:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;1528:202;:::o;331:48::-;;;;;;;;;;;;;;;;;;;;:::o;667:298::-;758:9;813:15;731:12;:10;:12::i;:::-;770:1;758:13;;753:206;777:8;:15;773:1;:19;753:206;;;831:8;840:1;831:11;;;;;;;;;;;;;;;;;;813:29;;875:1;864:7;:12;;;;856:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;944:4;919:13;:22;933:7;919:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;794:3;;;;;;;753:206;;;667:298;;;:::o;1114:260::-;359:7:9;;;;;;;;;;;337:30;;:10;:30;;;329:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1222:1:23;1211:7;:12;;;;1203:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1271:13;:22;1285:7;1271:22;;;;;;;;;;;;;;;;;;;;;;;;;1270:23;1262:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1363:4;1338:13;:22;1352:7;1338:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;1114:260;:::o;385:40::-;;;;;;;;;;;;;;;;;;;;:::o;434:300:9:-;648:1;636:7;;;;;;;;;;;628:21;;;620:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;716:10;692:7;;:35;;;;;;;;;;;;;;;;;;434:300::o", "source": "pragma solidity 0.4.24;\nimport \"../Enum.sol\";\nimport \"../Module.sol\";\nimport \"../ModuleManager.sol\";\nimport \"../OwnerManager.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.1\";\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": [ - 4021 + 2721 ] }, - "id": 4022, + "id": 2722, "nodeType": "SourceUnit", "nodes": [ { - "id": 3869, + "id": 2569, "literals": [ "solidity", "0.4", @@ -175,9 +175,9 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", "file": "../Enum.sol", - "id": 3870, + "id": 2570, "nodeType": "ImportDirective", - "scope": 4022, + "scope": 2722, "sourceUnit": 31, "src": "24:21:23", "symbolAliases": [], @@ -186,10 +186,10 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", "file": "../Module.sol", - "id": 3871, + "id": 2571, "nodeType": "ImportDirective", - "scope": 4022, - "sourceUnit": 1862, + "scope": 2722, + "sourceUnit": 914, "src": "46:23:23", "symbolAliases": [], "unitAlias": "" @@ -197,10 +197,10 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", "file": "../ModuleManager.sol", - "id": 3872, + "id": 2572, "nodeType": "ImportDirective", - "scope": 4022, - "sourceUnit": 2233, + "scope": 2722, + "sourceUnit": 1181, "src": "70:30:23", "symbolAliases": [], "unitAlias": "" @@ -208,10 +208,10 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", "file": "../OwnerManager.sol", - "id": 3873, + "id": 2573, "nodeType": "ImportDirective", - "scope": 4022, - "sourceUnit": 2889, + "scope": 2722, + "sourceUnit": 1589, "src": "101:29:23", "symbolAliases": [], "unitAlias": "" @@ -222,45 +222,45 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 3874, + "id": 2574, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1861, + "referencedDeclaration": 913, "src": "317:6:23", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" } }, - "id": 3875, + "id": 2575, "nodeType": "InheritanceSpecifier", "src": "317:6:23" } ], "contractDependencies": [ - 632, - 1861, - 3065 + 813, + 913, + 1765 ], "contractKind": "contract", "documentation": "@title Whitelist Module - Allows to execute transactions to whitelisted addresses without confirmations.\n @author Stefan George - ", "fullyImplemented": true, - "id": 4021, + "id": 2721, "linearizedBaseContracts": [ - 4021, - 1861, - 632, - 3065 + 2721, + 913, + 813, + 1765 ], "name": "WhitelistModule", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 3878, + "id": 2578, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 4021, + "scope": 2721, "src": "331:48:23", "stateVariable": true, "storageLocation": "default", @@ -269,7 +269,7 @@ "typeString": "string" }, "typeName": { - "id": 3876, + "id": 2576, "name": "string", "nodeType": "ElementaryTypeName", "src": "331:6:23", @@ -281,7 +281,7 @@ "value": { "argumentTypes": null, "hexValue": "57686974656c697374204d6f64756c65", - "id": 3877, + "id": 2577, "isConstant": false, "isLValue": false, "isPure": true, @@ -300,10 +300,10 @@ }, { "constant": true, - "id": 3881, + "id": 2581, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 4021, + "scope": 2721, "src": "385:40:23", "stateVariable": true, "storageLocation": "default", @@ -312,7 +312,7 @@ "typeString": "string" }, "typeName": { - "id": 3879, + "id": 2579, "name": "string", "nodeType": "ElementaryTypeName", "src": "385:6:23", @@ -324,7 +324,7 @@ "value": { "argumentTypes": null, "hexValue": "302e302e31", - "id": 3880, + "id": 2580, "isConstant": false, "isLValue": false, "isPure": true, @@ -343,10 +343,10 @@ }, { "constant": false, - "id": 3885, + "id": 2585, "name": "isWhitelisted", "nodeType": "VariableDeclaration", - "scope": 4021, + "scope": 2721, "src": "498:46:23", "stateVariable": true, "storageLocation": "default", @@ -355,9 +355,9 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 3884, + "id": 2584, "keyType": { - "id": 3882, + "id": 2582, "name": "address", "nodeType": "ElementaryTypeName", "src": "507:7:23", @@ -373,7 +373,7 @@ "typeString": "mapping(address => bool)" }, "valueType": { - "id": 3883, + "id": 2583, "name": "bool", "nodeType": "ElementaryTypeName", "src": "518:4:23", @@ -388,7 +388,7 @@ }, { "body": { - "id": 3926, + "id": 2626, "nodeType": "Block", "src": "721:244:23", "statements": [ @@ -398,18 +398,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 3891, + "id": 2591, "name": "setManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1860, + "referencedDeclaration": 912, "src": "731:10:23", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 3892, + "id": 2592, "isConstant": false, "isLValue": false, "isPure": false, @@ -423,27 +423,27 @@ "typeString": "tuple()" } }, - "id": 3893, + "id": 2593, "nodeType": "ExpressionStatement", "src": "731:12:23" }, { "body": { - "id": 3924, + "id": 2624, "nodeType": "Block", "src": "799:160:23", "statements": [ { "assignments": [ - 3906 + 2606 ], "declarations": [ { "constant": false, - "id": 3906, + "id": 2606, "name": "account", "nodeType": "VariableDeclaration", - "scope": 3927, + "scope": 2627, "src": "813:15:23", "stateVariable": false, "storageLocation": "default", @@ -452,7 +452,7 @@ "typeString": "address" }, "typeName": { - "id": 3905, + "id": 2605, "name": "address", "nodeType": "ElementaryTypeName", "src": "813:7:23", @@ -465,30 +465,30 @@ "visibility": "internal" } ], - "id": 3910, + "id": 2610, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3907, + "id": 2607, "name": "accounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3888, + "referencedDeclaration": 2588, "src": "831:8:23", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 3909, + "id": 2609, "indexExpression": { "argumentTypes": null, - "id": 3908, + "id": 2608, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3895, + "referencedDeclaration": 2595, "src": "840:1:23", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -519,18 +519,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3914, + "id": 2614, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3912, + "id": 2612, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3906, + "referencedDeclaration": 2606, "src": "864:7:23", "typeDescriptions": { "typeIdentifier": "t_address", @@ -542,7 +542,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3913, + "id": 2613, "isConstant": false, "isLValue": false, "isPure": true, @@ -566,7 +566,7 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206163636f756e742070726f7669646564", - "id": 3915, + "id": 2615, "isConstant": false, "isLValue": false, "isPure": true, @@ -593,21 +593,21 @@ "typeString": "literal_string \"Invalid account provided\"" } ], - "id": 3911, + "id": 2611, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "856:7:23", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3916, + "id": 2616, "isConstant": false, "isLValue": false, "isPure": false, @@ -621,14 +621,14 @@ "typeString": "tuple()" } }, - "id": 3917, + "id": 2617, "nodeType": "ExpressionStatement", "src": "856:49:23" }, { "expression": { "argumentTypes": null, - "id": 3922, + "id": 2622, "isConstant": false, "isLValue": false, "isPure": false, @@ -637,25 +637,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3918, + "id": 2618, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3885, + "referencedDeclaration": 2585, "src": "919:13:23", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 3920, + "id": 2620, "indexExpression": { "argumentTypes": null, - "id": 3919, + "id": 2619, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3906, + "referencedDeclaration": 2606, "src": "933:7:23", "typeDescriptions": { "typeIdentifier": "t_address", @@ -678,7 +678,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 3921, + "id": 2621, "isConstant": false, "isLValue": false, "isPure": true, @@ -699,7 +699,7 @@ "typeString": "bool" } }, - "id": 3923, + "id": 2623, "nodeType": "ExpressionStatement", "src": "919:29:23" } @@ -711,18 +711,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3901, + "id": 2601, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3898, + "id": 2598, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3895, + "referencedDeclaration": 2595, "src": "773:1:23", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -735,18 +735,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3899, + "id": 2599, "name": "accounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3888, + "referencedDeclaration": 2588, "src": "777:8:23", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 3900, + "id": 2600, "isConstant": false, "isLValue": false, "isPure": false, @@ -766,18 +766,18 @@ "typeString": "bool" } }, - "id": 3925, + "id": 2625, "initializationExpression": { "assignments": [ - 3895 + 2595 ], "declarations": [ { "constant": false, - "id": 3895, + "id": 2595, "name": "i", "nodeType": "VariableDeclaration", - "scope": 3927, + "scope": 2627, "src": "758:9:23", "stateVariable": false, "storageLocation": "default", @@ -786,7 +786,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3894, + "id": 2594, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "758:7:23", @@ -799,11 +799,11 @@ "visibility": "internal" } ], - "id": 3897, + "id": 2597, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 3896, + "id": 2596, "isConstant": false, "isLValue": false, "isPure": true, @@ -824,7 +824,7 @@ "loopExpression": { "expression": { "argumentTypes": null, - "id": 3903, + "id": 2603, "isConstant": false, "isLValue": false, "isPure": false, @@ -835,11 +835,11 @@ "src": "794:3:23", "subExpression": { "argumentTypes": null, - "id": 3902, + "id": 2602, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3895, + "referencedDeclaration": 2595, "src": "794:1:23", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -851,7 +851,7 @@ "typeString": "uint256" } }, - "id": 3904, + "id": 2604, "nodeType": "ExpressionStatement", "src": "794:3:23" }, @@ -861,7 +861,7 @@ ] }, "documentation": "@dev Setup function sets initial storage of contract.\n @param accounts List of whitelisted accounts.", - "id": 3927, + "id": 2627, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -869,15 +869,15 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 3889, + "id": 2589, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3888, + "id": 2588, "name": "accounts", "nodeType": "VariableDeclaration", - "scope": 3927, + "scope": 2627, "src": "682:18:23", "stateVariable": false, "storageLocation": "default", @@ -887,7 +887,7 @@ }, "typeName": { "baseType": { - "id": 3886, + "id": 2586, "name": "address", "nodeType": "ElementaryTypeName", "src": "682:7:23", @@ -896,7 +896,7 @@ "typeString": "address" } }, - "id": 3887, + "id": 2587, "length": null, "nodeType": "ArrayTypeName", "src": "682:9:23", @@ -913,12 +913,12 @@ }, "payable": false, "returnParameters": { - "id": 3890, + "id": 2590, "nodeType": "ParameterList", "parameters": [], "src": "721:0:23" }, - "scope": 4021, + "scope": 2721, "src": "667:298:23", "stateMutability": "nonpayable", "superFunction": null, @@ -926,7 +926,7 @@ }, { "body": { - "id": 3955, + "id": 2655, "nodeType": "Block", "src": "1193:181:23", "statements": [ @@ -940,18 +940,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3937, + "id": 2637, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3935, + "id": 2635, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3929, + "referencedDeclaration": 2629, "src": "1211:7:23", "typeDescriptions": { "typeIdentifier": "t_address", @@ -963,7 +963,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3936, + "id": 2636, "isConstant": false, "isLValue": false, "isPure": true, @@ -987,7 +987,7 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206163636f756e742070726f7669646564", - "id": 3938, + "id": 2638, "isConstant": false, "isLValue": false, "isPure": true, @@ -1014,21 +1014,21 @@ "typeString": "literal_string \"Invalid account provided\"" } ], - "id": 3934, + "id": 2634, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "1203:7:23", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3939, + "id": 2639, "isConstant": false, "isLValue": false, "isPure": false, @@ -1042,7 +1042,7 @@ "typeString": "tuple()" } }, - "id": 3940, + "id": 2640, "nodeType": "ExpressionStatement", "src": "1203:49:23" }, @@ -1052,7 +1052,7 @@ "arguments": [ { "argumentTypes": null, - "id": 3945, + "id": 2645, "isConstant": false, "isLValue": false, "isPure": false, @@ -1065,25 +1065,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3942, + "id": 2642, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3885, + "referencedDeclaration": 2585, "src": "1271:13:23", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 3944, + "id": 2644, "indexExpression": { "argumentTypes": null, - "id": 3943, + "id": 2643, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3929, + "referencedDeclaration": 2629, "src": "1285:7:23", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1109,7 +1109,7 @@ { "argumentTypes": null, "hexValue": "4163636f756e7420697320616c72656164792077686974656c6973746564", - "id": 3946, + "id": 2646, "isConstant": false, "isLValue": false, "isPure": true, @@ -1136,21 +1136,21 @@ "typeString": "literal_string \"Account is already whitelisted\"" } ], - "id": 3941, + "id": 2641, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "1262:7:23", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3947, + "id": 2647, "isConstant": false, "isLValue": false, "isPure": false, @@ -1164,14 +1164,14 @@ "typeString": "tuple()" } }, - "id": 3948, + "id": 2648, "nodeType": "ExpressionStatement", "src": "1262:66:23" }, { "expression": { "argumentTypes": null, - "id": 3953, + "id": 2653, "isConstant": false, "isLValue": false, "isPure": false, @@ -1180,25 +1180,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3949, + "id": 2649, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3885, + "referencedDeclaration": 2585, "src": "1338:13:23", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 3951, + "id": 2651, "indexExpression": { "argumentTypes": null, - "id": 3950, + "id": 2650, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3929, + "referencedDeclaration": 2629, "src": "1352:7:23", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1221,7 +1221,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 3952, + "id": 2652, "isConstant": false, "isLValue": false, "isPure": true, @@ -1242,28 +1242,28 @@ "typeString": "bool" } }, - "id": 3954, + "id": 2654, "nodeType": "ExpressionStatement", "src": "1338:29:23" } ] }, "documentation": "@dev Allows to add destination to whitelist. This can only be done via a Safe transaction.\n @param account Destination address.", - "id": 3956, + "id": 2656, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 3932, + "id": 2632, "modifierName": { "argumentTypes": null, - "id": 3931, + "id": 2631, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1840, + "referencedDeclaration": 892, "src": "1178:10:23", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -1277,15 +1277,15 @@ "name": "addToWhitelist", "nodeType": "FunctionDefinition", "parameters": { - "id": 3930, + "id": 2630, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3929, + "id": 2629, "name": "account", "nodeType": "VariableDeclaration", - "scope": 3956, + "scope": 2656, "src": "1138:15:23", "stateVariable": false, "storageLocation": "default", @@ -1294,7 +1294,7 @@ "typeString": "address" }, "typeName": { - "id": 3928, + "id": 2628, "name": "address", "nodeType": "ElementaryTypeName", "src": "1138:7:23", @@ -1311,12 +1311,12 @@ }, "payable": false, "returnParameters": { - "id": 3933, + "id": 2633, "nodeType": "ParameterList", "parameters": [], "src": "1193:0:23" }, - "scope": 4021, + "scope": 2721, "src": "1114:260:23", "stateMutability": "nonpayable", "superFunction": null, @@ -1324,7 +1324,7 @@ }, { "body": { - "id": 3976, + "id": 2676, "nodeType": "Block", "src": "1612:118:23", "statements": [ @@ -1336,25 +1336,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3964, + "id": 2664, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3885, + "referencedDeclaration": 2585, "src": "1630:13:23", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 3966, + "id": 2666, "indexExpression": { "argumentTypes": null, - "id": 3965, + "id": 2665, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3958, + "referencedDeclaration": 2658, "src": "1644:7:23", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1375,7 +1375,7 @@ { "argumentTypes": null, "hexValue": "4163636f756e74206973206e6f742077686974656c6973746564", - "id": 3967, + "id": 2667, "isConstant": false, "isLValue": false, "isPure": true, @@ -1402,21 +1402,21 @@ "typeString": "literal_string \"Account is not whitelisted\"" } ], - "id": 3963, + "id": 2663, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "1622:7:23", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3968, + "id": 2668, "isConstant": false, "isLValue": false, "isPure": false, @@ -1430,14 +1430,14 @@ "typeString": "tuple()" } }, - "id": 3969, + "id": 2669, "nodeType": "ExpressionStatement", "src": "1622:61:23" }, { "expression": { "argumentTypes": null, - "id": 3974, + "id": 2674, "isConstant": false, "isLValue": false, "isPure": false, @@ -1446,25 +1446,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3970, + "id": 2670, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3885, + "referencedDeclaration": 2585, "src": "1693:13:23", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 3972, + "id": 2672, "indexExpression": { "argumentTypes": null, - "id": 3971, + "id": 2671, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3958, + "referencedDeclaration": 2658, "src": "1707:7:23", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1487,7 +1487,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 3973, + "id": 2673, "isConstant": false, "isLValue": false, "isPure": true, @@ -1508,28 +1508,28 @@ "typeString": "bool" } }, - "id": 3975, + "id": 2675, "nodeType": "ExpressionStatement", "src": "1693:30:23" } ] }, "documentation": "@dev Allows to remove destination from whitelist. This can only be done via a Safe transaction.\n @param account Destination address.", - "id": 3977, + "id": 2677, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 3961, + "id": 2661, "modifierName": { "argumentTypes": null, - "id": 3960, + "id": 2660, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1840, + "referencedDeclaration": 892, "src": "1597:10:23", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -1543,15 +1543,15 @@ "name": "removeFromWhitelist", "nodeType": "FunctionDefinition", "parameters": { - "id": 3959, + "id": 2659, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3958, + "id": 2658, "name": "account", "nodeType": "VariableDeclaration", - "scope": 3977, + "scope": 2677, "src": "1557:15:23", "stateVariable": false, "storageLocation": "default", @@ -1560,7 +1560,7 @@ "typeString": "address" }, "typeName": { - "id": 3957, + "id": 2657, "name": "address", "nodeType": "ElementaryTypeName", "src": "1557:7:23", @@ -1577,12 +1577,12 @@ }, "payable": false, "returnParameters": { - "id": 3962, + "id": 2662, "nodeType": "ParameterList", "parameters": [], "src": "1612:0:23" }, - "scope": 4021, + "scope": 2721, "src": "1528:202:23", "stateMutability": "nonpayable", "superFunction": null, @@ -1590,7 +1590,7 @@ }, { "body": { - "id": 4019, + "id": 2719, "nodeType": "Block", "src": "2093:393:23", "statements": [ @@ -1605,18 +1605,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3993, + "id": 2693, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4036, + "referencedDeclaration": 3828, "src": "2230:3:23", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3994, + "id": 2694, "isConstant": false, "isLValue": false, "isPure": false, @@ -1643,14 +1643,14 @@ "arguments": [ { "argumentTypes": null, - "id": 3990, + "id": 2690, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1826, + "referencedDeclaration": 878, "src": "2213:7:23", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } } @@ -1658,22 +1658,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } ], - "id": 3989, + "id": 2689, "name": "OwnerManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2888, + "referencedDeclaration": 1588, "src": "2200:12:23", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$2888_$", + "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1588_$", "typeString": "type(contract OwnerManager)" } }, - "id": 3991, + "id": 2691, "isConstant": false, "isLValue": false, "isPure": false, @@ -1683,25 +1683,25 @@ "nodeType": "FunctionCall", "src": "2200:21:23", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$2888", + "typeIdentifier": "t_contract$_OwnerManager_$1588", "typeString": "contract OwnerManager" } }, - "id": 3992, + "id": 2692, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isOwner", "nodeType": "MemberAccess", - "referencedDeclaration": 2838, + "referencedDeclaration": 1538, "src": "2200:29:23", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view external returns (bool)" } }, - "id": 3995, + "id": 2695, "isConstant": false, "isLValue": false, "isPure": false, @@ -1718,7 +1718,7 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e206f776e6572", - "id": 3996, + "id": 2696, "isConstant": false, "isLValue": false, "isPure": true, @@ -1745,21 +1745,21 @@ "typeString": "literal_string \"Method can only be called by an owner\"" } ], - "id": 3988, + "id": 2688, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "2192:7:23", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3997, + "id": 2697, "isConstant": false, "isLValue": false, "isPure": false, @@ -1773,7 +1773,7 @@ "typeString": "tuple()" } }, - "id": 3998, + "id": 2698, "nodeType": "ExpressionStatement", "src": "2192:91:23" }, @@ -1785,25 +1785,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 4000, + "id": 2700, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3885, + "referencedDeclaration": 2585, "src": "2301:13:23", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 4002, + "id": 2702, "indexExpression": { "argumentTypes": null, - "id": 4001, + "id": 2701, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3979, + "referencedDeclaration": 2679, "src": "2315:2:23", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1824,7 +1824,7 @@ { "argumentTypes": null, "hexValue": "546172676574206163636f756e74206973206e6f742077686974656c6973746564", - "id": 4003, + "id": 2703, "isConstant": false, "isLValue": false, "isPure": true, @@ -1851,21 +1851,21 @@ "typeString": "literal_string \"Target account is not whitelisted\"" } ], - "id": 3999, + "id": 2699, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "2293:7:23", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 4004, + "id": 2704, "isConstant": false, "isLValue": false, "isPure": false, @@ -1879,7 +1879,7 @@ "typeString": "tuple()" } }, - "id": 4005, + "id": 2705, "nodeType": "ExpressionStatement", "src": "2293:63:23" }, @@ -1892,11 +1892,11 @@ "arguments": [ { "argumentTypes": null, - "id": 4009, + "id": 2709, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3979, + "referencedDeclaration": 2679, "src": "2408:2:23", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1905,11 +1905,11 @@ }, { "argumentTypes": null, - "id": 4010, + "id": 2710, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3981, + "referencedDeclaration": 2681, "src": "2412:5:23", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1918,11 +1918,11 @@ }, { "argumentTypes": null, - "id": 4011, + "id": 2711, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3983, + "referencedDeclaration": 2683, "src": "2419:4:23", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -1935,7 +1935,7 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4012, + "id": 2712, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -1946,7 +1946,7 @@ "typeString": "type(contract Enum)" } }, - "id": 4013, + "id": 2713, "isConstant": false, "isLValue": false, "isPure": false, @@ -1960,7 +1960,7 @@ "typeString": "type(enum Enum.Operation)" } }, - "id": 4014, + "id": 2714, "isConstant": false, "isLValue": false, "isPure": true, @@ -1996,32 +1996,32 @@ ], "expression": { "argumentTypes": null, - "id": 4007, + "id": 2707, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1826, + "referencedDeclaration": 878, "src": "2374:7:23", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } }, - "id": 4008, + "id": 2708, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "execTransactionFromModule", "nodeType": "MemberAccess", - "referencedDeclaration": 2059, + "referencedDeclaration": 1106, "src": "2374:33:23", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" } }, - "id": 4015, + "id": 2715, "isConstant": false, "isLValue": false, "isPure": false, @@ -2038,7 +2038,7 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f742065786563757465207472616e73616374696f6e", - "id": 4016, + "id": 2716, "isConstant": false, "isLValue": false, "isPure": true, @@ -2065,21 +2065,21 @@ "typeString": "literal_string \"Could not execute transaction\"" } ], - "id": 4006, + "id": 2706, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "2366:7:23", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 4017, + "id": 2717, "isConstant": false, "isLValue": false, "isPure": false, @@ -2093,14 +2093,14 @@ "typeString": "tuple()" } }, - "id": 4018, + "id": 2718, "nodeType": "ExpressionStatement", "src": "2366:113:23" } ] }, "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": 4020, + "id": 2720, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2108,15 +2108,15 @@ "name": "executeWhitelisted", "nodeType": "FunctionDefinition", "parameters": { - "id": 3984, + "id": 2684, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3979, + "id": 2679, "name": "to", "nodeType": "VariableDeclaration", - "scope": 4020, + "scope": 2720, "src": "2012:10:23", "stateVariable": false, "storageLocation": "default", @@ -2125,7 +2125,7 @@ "typeString": "address" }, "typeName": { - "id": 3978, + "id": 2678, "name": "address", "nodeType": "ElementaryTypeName", "src": "2012:7:23", @@ -2139,10 +2139,10 @@ }, { "constant": false, - "id": 3981, + "id": 2681, "name": "value", "nodeType": "VariableDeclaration", - "scope": 4020, + "scope": 2720, "src": "2024:13:23", "stateVariable": false, "storageLocation": "default", @@ -2151,7 +2151,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3980, + "id": 2680, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2024:7:23", @@ -2165,10 +2165,10 @@ }, { "constant": false, - "id": 3983, + "id": 2683, "name": "data", "nodeType": "VariableDeclaration", - "scope": 4020, + "scope": 2720, "src": "2039:10:23", "stateVariable": false, "storageLocation": "default", @@ -2177,7 +2177,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3982, + "id": 2682, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "2039:5:23", @@ -2194,15 +2194,15 @@ }, "payable": false, "returnParameters": { - "id": 3987, + "id": 2687, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3986, + "id": 2686, "name": "", "nodeType": "VariableDeclaration", - "scope": 4020, + "scope": 2720, "src": "2083:4:23", "stateVariable": false, "storageLocation": "default", @@ -2211,7 +2211,7 @@ "typeString": "bool" }, "typeName": { - "id": 3985, + "id": 2685, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2083:4:23", @@ -2226,14 +2226,14 @@ ], "src": "2082:6:23" }, - "scope": 4021, + "scope": 2721, "src": "1984:502:23", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 4022, + "scope": 2722, "src": "289:2199:23" } ], @@ -2243,14 +2243,14 @@ "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/WhitelistModule.sol", "exportedSymbols": { "WhitelistModule": [ - 4021 + 2721 ] }, - "id": 4022, + "id": 2722, "nodeType": "SourceUnit", "nodes": [ { - "id": 3869, + "id": 2569, "literals": [ "solidity", "0.4", @@ -2262,9 +2262,9 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", "file": "../Enum.sol", - "id": 3870, + "id": 2570, "nodeType": "ImportDirective", - "scope": 4022, + "scope": 2722, "sourceUnit": 31, "src": "24:21:23", "symbolAliases": [], @@ -2273,10 +2273,10 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", "file": "../Module.sol", - "id": 3871, + "id": 2571, "nodeType": "ImportDirective", - "scope": 4022, - "sourceUnit": 1862, + "scope": 2722, + "sourceUnit": 914, "src": "46:23:23", "symbolAliases": [], "unitAlias": "" @@ -2284,10 +2284,10 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", "file": "../ModuleManager.sol", - "id": 3872, + "id": 2572, "nodeType": "ImportDirective", - "scope": 4022, - "sourceUnit": 2233, + "scope": 2722, + "sourceUnit": 1181, "src": "70:30:23", "symbolAliases": [], "unitAlias": "" @@ -2295,10 +2295,10 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", "file": "../OwnerManager.sol", - "id": 3873, + "id": 2573, "nodeType": "ImportDirective", - "scope": 4022, - "sourceUnit": 2889, + "scope": 2722, + "sourceUnit": 1589, "src": "101:29:23", "symbolAliases": [], "unitAlias": "" @@ -2309,45 +2309,45 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 3874, + "id": 2574, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1861, + "referencedDeclaration": 913, "src": "317:6:23", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1861", + "typeIdentifier": "t_contract$_Module_$913", "typeString": "contract Module" } }, - "id": 3875, + "id": 2575, "nodeType": "InheritanceSpecifier", "src": "317:6:23" } ], "contractDependencies": [ - 632, - 1861, - 3065 + 813, + 913, + 1765 ], "contractKind": "contract", "documentation": "@title Whitelist Module - Allows to execute transactions to whitelisted addresses without confirmations.\n @author Stefan George - ", "fullyImplemented": true, - "id": 4021, + "id": 2721, "linearizedBaseContracts": [ - 4021, - 1861, - 632, - 3065 + 2721, + 913, + 813, + 1765 ], "name": "WhitelistModule", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 3878, + "id": 2578, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 4021, + "scope": 2721, "src": "331:48:23", "stateVariable": true, "storageLocation": "default", @@ -2356,7 +2356,7 @@ "typeString": "string" }, "typeName": { - "id": 3876, + "id": 2576, "name": "string", "nodeType": "ElementaryTypeName", "src": "331:6:23", @@ -2368,7 +2368,7 @@ "value": { "argumentTypes": null, "hexValue": "57686974656c697374204d6f64756c65", - "id": 3877, + "id": 2577, "isConstant": false, "isLValue": false, "isPure": true, @@ -2387,10 +2387,10 @@ }, { "constant": true, - "id": 3881, + "id": 2581, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 4021, + "scope": 2721, "src": "385:40:23", "stateVariable": true, "storageLocation": "default", @@ -2399,7 +2399,7 @@ "typeString": "string" }, "typeName": { - "id": 3879, + "id": 2579, "name": "string", "nodeType": "ElementaryTypeName", "src": "385:6:23", @@ -2411,7 +2411,7 @@ "value": { "argumentTypes": null, "hexValue": "302e302e31", - "id": 3880, + "id": 2580, "isConstant": false, "isLValue": false, "isPure": true, @@ -2430,10 +2430,10 @@ }, { "constant": false, - "id": 3885, + "id": 2585, "name": "isWhitelisted", "nodeType": "VariableDeclaration", - "scope": 4021, + "scope": 2721, "src": "498:46:23", "stateVariable": true, "storageLocation": "default", @@ -2442,9 +2442,9 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 3884, + "id": 2584, "keyType": { - "id": 3882, + "id": 2582, "name": "address", "nodeType": "ElementaryTypeName", "src": "507:7:23", @@ -2460,7 +2460,7 @@ "typeString": "mapping(address => bool)" }, "valueType": { - "id": 3883, + "id": 2583, "name": "bool", "nodeType": "ElementaryTypeName", "src": "518:4:23", @@ -2475,7 +2475,7 @@ }, { "body": { - "id": 3926, + "id": 2626, "nodeType": "Block", "src": "721:244:23", "statements": [ @@ -2485,18 +2485,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 3891, + "id": 2591, "name": "setManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1860, + "referencedDeclaration": 912, "src": "731:10:23", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 3892, + "id": 2592, "isConstant": false, "isLValue": false, "isPure": false, @@ -2510,27 +2510,27 @@ "typeString": "tuple()" } }, - "id": 3893, + "id": 2593, "nodeType": "ExpressionStatement", "src": "731:12:23" }, { "body": { - "id": 3924, + "id": 2624, "nodeType": "Block", "src": "799:160:23", "statements": [ { "assignments": [ - 3906 + 2606 ], "declarations": [ { "constant": false, - "id": 3906, + "id": 2606, "name": "account", "nodeType": "VariableDeclaration", - "scope": 3927, + "scope": 2627, "src": "813:15:23", "stateVariable": false, "storageLocation": "default", @@ -2539,7 +2539,7 @@ "typeString": "address" }, "typeName": { - "id": 3905, + "id": 2605, "name": "address", "nodeType": "ElementaryTypeName", "src": "813:7:23", @@ -2552,30 +2552,30 @@ "visibility": "internal" } ], - "id": 3910, + "id": 2610, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3907, + "id": 2607, "name": "accounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3888, + "referencedDeclaration": 2588, "src": "831:8:23", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 3909, + "id": 2609, "indexExpression": { "argumentTypes": null, - "id": 3908, + "id": 2608, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3895, + "referencedDeclaration": 2595, "src": "840:1:23", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2606,18 +2606,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3914, + "id": 2614, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3912, + "id": 2612, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3906, + "referencedDeclaration": 2606, "src": "864:7:23", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2629,7 +2629,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3913, + "id": 2613, "isConstant": false, "isLValue": false, "isPure": true, @@ -2653,7 +2653,7 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206163636f756e742070726f7669646564", - "id": 3915, + "id": 2615, "isConstant": false, "isLValue": false, "isPure": true, @@ -2680,21 +2680,21 @@ "typeString": "literal_string \"Invalid account provided\"" } ], - "id": 3911, + "id": 2611, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "856:7:23", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3916, + "id": 2616, "isConstant": false, "isLValue": false, "isPure": false, @@ -2708,14 +2708,14 @@ "typeString": "tuple()" } }, - "id": 3917, + "id": 2617, "nodeType": "ExpressionStatement", "src": "856:49:23" }, { "expression": { "argumentTypes": null, - "id": 3922, + "id": 2622, "isConstant": false, "isLValue": false, "isPure": false, @@ -2724,25 +2724,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3918, + "id": 2618, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3885, + "referencedDeclaration": 2585, "src": "919:13:23", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 3920, + "id": 2620, "indexExpression": { "argumentTypes": null, - "id": 3919, + "id": 2619, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3906, + "referencedDeclaration": 2606, "src": "933:7:23", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2765,7 +2765,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 3921, + "id": 2621, "isConstant": false, "isLValue": false, "isPure": true, @@ -2786,7 +2786,7 @@ "typeString": "bool" } }, - "id": 3923, + "id": 2623, "nodeType": "ExpressionStatement", "src": "919:29:23" } @@ -2798,18 +2798,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3901, + "id": 2601, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3898, + "id": 2598, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3895, + "referencedDeclaration": 2595, "src": "773:1:23", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2822,18 +2822,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3899, + "id": 2599, "name": "accounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3888, + "referencedDeclaration": 2588, "src": "777:8:23", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 3900, + "id": 2600, "isConstant": false, "isLValue": false, "isPure": false, @@ -2853,18 +2853,18 @@ "typeString": "bool" } }, - "id": 3925, + "id": 2625, "initializationExpression": { "assignments": [ - 3895 + 2595 ], "declarations": [ { "constant": false, - "id": 3895, + "id": 2595, "name": "i", "nodeType": "VariableDeclaration", - "scope": 3927, + "scope": 2627, "src": "758:9:23", "stateVariable": false, "storageLocation": "default", @@ -2873,7 +2873,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3894, + "id": 2594, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "758:7:23", @@ -2886,11 +2886,11 @@ "visibility": "internal" } ], - "id": 3897, + "id": 2597, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 3896, + "id": 2596, "isConstant": false, "isLValue": false, "isPure": true, @@ -2911,7 +2911,7 @@ "loopExpression": { "expression": { "argumentTypes": null, - "id": 3903, + "id": 2603, "isConstant": false, "isLValue": false, "isPure": false, @@ -2922,11 +2922,11 @@ "src": "794:3:23", "subExpression": { "argumentTypes": null, - "id": 3902, + "id": 2602, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3895, + "referencedDeclaration": 2595, "src": "794:1:23", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2938,7 +2938,7 @@ "typeString": "uint256" } }, - "id": 3904, + "id": 2604, "nodeType": "ExpressionStatement", "src": "794:3:23" }, @@ -2948,7 +2948,7 @@ ] }, "documentation": "@dev Setup function sets initial storage of contract.\n @param accounts List of whitelisted accounts.", - "id": 3927, + "id": 2627, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2956,15 +2956,15 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 3889, + "id": 2589, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3888, + "id": 2588, "name": "accounts", "nodeType": "VariableDeclaration", - "scope": 3927, + "scope": 2627, "src": "682:18:23", "stateVariable": false, "storageLocation": "default", @@ -2974,7 +2974,7 @@ }, "typeName": { "baseType": { - "id": 3886, + "id": 2586, "name": "address", "nodeType": "ElementaryTypeName", "src": "682:7:23", @@ -2983,7 +2983,7 @@ "typeString": "address" } }, - "id": 3887, + "id": 2587, "length": null, "nodeType": "ArrayTypeName", "src": "682:9:23", @@ -3000,12 +3000,12 @@ }, "payable": false, "returnParameters": { - "id": 3890, + "id": 2590, "nodeType": "ParameterList", "parameters": [], "src": "721:0:23" }, - "scope": 4021, + "scope": 2721, "src": "667:298:23", "stateMutability": "nonpayable", "superFunction": null, @@ -3013,7 +3013,7 @@ }, { "body": { - "id": 3955, + "id": 2655, "nodeType": "Block", "src": "1193:181:23", "statements": [ @@ -3027,18 +3027,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3937, + "id": 2637, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3935, + "id": 2635, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3929, + "referencedDeclaration": 2629, "src": "1211:7:23", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3050,7 +3050,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3936, + "id": 2636, "isConstant": false, "isLValue": false, "isPure": true, @@ -3074,7 +3074,7 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206163636f756e742070726f7669646564", - "id": 3938, + "id": 2638, "isConstant": false, "isLValue": false, "isPure": true, @@ -3101,21 +3101,21 @@ "typeString": "literal_string \"Invalid account provided\"" } ], - "id": 3934, + "id": 2634, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "1203:7:23", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3939, + "id": 2639, "isConstant": false, "isLValue": false, "isPure": false, @@ -3129,7 +3129,7 @@ "typeString": "tuple()" } }, - "id": 3940, + "id": 2640, "nodeType": "ExpressionStatement", "src": "1203:49:23" }, @@ -3139,7 +3139,7 @@ "arguments": [ { "argumentTypes": null, - "id": 3945, + "id": 2645, "isConstant": false, "isLValue": false, "isPure": false, @@ -3152,25 +3152,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3942, + "id": 2642, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3885, + "referencedDeclaration": 2585, "src": "1271:13:23", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 3944, + "id": 2644, "indexExpression": { "argumentTypes": null, - "id": 3943, + "id": 2643, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3929, + "referencedDeclaration": 2629, "src": "1285:7:23", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3196,7 +3196,7 @@ { "argumentTypes": null, "hexValue": "4163636f756e7420697320616c72656164792077686974656c6973746564", - "id": 3946, + "id": 2646, "isConstant": false, "isLValue": false, "isPure": true, @@ -3223,21 +3223,21 @@ "typeString": "literal_string \"Account is already whitelisted\"" } ], - "id": 3941, + "id": 2641, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "1262:7:23", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3947, + "id": 2647, "isConstant": false, "isLValue": false, "isPure": false, @@ -3251,14 +3251,14 @@ "typeString": "tuple()" } }, - "id": 3948, + "id": 2648, "nodeType": "ExpressionStatement", "src": "1262:66:23" }, { "expression": { "argumentTypes": null, - "id": 3953, + "id": 2653, "isConstant": false, "isLValue": false, "isPure": false, @@ -3267,25 +3267,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3949, + "id": 2649, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3885, + "referencedDeclaration": 2585, "src": "1338:13:23", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 3951, + "id": 2651, "indexExpression": { "argumentTypes": null, - "id": 3950, + "id": 2650, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3929, + "referencedDeclaration": 2629, "src": "1352:7:23", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3308,7 +3308,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 3952, + "id": 2652, "isConstant": false, "isLValue": false, "isPure": true, @@ -3329,28 +3329,28 @@ "typeString": "bool" } }, - "id": 3954, + "id": 2654, "nodeType": "ExpressionStatement", "src": "1338:29:23" } ] }, "documentation": "@dev Allows to add destination to whitelist. This can only be done via a Safe transaction.\n @param account Destination address.", - "id": 3956, + "id": 2656, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 3932, + "id": 2632, "modifierName": { "argumentTypes": null, - "id": 3931, + "id": 2631, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1840, + "referencedDeclaration": 892, "src": "1178:10:23", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -3364,15 +3364,15 @@ "name": "addToWhitelist", "nodeType": "FunctionDefinition", "parameters": { - "id": 3930, + "id": 2630, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3929, + "id": 2629, "name": "account", "nodeType": "VariableDeclaration", - "scope": 3956, + "scope": 2656, "src": "1138:15:23", "stateVariable": false, "storageLocation": "default", @@ -3381,7 +3381,7 @@ "typeString": "address" }, "typeName": { - "id": 3928, + "id": 2628, "name": "address", "nodeType": "ElementaryTypeName", "src": "1138:7:23", @@ -3398,12 +3398,12 @@ }, "payable": false, "returnParameters": { - "id": 3933, + "id": 2633, "nodeType": "ParameterList", "parameters": [], "src": "1193:0:23" }, - "scope": 4021, + "scope": 2721, "src": "1114:260:23", "stateMutability": "nonpayable", "superFunction": null, @@ -3411,7 +3411,7 @@ }, { "body": { - "id": 3976, + "id": 2676, "nodeType": "Block", "src": "1612:118:23", "statements": [ @@ -3423,25 +3423,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3964, + "id": 2664, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3885, + "referencedDeclaration": 2585, "src": "1630:13:23", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 3966, + "id": 2666, "indexExpression": { "argumentTypes": null, - "id": 3965, + "id": 2665, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3958, + "referencedDeclaration": 2658, "src": "1644:7:23", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3462,7 +3462,7 @@ { "argumentTypes": null, "hexValue": "4163636f756e74206973206e6f742077686974656c6973746564", - "id": 3967, + "id": 2667, "isConstant": false, "isLValue": false, "isPure": true, @@ -3489,21 +3489,21 @@ "typeString": "literal_string \"Account is not whitelisted\"" } ], - "id": 3963, + "id": 2663, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "1622:7:23", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3968, + "id": 2668, "isConstant": false, "isLValue": false, "isPure": false, @@ -3517,14 +3517,14 @@ "typeString": "tuple()" } }, - "id": 3969, + "id": 2669, "nodeType": "ExpressionStatement", "src": "1622:61:23" }, { "expression": { "argumentTypes": null, - "id": 3974, + "id": 2674, "isConstant": false, "isLValue": false, "isPure": false, @@ -3533,25 +3533,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3970, + "id": 2670, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3885, + "referencedDeclaration": 2585, "src": "1693:13:23", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 3972, + "id": 2672, "indexExpression": { "argumentTypes": null, - "id": 3971, + "id": 2671, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3958, + "referencedDeclaration": 2658, "src": "1707:7:23", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3574,7 +3574,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 3973, + "id": 2673, "isConstant": false, "isLValue": false, "isPure": true, @@ -3595,28 +3595,28 @@ "typeString": "bool" } }, - "id": 3975, + "id": 2675, "nodeType": "ExpressionStatement", "src": "1693:30:23" } ] }, "documentation": "@dev Allows to remove destination from whitelist. This can only be done via a Safe transaction.\n @param account Destination address.", - "id": 3977, + "id": 2677, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 3961, + "id": 2661, "modifierName": { "argumentTypes": null, - "id": 3960, + "id": 2660, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1840, + "referencedDeclaration": 892, "src": "1597:10:23", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -3630,15 +3630,15 @@ "name": "removeFromWhitelist", "nodeType": "FunctionDefinition", "parameters": { - "id": 3959, + "id": 2659, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3958, + "id": 2658, "name": "account", "nodeType": "VariableDeclaration", - "scope": 3977, + "scope": 2677, "src": "1557:15:23", "stateVariable": false, "storageLocation": "default", @@ -3647,7 +3647,7 @@ "typeString": "address" }, "typeName": { - "id": 3957, + "id": 2657, "name": "address", "nodeType": "ElementaryTypeName", "src": "1557:7:23", @@ -3664,12 +3664,12 @@ }, "payable": false, "returnParameters": { - "id": 3962, + "id": 2662, "nodeType": "ParameterList", "parameters": [], "src": "1612:0:23" }, - "scope": 4021, + "scope": 2721, "src": "1528:202:23", "stateMutability": "nonpayable", "superFunction": null, @@ -3677,7 +3677,7 @@ }, { "body": { - "id": 4019, + "id": 2719, "nodeType": "Block", "src": "2093:393:23", "statements": [ @@ -3692,18 +3692,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3993, + "id": 2693, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4036, + "referencedDeclaration": 3828, "src": "2230:3:23", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3994, + "id": 2694, "isConstant": false, "isLValue": false, "isPure": false, @@ -3730,14 +3730,14 @@ "arguments": [ { "argumentTypes": null, - "id": 3990, + "id": 2690, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1826, + "referencedDeclaration": 878, "src": "2213:7:23", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } } @@ -3745,22 +3745,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } ], - "id": 3989, + "id": 2689, "name": "OwnerManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2888, + "referencedDeclaration": 1588, "src": "2200:12:23", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$2888_$", + "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1588_$", "typeString": "type(contract OwnerManager)" } }, - "id": 3991, + "id": 2691, "isConstant": false, "isLValue": false, "isPure": false, @@ -3770,25 +3770,25 @@ "nodeType": "FunctionCall", "src": "2200:21:23", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$2888", + "typeIdentifier": "t_contract$_OwnerManager_$1588", "typeString": "contract OwnerManager" } }, - "id": 3992, + "id": 2692, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isOwner", "nodeType": "MemberAccess", - "referencedDeclaration": 2838, + "referencedDeclaration": 1538, "src": "2200:29:23", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view external returns (bool)" } }, - "id": 3995, + "id": 2695, "isConstant": false, "isLValue": false, "isPure": false, @@ -3805,7 +3805,7 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e206f776e6572", - "id": 3996, + "id": 2696, "isConstant": false, "isLValue": false, "isPure": true, @@ -3832,21 +3832,21 @@ "typeString": "literal_string \"Method can only be called by an owner\"" } ], - "id": 3988, + "id": 2688, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "2192:7:23", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3997, + "id": 2697, "isConstant": false, "isLValue": false, "isPure": false, @@ -3860,7 +3860,7 @@ "typeString": "tuple()" } }, - "id": 3998, + "id": 2698, "nodeType": "ExpressionStatement", "src": "2192:91:23" }, @@ -3872,25 +3872,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 4000, + "id": 2700, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3885, + "referencedDeclaration": 2585, "src": "2301:13:23", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 4002, + "id": 2702, "indexExpression": { "argumentTypes": null, - "id": 4001, + "id": 2701, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3979, + "referencedDeclaration": 2679, "src": "2315:2:23", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3911,7 +3911,7 @@ { "argumentTypes": null, "hexValue": "546172676574206163636f756e74206973206e6f742077686974656c6973746564", - "id": 4003, + "id": 2703, "isConstant": false, "isLValue": false, "isPure": true, @@ -3938,21 +3938,21 @@ "typeString": "literal_string \"Target account is not whitelisted\"" } ], - "id": 3999, + "id": 2699, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "2293:7:23", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 4004, + "id": 2704, "isConstant": false, "isLValue": false, "isPure": false, @@ -3966,7 +3966,7 @@ "typeString": "tuple()" } }, - "id": 4005, + "id": 2705, "nodeType": "ExpressionStatement", "src": "2293:63:23" }, @@ -3979,11 +3979,11 @@ "arguments": [ { "argumentTypes": null, - "id": 4009, + "id": 2709, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3979, + "referencedDeclaration": 2679, "src": "2408:2:23", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3992,11 +3992,11 @@ }, { "argumentTypes": null, - "id": 4010, + "id": 2710, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3981, + "referencedDeclaration": 2681, "src": "2412:5:23", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4005,11 +4005,11 @@ }, { "argumentTypes": null, - "id": 4011, + "id": 2711, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3983, + "referencedDeclaration": 2683, "src": "2419:4:23", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -4022,7 +4022,7 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4012, + "id": 2712, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -4033,7 +4033,7 @@ "typeString": "type(contract Enum)" } }, - "id": 4013, + "id": 2713, "isConstant": false, "isLValue": false, "isPure": false, @@ -4047,7 +4047,7 @@ "typeString": "type(enum Enum.Operation)" } }, - "id": 4014, + "id": 2714, "isConstant": false, "isLValue": false, "isPure": true, @@ -4083,32 +4083,32 @@ ], "expression": { "argumentTypes": null, - "id": 4007, + "id": 2707, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1826, + "referencedDeclaration": 878, "src": "2374:7:23", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$2232", + "typeIdentifier": "t_contract$_ModuleManager_$1180", "typeString": "contract ModuleManager" } }, - "id": 4008, + "id": 2708, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "execTransactionFromModule", "nodeType": "MemberAccess", - "referencedDeclaration": 2059, + "referencedDeclaration": 1106, "src": "2374:33:23", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" } }, - "id": 4015, + "id": 2715, "isConstant": false, "isLValue": false, "isPure": false, @@ -4125,7 +4125,7 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f742065786563757465207472616e73616374696f6e", - "id": 4016, + "id": 2716, "isConstant": false, "isLValue": false, "isPure": true, @@ -4152,21 +4152,21 @@ "typeString": "literal_string \"Could not execute transaction\"" } ], - "id": 4006, + "id": 2706, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4039, - 4040 + 3831, + 3832 ], - "referencedDeclaration": 4040, + "referencedDeclaration": 3832, "src": "2366:7:23", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 4017, + "id": 2717, "isConstant": false, "isLValue": false, "isPure": false, @@ -4180,14 +4180,14 @@ "typeString": "tuple()" } }, - "id": 4018, + "id": 2718, "nodeType": "ExpressionStatement", "src": "2366:113:23" } ] }, "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": 4020, + "id": 2720, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -4195,15 +4195,15 @@ "name": "executeWhitelisted", "nodeType": "FunctionDefinition", "parameters": { - "id": 3984, + "id": 2684, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3979, + "id": 2679, "name": "to", "nodeType": "VariableDeclaration", - "scope": 4020, + "scope": 2720, "src": "2012:10:23", "stateVariable": false, "storageLocation": "default", @@ -4212,7 +4212,7 @@ "typeString": "address" }, "typeName": { - "id": 3978, + "id": 2678, "name": "address", "nodeType": "ElementaryTypeName", "src": "2012:7:23", @@ -4226,10 +4226,10 @@ }, { "constant": false, - "id": 3981, + "id": 2681, "name": "value", "nodeType": "VariableDeclaration", - "scope": 4020, + "scope": 2720, "src": "2024:13:23", "stateVariable": false, "storageLocation": "default", @@ -4238,7 +4238,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3980, + "id": 2680, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2024:7:23", @@ -4252,10 +4252,10 @@ }, { "constant": false, - "id": 3983, + "id": 2683, "name": "data", "nodeType": "VariableDeclaration", - "scope": 4020, + "scope": 2720, "src": "2039:10:23", "stateVariable": false, "storageLocation": "default", @@ -4264,7 +4264,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3982, + "id": 2682, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "2039:5:23", @@ -4281,15 +4281,15 @@ }, "payable": false, "returnParameters": { - "id": 3987, + "id": 2687, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3986, + "id": 2686, "name": "", "nodeType": "VariableDeclaration", - "scope": 4020, + "scope": 2720, "src": "2083:4:23", "stateVariable": false, "storageLocation": "default", @@ -4298,7 +4298,7 @@ "typeString": "bool" }, "typeName": { - "id": 3985, + "id": 2685, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2083:4:23", @@ -4313,14 +4313,14 @@ ], "src": "2082:6:23" }, - "scope": 4021, + "scope": 2721, "src": "1984:502:23", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 4022, + "scope": 2722, "src": "289:2199:23" } ], @@ -4334,28 +4334,16 @@ "4": { "events": {}, "links": {}, - "address": "0xe06a4d7f8c51eae35f133d1c8fce030981b52e5e", - "transactionHash": "0x00f35b8c5fcc57cbd4d3f336baec1552a39d9e9d62ea7f3a3edb66dd1bba5885" + "address": "0x8ad61b7616eaa89066ff012d6e34253505b0c0a5", + "transactionHash": "0xade771942b2ce080e3208fc5c8e7cfb4535e67ccdacb570da0d8a834b17a938e" }, - "1530013596495": { + "1534750848541": { "events": {}, "links": {}, - "address": "0x8beffca836f10cb108d1fc63e83442ac5d46a472", - "transactionHash": "0xfd3859c43474b7844f357aa8167fe79a98fa5e75d0a1025e886b4d205acaae0d" - }, - "1530525742205": { - "events": {}, - "links": {}, - "address": "0xc93933b413135c5dc2d364b8965100f754fb4470", - "transactionHash": "0xb1d7d3bad55ee9757ad5dd8873d33e40bb8d2eea0f9ff1e62ab2a151471a7339" - }, - "1530611935189": { - "events": {}, - "links": {}, - "address": "0xf569908595dfa734a53deca31bea509ae51c24d2", - "transactionHash": "0xb1d7d3bad55ee9757ad5dd8873d33e40bb8d2eea0f9ff1e62ab2a151471a7339" + "address": "0xa586074fa4fe3e546a132a16238abe37951d41fe", + "transactionHash": "0xa309cde77233a411b572709611a45ed78458814bb2fdfa3c9f6f3695630a53f8" } }, "schemaVersion": "2.0.0", - "updatedAt": "2018-07-03T09:59:18.524Z" + "updatedAt": "2018-08-20T07:50:29.686Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/test/ApproveAndCallFallBack.json b/safe-contracts/build/contracts/test/ApproveAndCallFallBack.json new file mode 100644 index 0000000000..ec9c987a61 --- /dev/null +++ b/safe-contracts/build/contracts/test/ApproveAndCallFallBack.json @@ -0,0 +1,14216 @@ +{ + "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": [ + 3437 + ], + "ERC20Interface": [ + 3425 + ], + "Owned": [ + 3506 + ], + "SafeMath": [ + 3358 + ], + "TestToken": [ + 3813 + ] + }, + "id": 3814, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3263, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:25" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 3358, + "linearizedBaseContracts": [ + 3358 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 3284, + "nodeType": "Block", + "src": "719:51:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3272, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3270, + "src": "729:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3273, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3265, + "src": "733:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 3274, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3267, + "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": 3277, + "nodeType": "ExpressionStatement", + "src": "729:9:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3279, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3270, + "src": "756:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 3280, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3265, + "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": 3278, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "748:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "748:15:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3283, + "nodeType": "ExpressionStatement", + "src": "748:15:25" + } + ] + }, + "documentation": null, + "id": 3285, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3268, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3265, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 3285, + "src": "672:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3264, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "672:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3267, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3285, + "src": "680:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3266, + "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": 3271, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3270, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 3285, + "src": "711:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3269, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "711:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "710:8:25" + }, + "scope": 3358, + "src": "659:111:25", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3306, + "nodeType": "Block", + "src": "835:51:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3295, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3289, + "src": "853:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 3296, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3287, + "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": 3294, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "845:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "845:15:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3299, + "nodeType": "ExpressionStatement", + "src": "845:15:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3300, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3292, + "src": "870:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3301, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3287, + "src": "874:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 3302, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3289, + "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": 3305, + "nodeType": "ExpressionStatement", + "src": "870:9:25" + } + ] + }, + "documentation": null, + "id": 3307, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3290, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3287, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 3307, + "src": "788:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3286, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "788:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3289, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3307, + "src": "796:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3288, + "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": 3293, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3292, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 3307, + "src": "827:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3291, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "827:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "826:8:25" + }, + "scope": 3358, + "src": "775:111:25", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3334, + "nodeType": "Block", + "src": "951:65:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3316, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3314, + "src": "961:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3317, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3309, + "src": "965:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 3318, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3311, + "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": 3321, + "nodeType": "ExpressionStatement", + "src": "961:9:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3323, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3309, + "src": "988:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3324, + "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": 3330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3326, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3314, + "src": "998:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 3327, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3309, + "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": 3329, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3311, + "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": 3322, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "980:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "980:29:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3333, + "nodeType": "ExpressionStatement", + "src": "980:29:25" + } + ] + }, + "documentation": null, + "id": 3335, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3312, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3309, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 3335, + "src": "904:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3308, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "904:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3311, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3335, + "src": "912:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3310, + "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": 3315, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3314, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 3335, + "src": "943:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3313, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "943:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "942:8:25" + }, + "scope": 3358, + "src": "891:125:25", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3356, + "nodeType": "Block", + "src": "1081:50:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3345, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3339, + "src": "1099:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3346, + "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": 3344, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "1091:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1091:14:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3349, + "nodeType": "ExpressionStatement", + "src": "1091:14:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3350, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3342, + "src": "1115:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3351, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3337, + "src": "1119:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 3352, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3339, + "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": 3355, + "nodeType": "ExpressionStatement", + "src": "1115:9:25" + } + ] + }, + "documentation": null, + "id": 3357, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3340, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3337, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 3357, + "src": "1034:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3336, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1034:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3339, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3357, + "src": "1042:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3338, + "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": 3343, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3342, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 3357, + "src": "1073:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3341, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1073:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1072:8:25" + }, + "scope": 3358, + "src": "1021:110:25", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 3814, + "src": "636:497:25" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 3425, + "linearizedBaseContracts": [ + 3425 + ], + "name": "ERC20Interface", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 3363, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3359, + "nodeType": "ParameterList", + "parameters": [], + "src": "1445:2:25" + }, + "payable": false, + "returnParameters": { + "id": 3362, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3361, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3363, + "src": "1473:4:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3360, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1473:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1472:6:25" + }, + "scope": 3425, + "src": "1425:54:25", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 3370, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3366, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3365, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 3370, + "src": "1503:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3364, + "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": 3369, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3368, + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 3370, + "src": "1548:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3367, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1548:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1547:14:25" + }, + "scope": 3425, + "src": "1484:78:25", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 3379, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3375, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3372, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 3379, + "src": "1586:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3371, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1586:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3374, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3379, + "src": "1606:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3373, + "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": 3378, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3377, + "name": "remaining", + "nodeType": "VariableDeclaration", + "scope": 3379, + "src": "1648:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3376, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1648:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1647:16:25" + }, + "scope": 3425, + "src": "1567:97:25", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 3388, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3384, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3381, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3388, + "src": "1687:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3380, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1687:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3383, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3388, + "src": "1699:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3382, + "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": 3387, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3386, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3388, + "src": "1728:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3385, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1728:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1727:14:25" + }, + "scope": 3425, + "src": "1669:73:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 3397, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3393, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3390, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3397, + "src": "1764:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3389, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1764:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3392, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3397, + "src": "1781:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3391, + "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": 3396, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3395, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3397, + "src": "1810:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3394, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1810:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1809:14:25" + }, + "scope": 3425, + "src": "1747:77:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 3408, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3404, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3399, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3408, + "src": "1851:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3398, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1851:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3401, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3408, + "src": "1865:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3400, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1865:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3403, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3408, + "src": "1877:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3402, + "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": 3407, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3406, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3408, + "src": "1906:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3405, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1906:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1905:14:25" + }, + "scope": 3425, + "src": "1829:91:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 3416, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 3415, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3410, + "indexed": true, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3416, + "src": "1941:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3409, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1941:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3412, + "indexed": true, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3416, + "src": "1963:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3411, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1963:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3414, + "indexed": false, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3416, + "src": "1983:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3413, + "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": 3424, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 3423, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3418, + "indexed": true, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 3424, + "src": "2016:26:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3417, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2016:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3420, + "indexed": true, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3424, + "src": "2044:23:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3419, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2044:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3422, + "indexed": false, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3424, + "src": "2069:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3421, + "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": 3814, + "src": "1395:689:25" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 3437, + "linearizedBaseContracts": [ + 3437 + ], + "name": "ApproveAndCallFallBack", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 3436, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "receiveApproval", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3434, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3427, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3436, + "src": "2416:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3426, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2416:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3429, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3436, + "src": "2430:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3428, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2430:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3431, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 3436, + "src": "2446:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3430, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2446:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3433, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 3436, + "src": "2461:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3432, + "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": 3435, + "nodeType": "ParameterList", + "parameters": [], + "src": "2479:0:25" + }, + "scope": 3437, + "src": "2391:89:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 3814, + "src": "2353:129:25" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 3506, + "linearizedBaseContracts": [ + 3506 + ], + "name": "Owned", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 3439, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 3506, + "src": "2684:20:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3438, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2684:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3441, + "name": "newOwner", + "nodeType": "VariableDeclaration", + "scope": 3506, + "src": "2710:23:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3440, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2710:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 3447, + "name": "OwnershipTransferred", + "nodeType": "EventDefinition", + "parameters": { + "id": 3446, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3443, + "indexed": true, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 3447, + "src": "2767:21:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3442, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2767:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3445, + "indexed": true, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 3447, + "src": "2790:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3444, + "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": 3455, + "nodeType": "Block", + "src": "2838:35:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3450, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "2848:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3451, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "2856:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3452, + "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": 3454, + "nodeType": "ExpressionStatement", + "src": "2848:18:25" + } + ] + }, + "documentation": null, + "id": 3456, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3448, + "nodeType": "ParameterList", + "parameters": [], + "src": "2828:2:25" + }, + "payable": false, + "returnParameters": { + "id": 3449, + "nodeType": "ParameterList", + "parameters": [], + "src": "2838:0:25" + }, + "scope": 3506, + "src": "2817:56:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3466, + "nodeType": "Block", + "src": "2898:56:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3459, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "2916:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3460, + "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": 3461, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "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": 3458, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "2908:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2908:28:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3464, + "nodeType": "ExpressionStatement", + "src": "2908:28:25" + }, + { + "id": 3465, + "nodeType": "PlaceholderStatement", + "src": "2946:1:25" + } + ] + }, + "documentation": null, + "id": 3467, + "name": "onlyOwner", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 3457, + "nodeType": "ParameterList", + "parameters": [], + "src": "2898:0:25" + }, + "src": "2879:75:25", + "visibility": "internal" + }, + { + "body": { + "id": 3478, + "nodeType": "Block", + "src": "3023:37:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3474, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3441, + "src": "3033:8:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3475, + "name": "_newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3469, + "src": "3044:9:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3033:20:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3477, + "nodeType": "ExpressionStatement", + "src": "3033:20:25" + } + ] + }, + "documentation": null, + "id": 3479, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 3472, + "modifierName": { + "argumentTypes": null, + "id": 3471, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "3013:9:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3013:9:25" + } + ], + "name": "transferOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3470, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3469, + "name": "_newOwner", + "nodeType": "VariableDeclaration", + "scope": 3479, + "src": "2987:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3468, + "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": 3473, + "nodeType": "ParameterList", + "parameters": [], + "src": "3023:0:25" + }, + "scope": 3506, + "src": "2960:100:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3504, + "nodeType": "Block", + "src": "3099:157:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3483, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "3117:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3484, + "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": 3485, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3441, + "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": 3482, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "3109:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3109:31:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3488, + "nodeType": "ExpressionStatement", + "src": "3109:31:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3490, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "3176:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3491, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3441, + "src": "3183:8:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3489, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3447, + "src": "3155:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 3492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3155:37:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3493, + "nodeType": "EmitStatement", + "src": "3150:42:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3494, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "3202:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3495, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3441, + "src": "3210:8:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3202:16:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3497, + "nodeType": "ExpressionStatement", + "src": "3202:16:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3498, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3441, + "src": "3228:8:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3500, + "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": 3499, + "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": 3501, + "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": 3503, + "nodeType": "ExpressionStatement", + "src": "3228:21:25" + } + ] + }, + "documentation": null, + "id": 3505, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "acceptOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3480, + "nodeType": "ParameterList", + "parameters": [], + "src": "3089:2:25" + }, + "payable": false, + "returnParameters": { + "id": 3481, + "nodeType": "ParameterList", + "parameters": [], + "src": "3099:0:25" + }, + "scope": 3506, + "src": "3065:191:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 3814, + "src": "2663:595:25" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 3507, + "name": "ERC20Interface", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3425, + "src": "3528:14:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Interface_$3425", + "typeString": "contract ERC20Interface" + } + }, + "id": 3508, + "nodeType": "InheritanceSpecifier", + "src": "3528:14:25" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 3509, + "name": "Owned", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3506, + "src": "3544:5:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Owned_$3506", + "typeString": "contract Owned" + } + }, + "id": 3510, + "nodeType": "InheritanceSpecifier", + "src": "3544:5:25" + } + ], + "contractDependencies": [ + 3425, + 3506 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 3813, + "linearizedBaseContracts": [ + 3813, + 3506, + 3425 + ], + "name": "TestToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 3513, + "libraryName": { + "contractScope": null, + "id": 3511, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3358, + "src": "3562:8:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$3358", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "3556:24:25", + "typeName": { + "id": 3512, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3575:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 3515, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3586:20:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3514, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3586:6:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3517, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3612:19:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3516, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3612:6:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3519, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3637:21:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 3518, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3637:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3521, + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3664:17:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3520, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3664:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3525, + "name": "balances", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3688:33:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 3524, + "keyType": { + "id": 3522, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3696:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3688:24:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 3523, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3707:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3531, + "name": "allowed", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3727: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": 3530, + "keyType": { + "id": 3526, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3735:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3727:44:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 3529, + "keyType": { + "id": 3527, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3754:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3746:24:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 3528, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3765:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "body": { + "id": 3570, + "nodeType": "Block", + "src": "3987:235:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3534, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3515, + "src": "3997:6:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "544b4e", + "id": 3535, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4006:5:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66", + "typeString": "literal_string \"TKN\"" + }, + "value": "TKN" + }, + "src": "3997:14:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3537, + "nodeType": "ExpressionStatement", + "src": "3997:14:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3540, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3538, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3517, + "src": "4021:4:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "546f6b656e204578616d706c65", + "id": 3539, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4028:15:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a", + "typeString": "literal_string \"Token Example\"" + }, + "value": "Token Example" + }, + "src": "4021:22:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3541, + "nodeType": "ExpressionStatement", + "src": "4021:22:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3542, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3519, + "src": "4053:8:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "3138", + "id": 3543, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4064:2:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "src": "4053:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 3545, + "nodeType": "ExpressionStatement", + "src": "4053:13:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3546, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3521, + "src": "4076:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "31303030303030", + "id": 3547, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4091: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": 3552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 3548, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4101: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": 3550, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3519, + "src": "4110:8:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 3549, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4105:4:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" + }, + "id": 3551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4105:14:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4101:18:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4091:28:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4076:43:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3555, + "nodeType": "ExpressionStatement", + "src": "4076:43:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3556, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "4129:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3558, + "indexExpression": { + "argumentTypes": null, + "id": 3557, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "4138:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4129:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3559, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3521, + "src": "4147:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4129:30:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3561, + "nodeType": "ExpressionStatement", + "src": "4129:30:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3564, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4191: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": 3563, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4183:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4183:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3566, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "4195:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3567, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3521, + "src": "4202: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": 3562, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3416, + "src": "4174:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4174:41:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3569, + "nodeType": "EmitStatement", + "src": "4169:46:25" + } + ] + }, + "documentation": null, + "id": 3571, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3532, + "nodeType": "ParameterList", + "parameters": [], + "src": "3977:2:25" + }, + "payable": false, + "returnParameters": { + "id": 3533, + "nodeType": "ParameterList", + "parameters": [], + "src": "3987:0:25" + }, + "scope": 3813, + "src": "3966:256:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3585, + "nodeType": "Block", + "src": "4459:62:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3578, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "4493:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3582, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3580, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4510: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": 3579, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4502:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3581, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4502:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4493:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 3576, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3521, + "src": "4476:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3577, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 3307, + "src": "4476: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": 3583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4476:38:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3575, + "id": 3584, + "nodeType": "Return", + "src": "4469:45:25" + } + ] + }, + "documentation": null, + "id": 3586, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3572, + "nodeType": "ParameterList", + "parameters": [], + "src": "4429:2:25" + }, + "payable": false, + "returnParameters": { + "id": 3575, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3574, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3586, + "src": "4453:4:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3573, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4453:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4452:6:25" + }, + "scope": 3813, + "src": "4409:112:25", + "stateMutability": "view", + "superFunction": 3363, + "visibility": "public" + }, + { + "body": { + "id": 3597, + "nodeType": "Block", + "src": "4816:44:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3593, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "4833:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3595, + "indexExpression": { + "argumentTypes": null, + "id": 3594, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3588, + "src": "4842:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4833:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3592, + "id": 3596, + "nodeType": "Return", + "src": "4826:27:25" + } + ] + }, + "documentation": null, + "id": 3598, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3589, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3588, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 3598, + "src": "4761:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3587, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4761:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4760:20:25" + }, + "payable": false, + "returnParameters": { + "id": 3592, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3591, + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 3598, + "src": "4802:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3590, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4802:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4801:14:25" + }, + "scope": 3813, + "src": "4742:118:25", + "stateMutability": "view", + "superFunction": 3370, + "visibility": "public" + }, + { + "body": { + "id": 3640, + "nodeType": "Block", + "src": "5276:189:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3618, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3607, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "5286:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3610, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3608, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "5295:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5295:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5286:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3616, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3602, + "src": "5334:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3611, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "5309:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3614, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3612, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "5318:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3613, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5318:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5309:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3615, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 3307, + "src": "5309: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": 3617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5309:32:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5286:55:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3619, + "nodeType": "ExpressionStatement", + "src": "5286:55:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3620, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "5351:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3622, + "indexExpression": { + "argumentTypes": null, + "id": 3621, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3600, + "src": "5360:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5351:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3627, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3602, + "src": "5383:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3623, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "5366:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3625, + "indexExpression": { + "argumentTypes": null, + "id": 3624, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3600, + "src": "5375:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5366:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 3285, + "src": "5366: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": 3628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5366:24:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5351:39:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3630, + "nodeType": "ExpressionStatement", + "src": "5351:39:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3632, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "5414:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3633, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5414:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3634, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3600, + "src": "5426:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3635, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3602, + "src": "5430: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": 3631, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3416, + "src": "5405:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5405:32:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3637, + "nodeType": "EmitStatement", + "src": "5400:37:25" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5454:4:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3606, + "id": 3639, + "nodeType": "Return", + "src": "5447:11:25" + } + ] + }, + "documentation": null, + "id": 3641, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3603, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3600, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3641, + "src": "5221:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3599, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5221:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3602, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3641, + "src": "5233:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3601, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5233:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5220:25:25" + }, + "payable": false, + "returnParameters": { + "id": 3606, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3605, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3641, + "src": "5262:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3604, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5262:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5261:14:25" + }, + "scope": 3813, + "src": "5203:262:25", + "stateMutability": "nonpayable", + "superFunction": 3388, + "visibility": "public" + }, + { + "body": { + "id": 3668, + "nodeType": "Block", + "src": "6048:127:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3650, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "6058:7:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3654, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3651, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "6066:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3652, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6066:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6058:19:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3655, + "indexExpression": { + "argumentTypes": null, + "id": 3653, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3643, + "src": "6078:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6058:28:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3656, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3645, + "src": "6089:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6058:37:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3658, + "nodeType": "ExpressionStatement", + "src": "6058:37:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3660, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "6119:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6119:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3662, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3643, + "src": "6131:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3663, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3645, + "src": "6140: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": 3659, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3424, + "src": "6110:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6110:37:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3665, + "nodeType": "EmitStatement", + "src": "6105:42:25" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6164:4:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3649, + "id": 3667, + "nodeType": "Return", + "src": "6157:11:25" + } + ] + }, + "documentation": null, + "id": 3669, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3646, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3643, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3669, + "src": "5988:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3642, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5988:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3645, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3669, + "src": "6005:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3644, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6005:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5987:30:25" + }, + "payable": false, + "returnParameters": { + "id": 3649, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3648, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3669, + "src": "6034:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3647, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6034:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6033:14:25" + }, + "scope": 3813, + "src": "5971:204:25", + "stateMutability": "nonpayable", + "superFunction": 3397, + "visibility": "public" + }, + { + "body": { + "id": 3727, + "nodeType": "Block", + "src": "6798:246:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3680, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "6808:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3682, + "indexExpression": { + "argumentTypes": null, + "id": 3681, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "6817:4:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6808:14:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3687, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3675, + "src": "6844:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3683, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "6825:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3685, + "indexExpression": { + "argumentTypes": null, + "id": 3684, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "6834:4:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6825:14:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 3307, + "src": "6825: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": 3688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6825:26:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6808:43:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3690, + "nodeType": "ExpressionStatement", + "src": "6808:43:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3706, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3691, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "6861:7:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3695, + "indexExpression": { + "argumentTypes": null, + "id": 3692, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "6869:4:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6861:13:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3696, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3693, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "6875:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6875:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6861:25:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3704, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3675, + "src": "6919: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": 3697, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "6889:7:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3699, + "indexExpression": { + "argumentTypes": null, + "id": 3698, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "6897:4:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6889:13:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3702, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3700, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "6903:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3701, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6903:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6889:25:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 3307, + "src": "6889: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": 3705, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6889:37:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6861:65:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3707, + "nodeType": "ExpressionStatement", + "src": "6861:65:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3708, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "6936:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3710, + "indexExpression": { + "argumentTypes": null, + "id": 3709, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3673, + "src": "6945:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6936:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3715, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3675, + "src": "6968:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3711, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "6951:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3713, + "indexExpression": { + "argumentTypes": null, + "id": 3712, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3673, + "src": "6960:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6951:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 3285, + "src": "6951: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": 3716, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6951:24:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6936:39:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3718, + "nodeType": "ExpressionStatement", + "src": "6936:39:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3720, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "6999:4:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3721, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3673, + "src": "7005:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3722, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3675, + "src": "7009: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": 3719, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3416, + "src": "6990:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6990:26:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3724, + "nodeType": "EmitStatement", + "src": "6985:31:25" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3725, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7033:4:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3679, + "id": 3726, + "nodeType": "Return", + "src": "7026:11:25" + } + ] + }, + "documentation": null, + "id": 3728, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3676, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3671, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3728, + "src": "6729:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3670, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6729:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3673, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3728, + "src": "6743:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3672, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6743:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3675, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3728, + "src": "6755:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3674, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6755:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6728:39:25" + }, + "payable": false, + "returnParameters": { + "id": 3679, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3678, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3728, + "src": "6784:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3677, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6784:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6783:14:25" + }, + "scope": 3813, + "src": "6707:337:25", + "stateMutability": "nonpayable", + "superFunction": 3408, + "visibility": "public" + }, + { + "body": { + "id": 3743, + "nodeType": "Block", + "src": "7418:52:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3737, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "7435:7:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3739, + "indexExpression": { + "argumentTypes": null, + "id": 3738, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3730, + "src": "7443:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7435:19:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3741, + "indexExpression": { + "argumentTypes": null, + "id": 3740, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3732, + "src": "7455:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7435:28:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3736, + "id": 3742, + "nodeType": "Return", + "src": "7428:35:25" + } + ] + }, + "documentation": null, + "id": 3744, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3733, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3730, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 3744, + "src": "7344:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3729, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7344:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3732, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3744, + "src": "7364:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3731, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7364:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7343:37:25" + }, + "payable": false, + "returnParameters": { + "id": 3736, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3735, + "name": "remaining", + "nodeType": "VariableDeclaration", + "scope": 3744, + "src": "7402:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3734, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7402:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7401:16:25" + }, + "scope": 3813, + "src": "7325:145:25", + "stateMutability": "view", + "superFunction": 3379, + "visibility": "public" + }, + { + "body": { + "id": 3784, + "nodeType": "Block", + "src": "7926:216:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3755, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "7936:7:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3759, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3756, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "7944:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7944:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7936:19:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3760, + "indexExpression": { + "argumentTypes": null, + "id": 3758, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3746, + "src": "7956:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7936:28:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3761, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3748, + "src": "7967:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7936:37:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3763, + "nodeType": "ExpressionStatement", + "src": "7936:37:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3765, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "7997:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7997:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3767, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3746, + "src": "8009:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3768, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3748, + "src": "8018: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": 3764, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3424, + "src": "7988:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7988:37:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3770, + "nodeType": "EmitStatement", + "src": "7983:42:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3775, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "8083:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8083:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3777, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3748, + "src": "8095:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3778, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3907, + "src": "8103:4:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TestToken_$3813", + "typeString": "contract TestToken" + } + }, + { + "argumentTypes": null, + "id": 3779, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3750, + "src": "8109: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$_TestToken_$3813", + "typeString": "contract TestToken" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3772, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3746, + "src": "8058:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3771, + "name": "ApproveAndCallFallBack", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3437, + "src": "8035:22:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3437_$", + "typeString": "type(contract ApproveAndCallFallBack)" + } + }, + "id": 3773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8035:31:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3437", + "typeString": "contract ApproveAndCallFallBack" + } + }, + "id": 3774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "receiveApproval", + "nodeType": "MemberAccess", + "referencedDeclaration": 3436, + "src": "8035: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": 3780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8035:79:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3781, + "nodeType": "ExpressionStatement", + "src": "8035:79:25" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3782, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8131:4:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3754, + "id": 3783, + "nodeType": "Return", + "src": "8124:11:25" + } + ] + }, + "documentation": null, + "id": 3785, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approveAndCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3751, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3746, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3785, + "src": "7854:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3745, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7854:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3748, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3785, + "src": "7871:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3747, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7871:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3750, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 3785, + "src": "7884:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3749, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7884:5:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7853:42:25" + }, + "payable": false, + "returnParameters": { + "id": 3754, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3753, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3785, + "src": "7912:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3752, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7912:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7911:14:25" + }, + "scope": 3813, + "src": "7830:312:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3791, + "nodeType": "Block", + "src": "8360:25:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3788, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3833, + 3834 + ], + "referencedDeclaration": 3833, + "src": "8370:6:25", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 3789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8370:8:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3790, + "nodeType": "ExpressionStatement", + "src": "8370:8:25" + } + ] + }, + "documentation": null, + "id": 3792, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3786, + "nodeType": "ParameterList", + "parameters": [], + "src": "8342:2:25" + }, + "payable": true, + "returnParameters": { + "id": 3787, + "nodeType": "ParameterList", + "parameters": [], + "src": "8360:0:25" + }, + "scope": 3813, + "src": "8333:52:25", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3811, + "nodeType": "Block", + "src": "8723:76:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3807, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "8778:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3808, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3796, + "src": "8785: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": 3804, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3794, + "src": "8755:12:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3803, + "name": "ERC20Interface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3425, + "src": "8740:14:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3425_$", + "typeString": "type(contract ERC20Interface)" + } + }, + "id": 3805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8740:28:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Interface_$3425", + "typeString": "contract ERC20Interface" + } + }, + "id": 3806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 3388, + "src": "8740:37:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 3809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8740:52:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3802, + "id": 3810, + "nodeType": "Return", + "src": "8733:59:25" + } + ] + }, + "documentation": null, + "id": 3812, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 3799, + "modifierName": { + "argumentTypes": null, + "id": 3798, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "8690:9:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "8690:9:25" + } + ], + "name": "transferAnyERC20Token", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3797, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3794, + "name": "tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 3812, + "src": "8648:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3793, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8648:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3796, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3812, + "src": "8670:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3795, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8670:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8647:35:25" + }, + "payable": false, + "returnParameters": { + "id": 3802, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3801, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3812, + "src": "8709:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3800, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8709:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8708:14:25" + }, + "scope": 3813, + "src": "8617:182:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 3814, + "src": "3506:5295:25" + } + ], + "src": "0:8801:25" + }, + "legacyAST": { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", + "exportedSymbols": { + "ApproveAndCallFallBack": [ + 3437 + ], + "ERC20Interface": [ + 3425 + ], + "Owned": [ + 3506 + ], + "SafeMath": [ + 3358 + ], + "TestToken": [ + 3813 + ] + }, + "id": 3814, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3263, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:25" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 3358, + "linearizedBaseContracts": [ + 3358 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 3284, + "nodeType": "Block", + "src": "719:51:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3272, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3270, + "src": "729:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3273, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3265, + "src": "733:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 3274, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3267, + "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": 3277, + "nodeType": "ExpressionStatement", + "src": "729:9:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3279, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3270, + "src": "756:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 3280, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3265, + "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": 3278, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "748:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "748:15:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3283, + "nodeType": "ExpressionStatement", + "src": "748:15:25" + } + ] + }, + "documentation": null, + "id": 3285, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3268, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3265, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 3285, + "src": "672:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3264, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "672:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3267, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3285, + "src": "680:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3266, + "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": 3271, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3270, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 3285, + "src": "711:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3269, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "711:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "710:8:25" + }, + "scope": 3358, + "src": "659:111:25", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3306, + "nodeType": "Block", + "src": "835:51:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3295, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3289, + "src": "853:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 3296, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3287, + "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": 3294, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "845:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "845:15:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3299, + "nodeType": "ExpressionStatement", + "src": "845:15:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3300, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3292, + "src": "870:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3301, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3287, + "src": "874:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 3302, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3289, + "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": 3305, + "nodeType": "ExpressionStatement", + "src": "870:9:25" + } + ] + }, + "documentation": null, + "id": 3307, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3290, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3287, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 3307, + "src": "788:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3286, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "788:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3289, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3307, + "src": "796:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3288, + "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": 3293, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3292, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 3307, + "src": "827:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3291, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "827:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "826:8:25" + }, + "scope": 3358, + "src": "775:111:25", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3334, + "nodeType": "Block", + "src": "951:65:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3316, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3314, + "src": "961:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3317, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3309, + "src": "965:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 3318, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3311, + "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": 3321, + "nodeType": "ExpressionStatement", + "src": "961:9:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3323, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3309, + "src": "988:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3324, + "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": 3330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3326, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3314, + "src": "998:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 3327, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3309, + "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": 3329, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3311, + "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": 3322, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "980:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "980:29:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3333, + "nodeType": "ExpressionStatement", + "src": "980:29:25" + } + ] + }, + "documentation": null, + "id": 3335, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3312, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3309, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 3335, + "src": "904:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3308, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "904:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3311, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3335, + "src": "912:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3310, + "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": 3315, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3314, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 3335, + "src": "943:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3313, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "943:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "942:8:25" + }, + "scope": 3358, + "src": "891:125:25", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3356, + "nodeType": "Block", + "src": "1081:50:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3345, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3339, + "src": "1099:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3346, + "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": 3344, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "1091:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1091:14:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3349, + "nodeType": "ExpressionStatement", + "src": "1091:14:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3350, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3342, + "src": "1115:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3351, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3337, + "src": "1119:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 3352, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3339, + "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": 3355, + "nodeType": "ExpressionStatement", + "src": "1115:9:25" + } + ] + }, + "documentation": null, + "id": 3357, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3340, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3337, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 3357, + "src": "1034:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3336, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1034:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3339, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3357, + "src": "1042:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3338, + "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": 3343, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3342, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 3357, + "src": "1073:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3341, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1073:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1072:8:25" + }, + "scope": 3358, + "src": "1021:110:25", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 3814, + "src": "636:497:25" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 3425, + "linearizedBaseContracts": [ + 3425 + ], + "name": "ERC20Interface", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 3363, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3359, + "nodeType": "ParameterList", + "parameters": [], + "src": "1445:2:25" + }, + "payable": false, + "returnParameters": { + "id": 3362, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3361, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3363, + "src": "1473:4:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3360, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1473:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1472:6:25" + }, + "scope": 3425, + "src": "1425:54:25", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 3370, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3366, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3365, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 3370, + "src": "1503:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3364, + "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": 3369, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3368, + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 3370, + "src": "1548:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3367, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1548:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1547:14:25" + }, + "scope": 3425, + "src": "1484:78:25", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 3379, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3375, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3372, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 3379, + "src": "1586:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3371, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1586:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3374, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3379, + "src": "1606:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3373, + "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": 3378, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3377, + "name": "remaining", + "nodeType": "VariableDeclaration", + "scope": 3379, + "src": "1648:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3376, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1648:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1647:16:25" + }, + "scope": 3425, + "src": "1567:97:25", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 3388, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3384, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3381, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3388, + "src": "1687:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3380, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1687:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3383, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3388, + "src": "1699:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3382, + "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": 3387, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3386, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3388, + "src": "1728:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3385, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1728:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1727:14:25" + }, + "scope": 3425, + "src": "1669:73:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 3397, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3393, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3390, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3397, + "src": "1764:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3389, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1764:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3392, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3397, + "src": "1781:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3391, + "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": 3396, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3395, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3397, + "src": "1810:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3394, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1810:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1809:14:25" + }, + "scope": 3425, + "src": "1747:77:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 3408, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3404, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3399, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3408, + "src": "1851:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3398, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1851:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3401, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3408, + "src": "1865:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3400, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1865:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3403, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3408, + "src": "1877:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3402, + "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": 3407, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3406, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3408, + "src": "1906:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3405, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1906:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1905:14:25" + }, + "scope": 3425, + "src": "1829:91:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 3416, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 3415, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3410, + "indexed": true, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3416, + "src": "1941:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3409, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1941:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3412, + "indexed": true, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3416, + "src": "1963:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3411, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1963:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3414, + "indexed": false, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3416, + "src": "1983:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3413, + "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": 3424, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 3423, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3418, + "indexed": true, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 3424, + "src": "2016:26:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3417, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2016:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3420, + "indexed": true, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3424, + "src": "2044:23:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3419, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2044:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3422, + "indexed": false, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3424, + "src": "2069:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3421, + "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": 3814, + "src": "1395:689:25" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 3437, + "linearizedBaseContracts": [ + 3437 + ], + "name": "ApproveAndCallFallBack", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 3436, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "receiveApproval", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3434, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3427, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3436, + "src": "2416:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3426, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2416:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3429, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3436, + "src": "2430:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3428, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2430:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3431, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 3436, + "src": "2446:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3430, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2446:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3433, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 3436, + "src": "2461:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3432, + "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": 3435, + "nodeType": "ParameterList", + "parameters": [], + "src": "2479:0:25" + }, + "scope": 3437, + "src": "2391:89:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 3814, + "src": "2353:129:25" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 3506, + "linearizedBaseContracts": [ + 3506 + ], + "name": "Owned", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 3439, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 3506, + "src": "2684:20:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3438, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2684:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3441, + "name": "newOwner", + "nodeType": "VariableDeclaration", + "scope": 3506, + "src": "2710:23:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3440, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2710:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 3447, + "name": "OwnershipTransferred", + "nodeType": "EventDefinition", + "parameters": { + "id": 3446, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3443, + "indexed": true, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 3447, + "src": "2767:21:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3442, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2767:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3445, + "indexed": true, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 3447, + "src": "2790:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3444, + "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": 3455, + "nodeType": "Block", + "src": "2838:35:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3450, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "2848:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3451, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "2856:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3452, + "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": 3454, + "nodeType": "ExpressionStatement", + "src": "2848:18:25" + } + ] + }, + "documentation": null, + "id": 3456, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3448, + "nodeType": "ParameterList", + "parameters": [], + "src": "2828:2:25" + }, + "payable": false, + "returnParameters": { + "id": 3449, + "nodeType": "ParameterList", + "parameters": [], + "src": "2838:0:25" + }, + "scope": 3506, + "src": "2817:56:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3466, + "nodeType": "Block", + "src": "2898:56:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3459, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "2916:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3460, + "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": 3461, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "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": 3458, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "2908:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2908:28:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3464, + "nodeType": "ExpressionStatement", + "src": "2908:28:25" + }, + { + "id": 3465, + "nodeType": "PlaceholderStatement", + "src": "2946:1:25" + } + ] + }, + "documentation": null, + "id": 3467, + "name": "onlyOwner", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 3457, + "nodeType": "ParameterList", + "parameters": [], + "src": "2898:0:25" + }, + "src": "2879:75:25", + "visibility": "internal" + }, + { + "body": { + "id": 3478, + "nodeType": "Block", + "src": "3023:37:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3474, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3441, + "src": "3033:8:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3475, + "name": "_newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3469, + "src": "3044:9:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3033:20:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3477, + "nodeType": "ExpressionStatement", + "src": "3033:20:25" + } + ] + }, + "documentation": null, + "id": 3479, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 3472, + "modifierName": { + "argumentTypes": null, + "id": 3471, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "3013:9:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3013:9:25" + } + ], + "name": "transferOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3470, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3469, + "name": "_newOwner", + "nodeType": "VariableDeclaration", + "scope": 3479, + "src": "2987:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3468, + "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": 3473, + "nodeType": "ParameterList", + "parameters": [], + "src": "3023:0:25" + }, + "scope": 3506, + "src": "2960:100:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3504, + "nodeType": "Block", + "src": "3099:157:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3483, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "3117:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3484, + "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": 3485, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3441, + "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": 3482, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "3109:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3109:31:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3488, + "nodeType": "ExpressionStatement", + "src": "3109:31:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3490, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "3176:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3491, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3441, + "src": "3183:8:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3489, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3447, + "src": "3155:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 3492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3155:37:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3493, + "nodeType": "EmitStatement", + "src": "3150:42:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3494, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "3202:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3495, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3441, + "src": "3210:8:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3202:16:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3497, + "nodeType": "ExpressionStatement", + "src": "3202:16:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3498, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3441, + "src": "3228:8:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3500, + "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": 3499, + "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": 3501, + "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": 3503, + "nodeType": "ExpressionStatement", + "src": "3228:21:25" + } + ] + }, + "documentation": null, + "id": 3505, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "acceptOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3480, + "nodeType": "ParameterList", + "parameters": [], + "src": "3089:2:25" + }, + "payable": false, + "returnParameters": { + "id": 3481, + "nodeType": "ParameterList", + "parameters": [], + "src": "3099:0:25" + }, + "scope": 3506, + "src": "3065:191:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 3814, + "src": "2663:595:25" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 3507, + "name": "ERC20Interface", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3425, + "src": "3528:14:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Interface_$3425", + "typeString": "contract ERC20Interface" + } + }, + "id": 3508, + "nodeType": "InheritanceSpecifier", + "src": "3528:14:25" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 3509, + "name": "Owned", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3506, + "src": "3544:5:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Owned_$3506", + "typeString": "contract Owned" + } + }, + "id": 3510, + "nodeType": "InheritanceSpecifier", + "src": "3544:5:25" + } + ], + "contractDependencies": [ + 3425, + 3506 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 3813, + "linearizedBaseContracts": [ + 3813, + 3506, + 3425 + ], + "name": "TestToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 3513, + "libraryName": { + "contractScope": null, + "id": 3511, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3358, + "src": "3562:8:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$3358", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "3556:24:25", + "typeName": { + "id": 3512, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3575:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 3515, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3586:20:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3514, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3586:6:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3517, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3612:19:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3516, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3612:6:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3519, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3637:21:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 3518, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3637:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3521, + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3664:17:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3520, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3664:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3525, + "name": "balances", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3688:33:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 3524, + "keyType": { + "id": 3522, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3696:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3688:24:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 3523, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3707:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3531, + "name": "allowed", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3727: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": 3530, + "keyType": { + "id": 3526, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3735:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3727:44:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 3529, + "keyType": { + "id": 3527, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3754:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3746:24:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 3528, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3765:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "body": { + "id": 3570, + "nodeType": "Block", + "src": "3987:235:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3534, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3515, + "src": "3997:6:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "544b4e", + "id": 3535, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4006:5:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66", + "typeString": "literal_string \"TKN\"" + }, + "value": "TKN" + }, + "src": "3997:14:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3537, + "nodeType": "ExpressionStatement", + "src": "3997:14:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3540, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3538, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3517, + "src": "4021:4:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "546f6b656e204578616d706c65", + "id": 3539, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4028:15:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a", + "typeString": "literal_string \"Token Example\"" + }, + "value": "Token Example" + }, + "src": "4021:22:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3541, + "nodeType": "ExpressionStatement", + "src": "4021:22:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3542, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3519, + "src": "4053:8:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "3138", + "id": 3543, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4064:2:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "src": "4053:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 3545, + "nodeType": "ExpressionStatement", + "src": "4053:13:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3546, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3521, + "src": "4076:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "31303030303030", + "id": 3547, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4091: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": 3552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 3548, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4101: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": 3550, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3519, + "src": "4110:8:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 3549, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4105:4:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" + }, + "id": 3551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4105:14:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4101:18:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4091:28:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4076:43:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3555, + "nodeType": "ExpressionStatement", + "src": "4076:43:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3556, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "4129:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3558, + "indexExpression": { + "argumentTypes": null, + "id": 3557, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "4138:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4129:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3559, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3521, + "src": "4147:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4129:30:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3561, + "nodeType": "ExpressionStatement", + "src": "4129:30:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3564, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4191: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": 3563, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4183:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4183:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3566, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "4195:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3567, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3521, + "src": "4202: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": 3562, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3416, + "src": "4174:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4174:41:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3569, + "nodeType": "EmitStatement", + "src": "4169:46:25" + } + ] + }, + "documentation": null, + "id": 3571, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3532, + "nodeType": "ParameterList", + "parameters": [], + "src": "3977:2:25" + }, + "payable": false, + "returnParameters": { + "id": 3533, + "nodeType": "ParameterList", + "parameters": [], + "src": "3987:0:25" + }, + "scope": 3813, + "src": "3966:256:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3585, + "nodeType": "Block", + "src": "4459:62:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3578, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "4493:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3582, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3580, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4510: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": 3579, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4502:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3581, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4502:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4493:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 3576, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3521, + "src": "4476:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3577, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 3307, + "src": "4476: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": 3583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4476:38:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3575, + "id": 3584, + "nodeType": "Return", + "src": "4469:45:25" + } + ] + }, + "documentation": null, + "id": 3586, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3572, + "nodeType": "ParameterList", + "parameters": [], + "src": "4429:2:25" + }, + "payable": false, + "returnParameters": { + "id": 3575, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3574, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3586, + "src": "4453:4:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3573, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4453:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4452:6:25" + }, + "scope": 3813, + "src": "4409:112:25", + "stateMutability": "view", + "superFunction": 3363, + "visibility": "public" + }, + { + "body": { + "id": 3597, + "nodeType": "Block", + "src": "4816:44:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3593, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "4833:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3595, + "indexExpression": { + "argumentTypes": null, + "id": 3594, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3588, + "src": "4842:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4833:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3592, + "id": 3596, + "nodeType": "Return", + "src": "4826:27:25" + } + ] + }, + "documentation": null, + "id": 3598, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3589, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3588, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 3598, + "src": "4761:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3587, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4761:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4760:20:25" + }, + "payable": false, + "returnParameters": { + "id": 3592, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3591, + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 3598, + "src": "4802:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3590, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4802:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4801:14:25" + }, + "scope": 3813, + "src": "4742:118:25", + "stateMutability": "view", + "superFunction": 3370, + "visibility": "public" + }, + { + "body": { + "id": 3640, + "nodeType": "Block", + "src": "5276:189:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3618, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3607, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "5286:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3610, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3608, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "5295:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5295:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5286:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3616, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3602, + "src": "5334:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3611, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "5309:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3614, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3612, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "5318:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3613, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5318:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5309:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3615, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 3307, + "src": "5309: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": 3617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5309:32:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5286:55:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3619, + "nodeType": "ExpressionStatement", + "src": "5286:55:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3620, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "5351:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3622, + "indexExpression": { + "argumentTypes": null, + "id": 3621, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3600, + "src": "5360:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5351:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3627, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3602, + "src": "5383:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3623, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "5366:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3625, + "indexExpression": { + "argumentTypes": null, + "id": 3624, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3600, + "src": "5375:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5366:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 3285, + "src": "5366: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": 3628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5366:24:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5351:39:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3630, + "nodeType": "ExpressionStatement", + "src": "5351:39:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3632, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "5414:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3633, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5414:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3634, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3600, + "src": "5426:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3635, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3602, + "src": "5430: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": 3631, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3416, + "src": "5405:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5405:32:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3637, + "nodeType": "EmitStatement", + "src": "5400:37:25" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5454:4:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3606, + "id": 3639, + "nodeType": "Return", + "src": "5447:11:25" + } + ] + }, + "documentation": null, + "id": 3641, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3603, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3600, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3641, + "src": "5221:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3599, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5221:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3602, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3641, + "src": "5233:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3601, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5233:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5220:25:25" + }, + "payable": false, + "returnParameters": { + "id": 3606, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3605, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3641, + "src": "5262:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3604, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5262:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5261:14:25" + }, + "scope": 3813, + "src": "5203:262:25", + "stateMutability": "nonpayable", + "superFunction": 3388, + "visibility": "public" + }, + { + "body": { + "id": 3668, + "nodeType": "Block", + "src": "6048:127:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3650, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "6058:7:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3654, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3651, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "6066:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3652, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6066:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6058:19:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3655, + "indexExpression": { + "argumentTypes": null, + "id": 3653, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3643, + "src": "6078:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6058:28:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3656, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3645, + "src": "6089:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6058:37:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3658, + "nodeType": "ExpressionStatement", + "src": "6058:37:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3660, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "6119:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6119:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3662, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3643, + "src": "6131:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3663, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3645, + "src": "6140: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": 3659, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3424, + "src": "6110:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6110:37:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3665, + "nodeType": "EmitStatement", + "src": "6105:42:25" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6164:4:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3649, + "id": 3667, + "nodeType": "Return", + "src": "6157:11:25" + } + ] + }, + "documentation": null, + "id": 3669, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3646, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3643, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3669, + "src": "5988:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3642, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5988:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3645, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3669, + "src": "6005:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3644, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6005:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5987:30:25" + }, + "payable": false, + "returnParameters": { + "id": 3649, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3648, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3669, + "src": "6034:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3647, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6034:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6033:14:25" + }, + "scope": 3813, + "src": "5971:204:25", + "stateMutability": "nonpayable", + "superFunction": 3397, + "visibility": "public" + }, + { + "body": { + "id": 3727, + "nodeType": "Block", + "src": "6798:246:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3680, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "6808:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3682, + "indexExpression": { + "argumentTypes": null, + "id": 3681, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "6817:4:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6808:14:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3687, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3675, + "src": "6844:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3683, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "6825:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3685, + "indexExpression": { + "argumentTypes": null, + "id": 3684, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "6834:4:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6825:14:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 3307, + "src": "6825: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": 3688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6825:26:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6808:43:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3690, + "nodeType": "ExpressionStatement", + "src": "6808:43:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3706, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3691, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "6861:7:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3695, + "indexExpression": { + "argumentTypes": null, + "id": 3692, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "6869:4:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6861:13:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3696, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3693, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "6875:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6875:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6861:25:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3704, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3675, + "src": "6919: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": 3697, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "6889:7:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3699, + "indexExpression": { + "argumentTypes": null, + "id": 3698, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "6897:4:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6889:13:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3702, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3700, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "6903:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3701, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6903:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6889:25:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 3307, + "src": "6889: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": 3705, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6889:37:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6861:65:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3707, + "nodeType": "ExpressionStatement", + "src": "6861:65:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3708, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "6936:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3710, + "indexExpression": { + "argumentTypes": null, + "id": 3709, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3673, + "src": "6945:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6936:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3715, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3675, + "src": "6968:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3711, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "6951:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3713, + "indexExpression": { + "argumentTypes": null, + "id": 3712, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3673, + "src": "6960:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6951:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 3285, + "src": "6951: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": 3716, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6951:24:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6936:39:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3718, + "nodeType": "ExpressionStatement", + "src": "6936:39:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3720, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "6999:4:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3721, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3673, + "src": "7005:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3722, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3675, + "src": "7009: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": 3719, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3416, + "src": "6990:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6990:26:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3724, + "nodeType": "EmitStatement", + "src": "6985:31:25" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3725, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7033:4:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3679, + "id": 3726, + "nodeType": "Return", + "src": "7026:11:25" + } + ] + }, + "documentation": null, + "id": 3728, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3676, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3671, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3728, + "src": "6729:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3670, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6729:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3673, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3728, + "src": "6743:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3672, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6743:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3675, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3728, + "src": "6755:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3674, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6755:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6728:39:25" + }, + "payable": false, + "returnParameters": { + "id": 3679, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3678, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3728, + "src": "6784:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3677, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6784:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6783:14:25" + }, + "scope": 3813, + "src": "6707:337:25", + "stateMutability": "nonpayable", + "superFunction": 3408, + "visibility": "public" + }, + { + "body": { + "id": 3743, + "nodeType": "Block", + "src": "7418:52:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3737, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "7435:7:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3739, + "indexExpression": { + "argumentTypes": null, + "id": 3738, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3730, + "src": "7443:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7435:19:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3741, + "indexExpression": { + "argumentTypes": null, + "id": 3740, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3732, + "src": "7455:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7435:28:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3736, + "id": 3742, + "nodeType": "Return", + "src": "7428:35:25" + } + ] + }, + "documentation": null, + "id": 3744, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3733, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3730, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 3744, + "src": "7344:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3729, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7344:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3732, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3744, + "src": "7364:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3731, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7364:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7343:37:25" + }, + "payable": false, + "returnParameters": { + "id": 3736, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3735, + "name": "remaining", + "nodeType": "VariableDeclaration", + "scope": 3744, + "src": "7402:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3734, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7402:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7401:16:25" + }, + "scope": 3813, + "src": "7325:145:25", + "stateMutability": "view", + "superFunction": 3379, + "visibility": "public" + }, + { + "body": { + "id": 3784, + "nodeType": "Block", + "src": "7926:216:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3755, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "7936:7:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3759, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3756, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "7944:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7944:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7936:19:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3760, + "indexExpression": { + "argumentTypes": null, + "id": 3758, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3746, + "src": "7956:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7936:28:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3761, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3748, + "src": "7967:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7936:37:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3763, + "nodeType": "ExpressionStatement", + "src": "7936:37:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3765, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "7997:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7997:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3767, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3746, + "src": "8009:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3768, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3748, + "src": "8018: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": 3764, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3424, + "src": "7988:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7988:37:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3770, + "nodeType": "EmitStatement", + "src": "7983:42:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3775, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "8083:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8083:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3777, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3748, + "src": "8095:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3778, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3907, + "src": "8103:4:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TestToken_$3813", + "typeString": "contract TestToken" + } + }, + { + "argumentTypes": null, + "id": 3779, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3750, + "src": "8109: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$_TestToken_$3813", + "typeString": "contract TestToken" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3772, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3746, + "src": "8058:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3771, + "name": "ApproveAndCallFallBack", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3437, + "src": "8035:22:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3437_$", + "typeString": "type(contract ApproveAndCallFallBack)" + } + }, + "id": 3773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8035:31:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3437", + "typeString": "contract ApproveAndCallFallBack" + } + }, + "id": 3774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "receiveApproval", + "nodeType": "MemberAccess", + "referencedDeclaration": 3436, + "src": "8035: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": 3780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8035:79:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3781, + "nodeType": "ExpressionStatement", + "src": "8035:79:25" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3782, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8131:4:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3754, + "id": 3783, + "nodeType": "Return", + "src": "8124:11:25" + } + ] + }, + "documentation": null, + "id": 3785, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approveAndCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3751, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3746, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3785, + "src": "7854:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3745, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7854:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3748, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3785, + "src": "7871:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3747, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7871:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3750, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 3785, + "src": "7884:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3749, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7884:5:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7853:42:25" + }, + "payable": false, + "returnParameters": { + "id": 3754, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3753, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3785, + "src": "7912:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3752, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7912:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7911:14:25" + }, + "scope": 3813, + "src": "7830:312:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3791, + "nodeType": "Block", + "src": "8360:25:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3788, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3833, + 3834 + ], + "referencedDeclaration": 3833, + "src": "8370:6:25", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 3789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8370:8:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3790, + "nodeType": "ExpressionStatement", + "src": "8370:8:25" + } + ] + }, + "documentation": null, + "id": 3792, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3786, + "nodeType": "ParameterList", + "parameters": [], + "src": "8342:2:25" + }, + "payable": true, + "returnParameters": { + "id": 3787, + "nodeType": "ParameterList", + "parameters": [], + "src": "8360:0:25" + }, + "scope": 3813, + "src": "8333:52:25", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3811, + "nodeType": "Block", + "src": "8723:76:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3807, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "8778:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3808, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3796, + "src": "8785: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": 3804, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3794, + "src": "8755:12:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3803, + "name": "ERC20Interface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3425, + "src": "8740:14:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3425_$", + "typeString": "type(contract ERC20Interface)" + } + }, + "id": 3805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8740:28:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Interface_$3425", + "typeString": "contract ERC20Interface" + } + }, + "id": 3806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 3388, + "src": "8740:37:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 3809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8740:52:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3802, + "id": 3810, + "nodeType": "Return", + "src": "8733:59:25" + } + ] + }, + "documentation": null, + "id": 3812, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 3799, + "modifierName": { + "argumentTypes": null, + "id": 3798, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "8690:9:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "8690:9:25" + } + ], + "name": "transferAnyERC20Token", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3797, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3794, + "name": "tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 3812, + "src": "8648:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3793, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8648:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3796, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3812, + "src": "8670:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3795, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8670:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8647:35:25" + }, + "payable": false, + "returnParameters": { + "id": 3802, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3801, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3812, + "src": "8709:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3800, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8709:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8708:14:25" + }, + "scope": 3813, + "src": "8617:182:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 3814, + "src": "3506:5295:25" + } + ], + "src": "0:8801:25" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-08-20T07:44:41.098Z" +} \ No newline at end of file diff --git a/safe-contracts/build/contracts/test/ERC20Interface.json b/safe-contracts/build/contracts/test/ERC20Interface.json new file mode 100644 index 0000000000..f69d8f5feb --- /dev/null +++ b/safe-contracts/build/contracts/test/ERC20Interface.json @@ -0,0 +1,14363 @@ +{ + "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": [ + 3437 + ], + "ERC20Interface": [ + 3425 + ], + "Owned": [ + 3506 + ], + "SafeMath": [ + 3358 + ], + "TestToken": [ + 3813 + ] + }, + "id": 3814, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3263, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:25" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 3358, + "linearizedBaseContracts": [ + 3358 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 3284, + "nodeType": "Block", + "src": "719:51:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3272, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3270, + "src": "729:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3273, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3265, + "src": "733:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 3274, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3267, + "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": 3277, + "nodeType": "ExpressionStatement", + "src": "729:9:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3279, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3270, + "src": "756:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 3280, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3265, + "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": 3278, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "748:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "748:15:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3283, + "nodeType": "ExpressionStatement", + "src": "748:15:25" + } + ] + }, + "documentation": null, + "id": 3285, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3268, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3265, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 3285, + "src": "672:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3264, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "672:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3267, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3285, + "src": "680:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3266, + "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": 3271, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3270, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 3285, + "src": "711:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3269, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "711:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "710:8:25" + }, + "scope": 3358, + "src": "659:111:25", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3306, + "nodeType": "Block", + "src": "835:51:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3295, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3289, + "src": "853:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 3296, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3287, + "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": 3294, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "845:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "845:15:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3299, + "nodeType": "ExpressionStatement", + "src": "845:15:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3300, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3292, + "src": "870:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3301, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3287, + "src": "874:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 3302, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3289, + "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": 3305, + "nodeType": "ExpressionStatement", + "src": "870:9:25" + } + ] + }, + "documentation": null, + "id": 3307, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3290, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3287, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 3307, + "src": "788:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3286, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "788:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3289, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3307, + "src": "796:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3288, + "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": 3293, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3292, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 3307, + "src": "827:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3291, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "827:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "826:8:25" + }, + "scope": 3358, + "src": "775:111:25", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3334, + "nodeType": "Block", + "src": "951:65:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3316, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3314, + "src": "961:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3317, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3309, + "src": "965:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 3318, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3311, + "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": 3321, + "nodeType": "ExpressionStatement", + "src": "961:9:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3323, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3309, + "src": "988:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3324, + "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": 3330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3326, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3314, + "src": "998:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 3327, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3309, + "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": 3329, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3311, + "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": 3322, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "980:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "980:29:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3333, + "nodeType": "ExpressionStatement", + "src": "980:29:25" + } + ] + }, + "documentation": null, + "id": 3335, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3312, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3309, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 3335, + "src": "904:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3308, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "904:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3311, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3335, + "src": "912:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3310, + "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": 3315, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3314, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 3335, + "src": "943:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3313, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "943:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "942:8:25" + }, + "scope": 3358, + "src": "891:125:25", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3356, + "nodeType": "Block", + "src": "1081:50:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3345, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3339, + "src": "1099:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3346, + "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": 3344, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "1091:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1091:14:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3349, + "nodeType": "ExpressionStatement", + "src": "1091:14:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3350, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3342, + "src": "1115:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3351, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3337, + "src": "1119:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 3352, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3339, + "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": 3355, + "nodeType": "ExpressionStatement", + "src": "1115:9:25" + } + ] + }, + "documentation": null, + "id": 3357, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3340, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3337, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 3357, + "src": "1034:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3336, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1034:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3339, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3357, + "src": "1042:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3338, + "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": 3343, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3342, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 3357, + "src": "1073:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3341, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1073:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1072:8:25" + }, + "scope": 3358, + "src": "1021:110:25", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 3814, + "src": "636:497:25" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 3425, + "linearizedBaseContracts": [ + 3425 + ], + "name": "ERC20Interface", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 3363, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3359, + "nodeType": "ParameterList", + "parameters": [], + "src": "1445:2:25" + }, + "payable": false, + "returnParameters": { + "id": 3362, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3361, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3363, + "src": "1473:4:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3360, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1473:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1472:6:25" + }, + "scope": 3425, + "src": "1425:54:25", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 3370, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3366, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3365, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 3370, + "src": "1503:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3364, + "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": 3369, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3368, + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 3370, + "src": "1548:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3367, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1548:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1547:14:25" + }, + "scope": 3425, + "src": "1484:78:25", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 3379, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3375, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3372, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 3379, + "src": "1586:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3371, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1586:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3374, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3379, + "src": "1606:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3373, + "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": 3378, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3377, + "name": "remaining", + "nodeType": "VariableDeclaration", + "scope": 3379, + "src": "1648:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3376, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1648:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1647:16:25" + }, + "scope": 3425, + "src": "1567:97:25", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 3388, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3384, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3381, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3388, + "src": "1687:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3380, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1687:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3383, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3388, + "src": "1699:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3382, + "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": 3387, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3386, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3388, + "src": "1728:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3385, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1728:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1727:14:25" + }, + "scope": 3425, + "src": "1669:73:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 3397, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3393, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3390, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3397, + "src": "1764:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3389, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1764:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3392, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3397, + "src": "1781:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3391, + "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": 3396, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3395, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3397, + "src": "1810:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3394, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1810:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1809:14:25" + }, + "scope": 3425, + "src": "1747:77:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 3408, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3404, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3399, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3408, + "src": "1851:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3398, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1851:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3401, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3408, + "src": "1865:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3400, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1865:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3403, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3408, + "src": "1877:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3402, + "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": 3407, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3406, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3408, + "src": "1906:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3405, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1906:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1905:14:25" + }, + "scope": 3425, + "src": "1829:91:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 3416, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 3415, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3410, + "indexed": true, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3416, + "src": "1941:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3409, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1941:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3412, + "indexed": true, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3416, + "src": "1963:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3411, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1963:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3414, + "indexed": false, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3416, + "src": "1983:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3413, + "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": 3424, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 3423, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3418, + "indexed": true, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 3424, + "src": "2016:26:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3417, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2016:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3420, + "indexed": true, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3424, + "src": "2044:23:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3419, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2044:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3422, + "indexed": false, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3424, + "src": "2069:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3421, + "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": 3814, + "src": "1395:689:25" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 3437, + "linearizedBaseContracts": [ + 3437 + ], + "name": "ApproveAndCallFallBack", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 3436, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "receiveApproval", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3434, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3427, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3436, + "src": "2416:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3426, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2416:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3429, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3436, + "src": "2430:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3428, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2430:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3431, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 3436, + "src": "2446:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3430, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2446:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3433, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 3436, + "src": "2461:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3432, + "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": 3435, + "nodeType": "ParameterList", + "parameters": [], + "src": "2479:0:25" + }, + "scope": 3437, + "src": "2391:89:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 3814, + "src": "2353:129:25" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 3506, + "linearizedBaseContracts": [ + 3506 + ], + "name": "Owned", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 3439, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 3506, + "src": "2684:20:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3438, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2684:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3441, + "name": "newOwner", + "nodeType": "VariableDeclaration", + "scope": 3506, + "src": "2710:23:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3440, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2710:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 3447, + "name": "OwnershipTransferred", + "nodeType": "EventDefinition", + "parameters": { + "id": 3446, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3443, + "indexed": true, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 3447, + "src": "2767:21:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3442, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2767:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3445, + "indexed": true, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 3447, + "src": "2790:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3444, + "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": 3455, + "nodeType": "Block", + "src": "2838:35:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3450, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "2848:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3451, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "2856:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3452, + "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": 3454, + "nodeType": "ExpressionStatement", + "src": "2848:18:25" + } + ] + }, + "documentation": null, + "id": 3456, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3448, + "nodeType": "ParameterList", + "parameters": [], + "src": "2828:2:25" + }, + "payable": false, + "returnParameters": { + "id": 3449, + "nodeType": "ParameterList", + "parameters": [], + "src": "2838:0:25" + }, + "scope": 3506, + "src": "2817:56:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3466, + "nodeType": "Block", + "src": "2898:56:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3459, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "2916:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3460, + "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": 3461, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "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": 3458, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "2908:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2908:28:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3464, + "nodeType": "ExpressionStatement", + "src": "2908:28:25" + }, + { + "id": 3465, + "nodeType": "PlaceholderStatement", + "src": "2946:1:25" + } + ] + }, + "documentation": null, + "id": 3467, + "name": "onlyOwner", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 3457, + "nodeType": "ParameterList", + "parameters": [], + "src": "2898:0:25" + }, + "src": "2879:75:25", + "visibility": "internal" + }, + { + "body": { + "id": 3478, + "nodeType": "Block", + "src": "3023:37:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3474, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3441, + "src": "3033:8:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3475, + "name": "_newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3469, + "src": "3044:9:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3033:20:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3477, + "nodeType": "ExpressionStatement", + "src": "3033:20:25" + } + ] + }, + "documentation": null, + "id": 3479, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 3472, + "modifierName": { + "argumentTypes": null, + "id": 3471, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "3013:9:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3013:9:25" + } + ], + "name": "transferOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3470, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3469, + "name": "_newOwner", + "nodeType": "VariableDeclaration", + "scope": 3479, + "src": "2987:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3468, + "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": 3473, + "nodeType": "ParameterList", + "parameters": [], + "src": "3023:0:25" + }, + "scope": 3506, + "src": "2960:100:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3504, + "nodeType": "Block", + "src": "3099:157:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3483, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "3117:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3484, + "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": 3485, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3441, + "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": 3482, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "3109:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3109:31:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3488, + "nodeType": "ExpressionStatement", + "src": "3109:31:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3490, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "3176:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3491, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3441, + "src": "3183:8:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3489, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3447, + "src": "3155:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 3492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3155:37:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3493, + "nodeType": "EmitStatement", + "src": "3150:42:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3494, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "3202:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3495, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3441, + "src": "3210:8:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3202:16:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3497, + "nodeType": "ExpressionStatement", + "src": "3202:16:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3498, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3441, + "src": "3228:8:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3500, + "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": 3499, + "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": 3501, + "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": 3503, + "nodeType": "ExpressionStatement", + "src": "3228:21:25" + } + ] + }, + "documentation": null, + "id": 3505, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "acceptOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3480, + "nodeType": "ParameterList", + "parameters": [], + "src": "3089:2:25" + }, + "payable": false, + "returnParameters": { + "id": 3481, + "nodeType": "ParameterList", + "parameters": [], + "src": "3099:0:25" + }, + "scope": 3506, + "src": "3065:191:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 3814, + "src": "2663:595:25" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 3507, + "name": "ERC20Interface", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3425, + "src": "3528:14:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Interface_$3425", + "typeString": "contract ERC20Interface" + } + }, + "id": 3508, + "nodeType": "InheritanceSpecifier", + "src": "3528:14:25" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 3509, + "name": "Owned", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3506, + "src": "3544:5:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Owned_$3506", + "typeString": "contract Owned" + } + }, + "id": 3510, + "nodeType": "InheritanceSpecifier", + "src": "3544:5:25" + } + ], + "contractDependencies": [ + 3425, + 3506 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 3813, + "linearizedBaseContracts": [ + 3813, + 3506, + 3425 + ], + "name": "TestToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 3513, + "libraryName": { + "contractScope": null, + "id": 3511, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3358, + "src": "3562:8:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$3358", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "3556:24:25", + "typeName": { + "id": 3512, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3575:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 3515, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3586:20:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3514, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3586:6:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3517, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3612:19:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3516, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3612:6:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3519, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3637:21:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 3518, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3637:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3521, + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3664:17:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3520, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3664:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3525, + "name": "balances", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3688:33:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 3524, + "keyType": { + "id": 3522, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3696:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3688:24:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 3523, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3707:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3531, + "name": "allowed", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3727: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": 3530, + "keyType": { + "id": 3526, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3735:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3727:44:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 3529, + "keyType": { + "id": 3527, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3754:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3746:24:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 3528, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3765:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "body": { + "id": 3570, + "nodeType": "Block", + "src": "3987:235:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3534, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3515, + "src": "3997:6:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "544b4e", + "id": 3535, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4006:5:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66", + "typeString": "literal_string \"TKN\"" + }, + "value": "TKN" + }, + "src": "3997:14:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3537, + "nodeType": "ExpressionStatement", + "src": "3997:14:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3540, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3538, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3517, + "src": "4021:4:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "546f6b656e204578616d706c65", + "id": 3539, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4028:15:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a", + "typeString": "literal_string \"Token Example\"" + }, + "value": "Token Example" + }, + "src": "4021:22:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3541, + "nodeType": "ExpressionStatement", + "src": "4021:22:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3542, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3519, + "src": "4053:8:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "3138", + "id": 3543, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4064:2:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "src": "4053:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 3545, + "nodeType": "ExpressionStatement", + "src": "4053:13:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3546, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3521, + "src": "4076:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "31303030303030", + "id": 3547, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4091: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": 3552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 3548, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4101: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": 3550, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3519, + "src": "4110:8:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 3549, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4105:4:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" + }, + "id": 3551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4105:14:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4101:18:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4091:28:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4076:43:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3555, + "nodeType": "ExpressionStatement", + "src": "4076:43:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3556, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "4129:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3558, + "indexExpression": { + "argumentTypes": null, + "id": 3557, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "4138:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4129:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3559, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3521, + "src": "4147:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4129:30:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3561, + "nodeType": "ExpressionStatement", + "src": "4129:30:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3564, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4191: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": 3563, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4183:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4183:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3566, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "4195:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3567, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3521, + "src": "4202: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": 3562, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3416, + "src": "4174:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4174:41:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3569, + "nodeType": "EmitStatement", + "src": "4169:46:25" + } + ] + }, + "documentation": null, + "id": 3571, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3532, + "nodeType": "ParameterList", + "parameters": [], + "src": "3977:2:25" + }, + "payable": false, + "returnParameters": { + "id": 3533, + "nodeType": "ParameterList", + "parameters": [], + "src": "3987:0:25" + }, + "scope": 3813, + "src": "3966:256:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3585, + "nodeType": "Block", + "src": "4459:62:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3578, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "4493:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3582, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3580, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4510: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": 3579, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4502:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3581, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4502:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4493:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 3576, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3521, + "src": "4476:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3577, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 3307, + "src": "4476: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": 3583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4476:38:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3575, + "id": 3584, + "nodeType": "Return", + "src": "4469:45:25" + } + ] + }, + "documentation": null, + "id": 3586, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3572, + "nodeType": "ParameterList", + "parameters": [], + "src": "4429:2:25" + }, + "payable": false, + "returnParameters": { + "id": 3575, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3574, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3586, + "src": "4453:4:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3573, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4453:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4452:6:25" + }, + "scope": 3813, + "src": "4409:112:25", + "stateMutability": "view", + "superFunction": 3363, + "visibility": "public" + }, + { + "body": { + "id": 3597, + "nodeType": "Block", + "src": "4816:44:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3593, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "4833:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3595, + "indexExpression": { + "argumentTypes": null, + "id": 3594, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3588, + "src": "4842:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4833:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3592, + "id": 3596, + "nodeType": "Return", + "src": "4826:27:25" + } + ] + }, + "documentation": null, + "id": 3598, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3589, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3588, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 3598, + "src": "4761:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3587, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4761:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4760:20:25" + }, + "payable": false, + "returnParameters": { + "id": 3592, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3591, + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 3598, + "src": "4802:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3590, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4802:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4801:14:25" + }, + "scope": 3813, + "src": "4742:118:25", + "stateMutability": "view", + "superFunction": 3370, + "visibility": "public" + }, + { + "body": { + "id": 3640, + "nodeType": "Block", + "src": "5276:189:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3618, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3607, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "5286:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3610, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3608, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "5295:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5295:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5286:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3616, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3602, + "src": "5334:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3611, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "5309:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3614, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3612, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "5318:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3613, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5318:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5309:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3615, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 3307, + "src": "5309: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": 3617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5309:32:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5286:55:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3619, + "nodeType": "ExpressionStatement", + "src": "5286:55:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3620, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "5351:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3622, + "indexExpression": { + "argumentTypes": null, + "id": 3621, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3600, + "src": "5360:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5351:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3627, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3602, + "src": "5383:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3623, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "5366:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3625, + "indexExpression": { + "argumentTypes": null, + "id": 3624, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3600, + "src": "5375:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5366:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 3285, + "src": "5366: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": 3628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5366:24:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5351:39:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3630, + "nodeType": "ExpressionStatement", + "src": "5351:39:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3632, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "5414:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3633, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5414:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3634, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3600, + "src": "5426:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3635, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3602, + "src": "5430: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": 3631, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3416, + "src": "5405:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5405:32:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3637, + "nodeType": "EmitStatement", + "src": "5400:37:25" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5454:4:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3606, + "id": 3639, + "nodeType": "Return", + "src": "5447:11:25" + } + ] + }, + "documentation": null, + "id": 3641, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3603, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3600, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3641, + "src": "5221:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3599, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5221:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3602, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3641, + "src": "5233:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3601, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5233:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5220:25:25" + }, + "payable": false, + "returnParameters": { + "id": 3606, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3605, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3641, + "src": "5262:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3604, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5262:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5261:14:25" + }, + "scope": 3813, + "src": "5203:262:25", + "stateMutability": "nonpayable", + "superFunction": 3388, + "visibility": "public" + }, + { + "body": { + "id": 3668, + "nodeType": "Block", + "src": "6048:127:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3650, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "6058:7:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3654, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3651, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "6066:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3652, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6066:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6058:19:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3655, + "indexExpression": { + "argumentTypes": null, + "id": 3653, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3643, + "src": "6078:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6058:28:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3656, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3645, + "src": "6089:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6058:37:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3658, + "nodeType": "ExpressionStatement", + "src": "6058:37:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3660, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "6119:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6119:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3662, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3643, + "src": "6131:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3663, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3645, + "src": "6140: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": 3659, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3424, + "src": "6110:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6110:37:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3665, + "nodeType": "EmitStatement", + "src": "6105:42:25" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6164:4:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3649, + "id": 3667, + "nodeType": "Return", + "src": "6157:11:25" + } + ] + }, + "documentation": null, + "id": 3669, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3646, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3643, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3669, + "src": "5988:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3642, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5988:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3645, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3669, + "src": "6005:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3644, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6005:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5987:30:25" + }, + "payable": false, + "returnParameters": { + "id": 3649, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3648, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3669, + "src": "6034:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3647, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6034:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6033:14:25" + }, + "scope": 3813, + "src": "5971:204:25", + "stateMutability": "nonpayable", + "superFunction": 3397, + "visibility": "public" + }, + { + "body": { + "id": 3727, + "nodeType": "Block", + "src": "6798:246:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3680, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "6808:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3682, + "indexExpression": { + "argumentTypes": null, + "id": 3681, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "6817:4:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6808:14:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3687, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3675, + "src": "6844:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3683, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "6825:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3685, + "indexExpression": { + "argumentTypes": null, + "id": 3684, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "6834:4:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6825:14:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 3307, + "src": "6825: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": 3688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6825:26:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6808:43:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3690, + "nodeType": "ExpressionStatement", + "src": "6808:43:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3706, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3691, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "6861:7:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3695, + "indexExpression": { + "argumentTypes": null, + "id": 3692, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "6869:4:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6861:13:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3696, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3693, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "6875:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6875:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6861:25:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3704, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3675, + "src": "6919: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": 3697, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "6889:7:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3699, + "indexExpression": { + "argumentTypes": null, + "id": 3698, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "6897:4:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6889:13:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3702, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3700, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "6903:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3701, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6903:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6889:25:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 3307, + "src": "6889: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": 3705, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6889:37:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6861:65:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3707, + "nodeType": "ExpressionStatement", + "src": "6861:65:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3708, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "6936:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3710, + "indexExpression": { + "argumentTypes": null, + "id": 3709, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3673, + "src": "6945:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6936:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3715, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3675, + "src": "6968:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3711, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "6951:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3713, + "indexExpression": { + "argumentTypes": null, + "id": 3712, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3673, + "src": "6960:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6951:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 3285, + "src": "6951: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": 3716, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6951:24:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6936:39:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3718, + "nodeType": "ExpressionStatement", + "src": "6936:39:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3720, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "6999:4:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3721, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3673, + "src": "7005:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3722, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3675, + "src": "7009: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": 3719, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3416, + "src": "6990:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6990:26:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3724, + "nodeType": "EmitStatement", + "src": "6985:31:25" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3725, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7033:4:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3679, + "id": 3726, + "nodeType": "Return", + "src": "7026:11:25" + } + ] + }, + "documentation": null, + "id": 3728, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3676, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3671, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3728, + "src": "6729:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3670, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6729:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3673, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3728, + "src": "6743:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3672, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6743:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3675, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3728, + "src": "6755:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3674, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6755:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6728:39:25" + }, + "payable": false, + "returnParameters": { + "id": 3679, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3678, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3728, + "src": "6784:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3677, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6784:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6783:14:25" + }, + "scope": 3813, + "src": "6707:337:25", + "stateMutability": "nonpayable", + "superFunction": 3408, + "visibility": "public" + }, + { + "body": { + "id": 3743, + "nodeType": "Block", + "src": "7418:52:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3737, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "7435:7:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3739, + "indexExpression": { + "argumentTypes": null, + "id": 3738, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3730, + "src": "7443:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7435:19:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3741, + "indexExpression": { + "argumentTypes": null, + "id": 3740, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3732, + "src": "7455:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7435:28:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3736, + "id": 3742, + "nodeType": "Return", + "src": "7428:35:25" + } + ] + }, + "documentation": null, + "id": 3744, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3733, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3730, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 3744, + "src": "7344:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3729, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7344:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3732, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3744, + "src": "7364:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3731, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7364:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7343:37:25" + }, + "payable": false, + "returnParameters": { + "id": 3736, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3735, + "name": "remaining", + "nodeType": "VariableDeclaration", + "scope": 3744, + "src": "7402:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3734, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7402:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7401:16:25" + }, + "scope": 3813, + "src": "7325:145:25", + "stateMutability": "view", + "superFunction": 3379, + "visibility": "public" + }, + { + "body": { + "id": 3784, + "nodeType": "Block", + "src": "7926:216:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3755, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "7936:7:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3759, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3756, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "7944:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7944:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7936:19:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3760, + "indexExpression": { + "argumentTypes": null, + "id": 3758, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3746, + "src": "7956:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7936:28:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3761, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3748, + "src": "7967:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7936:37:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3763, + "nodeType": "ExpressionStatement", + "src": "7936:37:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3765, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "7997:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7997:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3767, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3746, + "src": "8009:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3768, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3748, + "src": "8018: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": 3764, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3424, + "src": "7988:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7988:37:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3770, + "nodeType": "EmitStatement", + "src": "7983:42:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3775, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "8083:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8083:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3777, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3748, + "src": "8095:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3778, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3907, + "src": "8103:4:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TestToken_$3813", + "typeString": "contract TestToken" + } + }, + { + "argumentTypes": null, + "id": 3779, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3750, + "src": "8109: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$_TestToken_$3813", + "typeString": "contract TestToken" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3772, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3746, + "src": "8058:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3771, + "name": "ApproveAndCallFallBack", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3437, + "src": "8035:22:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3437_$", + "typeString": "type(contract ApproveAndCallFallBack)" + } + }, + "id": 3773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8035:31:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3437", + "typeString": "contract ApproveAndCallFallBack" + } + }, + "id": 3774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "receiveApproval", + "nodeType": "MemberAccess", + "referencedDeclaration": 3436, + "src": "8035: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": 3780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8035:79:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3781, + "nodeType": "ExpressionStatement", + "src": "8035:79:25" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3782, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8131:4:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3754, + "id": 3783, + "nodeType": "Return", + "src": "8124:11:25" + } + ] + }, + "documentation": null, + "id": 3785, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approveAndCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3751, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3746, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3785, + "src": "7854:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3745, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7854:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3748, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3785, + "src": "7871:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3747, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7871:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3750, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 3785, + "src": "7884:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3749, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7884:5:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7853:42:25" + }, + "payable": false, + "returnParameters": { + "id": 3754, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3753, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3785, + "src": "7912:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3752, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7912:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7911:14:25" + }, + "scope": 3813, + "src": "7830:312:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3791, + "nodeType": "Block", + "src": "8360:25:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3788, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3833, + 3834 + ], + "referencedDeclaration": 3833, + "src": "8370:6:25", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 3789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8370:8:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3790, + "nodeType": "ExpressionStatement", + "src": "8370:8:25" + } + ] + }, + "documentation": null, + "id": 3792, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3786, + "nodeType": "ParameterList", + "parameters": [], + "src": "8342:2:25" + }, + "payable": true, + "returnParameters": { + "id": 3787, + "nodeType": "ParameterList", + "parameters": [], + "src": "8360:0:25" + }, + "scope": 3813, + "src": "8333:52:25", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3811, + "nodeType": "Block", + "src": "8723:76:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3807, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "8778:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3808, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3796, + "src": "8785: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": 3804, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3794, + "src": "8755:12:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3803, + "name": "ERC20Interface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3425, + "src": "8740:14:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3425_$", + "typeString": "type(contract ERC20Interface)" + } + }, + "id": 3805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8740:28:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Interface_$3425", + "typeString": "contract ERC20Interface" + } + }, + "id": 3806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 3388, + "src": "8740:37:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 3809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8740:52:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3802, + "id": 3810, + "nodeType": "Return", + "src": "8733:59:25" + } + ] + }, + "documentation": null, + "id": 3812, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 3799, + "modifierName": { + "argumentTypes": null, + "id": 3798, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "8690:9:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "8690:9:25" + } + ], + "name": "transferAnyERC20Token", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3797, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3794, + "name": "tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 3812, + "src": "8648:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3793, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8648:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3796, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3812, + "src": "8670:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3795, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8670:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8647:35:25" + }, + "payable": false, + "returnParameters": { + "id": 3802, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3801, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3812, + "src": "8709:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3800, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8709:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8708:14:25" + }, + "scope": 3813, + "src": "8617:182:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 3814, + "src": "3506:5295:25" + } + ], + "src": "0:8801:25" + }, + "legacyAST": { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", + "exportedSymbols": { + "ApproveAndCallFallBack": [ + 3437 + ], + "ERC20Interface": [ + 3425 + ], + "Owned": [ + 3506 + ], + "SafeMath": [ + 3358 + ], + "TestToken": [ + 3813 + ] + }, + "id": 3814, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3263, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:25" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 3358, + "linearizedBaseContracts": [ + 3358 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 3284, + "nodeType": "Block", + "src": "719:51:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3272, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3270, + "src": "729:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3273, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3265, + "src": "733:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 3274, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3267, + "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": 3277, + "nodeType": "ExpressionStatement", + "src": "729:9:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3279, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3270, + "src": "756:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 3280, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3265, + "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": 3278, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "748:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "748:15:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3283, + "nodeType": "ExpressionStatement", + "src": "748:15:25" + } + ] + }, + "documentation": null, + "id": 3285, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3268, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3265, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 3285, + "src": "672:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3264, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "672:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3267, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3285, + "src": "680:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3266, + "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": 3271, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3270, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 3285, + "src": "711:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3269, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "711:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "710:8:25" + }, + "scope": 3358, + "src": "659:111:25", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3306, + "nodeType": "Block", + "src": "835:51:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3295, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3289, + "src": "853:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 3296, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3287, + "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": 3294, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "845:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "845:15:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3299, + "nodeType": "ExpressionStatement", + "src": "845:15:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3300, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3292, + "src": "870:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3301, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3287, + "src": "874:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 3302, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3289, + "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": 3305, + "nodeType": "ExpressionStatement", + "src": "870:9:25" + } + ] + }, + "documentation": null, + "id": 3307, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3290, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3287, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 3307, + "src": "788:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3286, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "788:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3289, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3307, + "src": "796:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3288, + "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": 3293, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3292, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 3307, + "src": "827:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3291, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "827:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "826:8:25" + }, + "scope": 3358, + "src": "775:111:25", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3334, + "nodeType": "Block", + "src": "951:65:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3316, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3314, + "src": "961:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3317, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3309, + "src": "965:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 3318, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3311, + "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": 3321, + "nodeType": "ExpressionStatement", + "src": "961:9:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3323, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3309, + "src": "988:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3324, + "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": 3330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3326, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3314, + "src": "998:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 3327, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3309, + "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": 3329, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3311, + "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": 3322, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "980:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "980:29:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3333, + "nodeType": "ExpressionStatement", + "src": "980:29:25" + } + ] + }, + "documentation": null, + "id": 3335, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3312, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3309, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 3335, + "src": "904:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3308, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "904:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3311, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3335, + "src": "912:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3310, + "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": 3315, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3314, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 3335, + "src": "943:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3313, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "943:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "942:8:25" + }, + "scope": 3358, + "src": "891:125:25", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3356, + "nodeType": "Block", + "src": "1081:50:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3345, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3339, + "src": "1099:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3346, + "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": 3344, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "1091:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1091:14:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3349, + "nodeType": "ExpressionStatement", + "src": "1091:14:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3350, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3342, + "src": "1115:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3351, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3337, + "src": "1119:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 3352, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3339, + "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": 3355, + "nodeType": "ExpressionStatement", + "src": "1115:9:25" + } + ] + }, + "documentation": null, + "id": 3357, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3340, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3337, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 3357, + "src": "1034:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3336, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1034:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3339, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3357, + "src": "1042:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3338, + "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": 3343, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3342, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 3357, + "src": "1073:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3341, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1073:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1072:8:25" + }, + "scope": 3358, + "src": "1021:110:25", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 3814, + "src": "636:497:25" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 3425, + "linearizedBaseContracts": [ + 3425 + ], + "name": "ERC20Interface", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 3363, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3359, + "nodeType": "ParameterList", + "parameters": [], + "src": "1445:2:25" + }, + "payable": false, + "returnParameters": { + "id": 3362, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3361, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3363, + "src": "1473:4:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3360, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1473:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1472:6:25" + }, + "scope": 3425, + "src": "1425:54:25", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 3370, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3366, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3365, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 3370, + "src": "1503:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3364, + "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": 3369, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3368, + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 3370, + "src": "1548:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3367, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1548:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1547:14:25" + }, + "scope": 3425, + "src": "1484:78:25", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 3379, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3375, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3372, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 3379, + "src": "1586:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3371, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1586:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3374, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3379, + "src": "1606:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3373, + "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": 3378, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3377, + "name": "remaining", + "nodeType": "VariableDeclaration", + "scope": 3379, + "src": "1648:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3376, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1648:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1647:16:25" + }, + "scope": 3425, + "src": "1567:97:25", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 3388, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3384, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3381, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3388, + "src": "1687:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3380, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1687:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3383, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3388, + "src": "1699:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3382, + "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": 3387, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3386, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3388, + "src": "1728:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3385, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1728:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1727:14:25" + }, + "scope": 3425, + "src": "1669:73:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 3397, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3393, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3390, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3397, + "src": "1764:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3389, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1764:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3392, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3397, + "src": "1781:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3391, + "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": 3396, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3395, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3397, + "src": "1810:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3394, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1810:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1809:14:25" + }, + "scope": 3425, + "src": "1747:77:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 3408, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3404, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3399, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3408, + "src": "1851:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3398, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1851:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3401, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3408, + "src": "1865:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3400, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1865:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3403, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3408, + "src": "1877:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3402, + "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": 3407, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3406, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3408, + "src": "1906:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3405, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1906:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1905:14:25" + }, + "scope": 3425, + "src": "1829:91:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 3416, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 3415, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3410, + "indexed": true, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3416, + "src": "1941:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3409, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1941:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3412, + "indexed": true, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3416, + "src": "1963:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3411, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1963:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3414, + "indexed": false, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3416, + "src": "1983:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3413, + "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": 3424, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 3423, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3418, + "indexed": true, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 3424, + "src": "2016:26:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3417, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2016:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3420, + "indexed": true, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3424, + "src": "2044:23:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3419, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2044:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3422, + "indexed": false, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3424, + "src": "2069:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3421, + "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": 3814, + "src": "1395:689:25" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 3437, + "linearizedBaseContracts": [ + 3437 + ], + "name": "ApproveAndCallFallBack", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 3436, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "receiveApproval", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3434, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3427, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3436, + "src": "2416:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3426, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2416:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3429, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3436, + "src": "2430:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3428, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2430:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3431, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 3436, + "src": "2446:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3430, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2446:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3433, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 3436, + "src": "2461:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3432, + "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": 3435, + "nodeType": "ParameterList", + "parameters": [], + "src": "2479:0:25" + }, + "scope": 3437, + "src": "2391:89:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 3814, + "src": "2353:129:25" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 3506, + "linearizedBaseContracts": [ + 3506 + ], + "name": "Owned", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 3439, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 3506, + "src": "2684:20:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3438, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2684:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3441, + "name": "newOwner", + "nodeType": "VariableDeclaration", + "scope": 3506, + "src": "2710:23:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3440, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2710:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 3447, + "name": "OwnershipTransferred", + "nodeType": "EventDefinition", + "parameters": { + "id": 3446, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3443, + "indexed": true, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 3447, + "src": "2767:21:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3442, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2767:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3445, + "indexed": true, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 3447, + "src": "2790:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3444, + "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": 3455, + "nodeType": "Block", + "src": "2838:35:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3450, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "2848:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3451, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "2856:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3452, + "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": 3454, + "nodeType": "ExpressionStatement", + "src": "2848:18:25" + } + ] + }, + "documentation": null, + "id": 3456, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3448, + "nodeType": "ParameterList", + "parameters": [], + "src": "2828:2:25" + }, + "payable": false, + "returnParameters": { + "id": 3449, + "nodeType": "ParameterList", + "parameters": [], + "src": "2838:0:25" + }, + "scope": 3506, + "src": "2817:56:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3466, + "nodeType": "Block", + "src": "2898:56:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3459, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "2916:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3460, + "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": 3461, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "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": 3458, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "2908:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2908:28:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3464, + "nodeType": "ExpressionStatement", + "src": "2908:28:25" + }, + { + "id": 3465, + "nodeType": "PlaceholderStatement", + "src": "2946:1:25" + } + ] + }, + "documentation": null, + "id": 3467, + "name": "onlyOwner", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 3457, + "nodeType": "ParameterList", + "parameters": [], + "src": "2898:0:25" + }, + "src": "2879:75:25", + "visibility": "internal" + }, + { + "body": { + "id": 3478, + "nodeType": "Block", + "src": "3023:37:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3474, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3441, + "src": "3033:8:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3475, + "name": "_newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3469, + "src": "3044:9:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3033:20:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3477, + "nodeType": "ExpressionStatement", + "src": "3033:20:25" + } + ] + }, + "documentation": null, + "id": 3479, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 3472, + "modifierName": { + "argumentTypes": null, + "id": 3471, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "3013:9:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3013:9:25" + } + ], + "name": "transferOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3470, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3469, + "name": "_newOwner", + "nodeType": "VariableDeclaration", + "scope": 3479, + "src": "2987:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3468, + "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": 3473, + "nodeType": "ParameterList", + "parameters": [], + "src": "3023:0:25" + }, + "scope": 3506, + "src": "2960:100:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3504, + "nodeType": "Block", + "src": "3099:157:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3483, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "3117:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3484, + "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": 3485, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3441, + "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": 3482, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "3109:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3109:31:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3488, + "nodeType": "ExpressionStatement", + "src": "3109:31:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3490, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "3176:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3491, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3441, + "src": "3183:8:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3489, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3447, + "src": "3155:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 3492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3155:37:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3493, + "nodeType": "EmitStatement", + "src": "3150:42:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3494, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "3202:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3495, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3441, + "src": "3210:8:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3202:16:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3497, + "nodeType": "ExpressionStatement", + "src": "3202:16:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3498, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3441, + "src": "3228:8:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3500, + "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": 3499, + "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": 3501, + "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": 3503, + "nodeType": "ExpressionStatement", + "src": "3228:21:25" + } + ] + }, + "documentation": null, + "id": 3505, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "acceptOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3480, + "nodeType": "ParameterList", + "parameters": [], + "src": "3089:2:25" + }, + "payable": false, + "returnParameters": { + "id": 3481, + "nodeType": "ParameterList", + "parameters": [], + "src": "3099:0:25" + }, + "scope": 3506, + "src": "3065:191:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 3814, + "src": "2663:595:25" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 3507, + "name": "ERC20Interface", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3425, + "src": "3528:14:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Interface_$3425", + "typeString": "contract ERC20Interface" + } + }, + "id": 3508, + "nodeType": "InheritanceSpecifier", + "src": "3528:14:25" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 3509, + "name": "Owned", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3506, + "src": "3544:5:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Owned_$3506", + "typeString": "contract Owned" + } + }, + "id": 3510, + "nodeType": "InheritanceSpecifier", + "src": "3544:5:25" + } + ], + "contractDependencies": [ + 3425, + 3506 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 3813, + "linearizedBaseContracts": [ + 3813, + 3506, + 3425 + ], + "name": "TestToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 3513, + "libraryName": { + "contractScope": null, + "id": 3511, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3358, + "src": "3562:8:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$3358", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "3556:24:25", + "typeName": { + "id": 3512, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3575:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 3515, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3586:20:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3514, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3586:6:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3517, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3612:19:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3516, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3612:6:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3519, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3637:21:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 3518, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3637:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3521, + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3664:17:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3520, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3664:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3525, + "name": "balances", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3688:33:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 3524, + "keyType": { + "id": 3522, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3696:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3688:24:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 3523, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3707:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3531, + "name": "allowed", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3727: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": 3530, + "keyType": { + "id": 3526, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3735:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3727:44:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 3529, + "keyType": { + "id": 3527, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3754:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3746:24:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 3528, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3765:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "body": { + "id": 3570, + "nodeType": "Block", + "src": "3987:235:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3534, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3515, + "src": "3997:6:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "544b4e", + "id": 3535, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4006:5:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66", + "typeString": "literal_string \"TKN\"" + }, + "value": "TKN" + }, + "src": "3997:14:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3537, + "nodeType": "ExpressionStatement", + "src": "3997:14:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3540, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3538, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3517, + "src": "4021:4:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "546f6b656e204578616d706c65", + "id": 3539, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4028:15:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a", + "typeString": "literal_string \"Token Example\"" + }, + "value": "Token Example" + }, + "src": "4021:22:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3541, + "nodeType": "ExpressionStatement", + "src": "4021:22:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3542, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3519, + "src": "4053:8:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "3138", + "id": 3543, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4064:2:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "src": "4053:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 3545, + "nodeType": "ExpressionStatement", + "src": "4053:13:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3546, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3521, + "src": "4076:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "31303030303030", + "id": 3547, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4091: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": 3552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 3548, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4101: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": 3550, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3519, + "src": "4110:8:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 3549, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4105:4:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" + }, + "id": 3551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4105:14:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4101:18:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4091:28:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4076:43:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3555, + "nodeType": "ExpressionStatement", + "src": "4076:43:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3556, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "4129:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3558, + "indexExpression": { + "argumentTypes": null, + "id": 3557, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "4138:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4129:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3559, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3521, + "src": "4147:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4129:30:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3561, + "nodeType": "ExpressionStatement", + "src": "4129:30:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3564, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4191: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": 3563, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4183:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4183:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3566, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "4195:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3567, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3521, + "src": "4202: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": 3562, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3416, + "src": "4174:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4174:41:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3569, + "nodeType": "EmitStatement", + "src": "4169:46:25" + } + ] + }, + "documentation": null, + "id": 3571, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3532, + "nodeType": "ParameterList", + "parameters": [], + "src": "3977:2:25" + }, + "payable": false, + "returnParameters": { + "id": 3533, + "nodeType": "ParameterList", + "parameters": [], + "src": "3987:0:25" + }, + "scope": 3813, + "src": "3966:256:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3585, + "nodeType": "Block", + "src": "4459:62:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3578, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "4493:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3582, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3580, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4510: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": 3579, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4502:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3581, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4502:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4493:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 3576, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3521, + "src": "4476:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3577, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 3307, + "src": "4476: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": 3583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4476:38:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3575, + "id": 3584, + "nodeType": "Return", + "src": "4469:45:25" + } + ] + }, + "documentation": null, + "id": 3586, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3572, + "nodeType": "ParameterList", + "parameters": [], + "src": "4429:2:25" + }, + "payable": false, + "returnParameters": { + "id": 3575, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3574, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3586, + "src": "4453:4:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3573, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4453:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4452:6:25" + }, + "scope": 3813, + "src": "4409:112:25", + "stateMutability": "view", + "superFunction": 3363, + "visibility": "public" + }, + { + "body": { + "id": 3597, + "nodeType": "Block", + "src": "4816:44:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3593, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "4833:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3595, + "indexExpression": { + "argumentTypes": null, + "id": 3594, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3588, + "src": "4842:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4833:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3592, + "id": 3596, + "nodeType": "Return", + "src": "4826:27:25" + } + ] + }, + "documentation": null, + "id": 3598, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3589, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3588, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 3598, + "src": "4761:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3587, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4761:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4760:20:25" + }, + "payable": false, + "returnParameters": { + "id": 3592, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3591, + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 3598, + "src": "4802:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3590, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4802:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4801:14:25" + }, + "scope": 3813, + "src": "4742:118:25", + "stateMutability": "view", + "superFunction": 3370, + "visibility": "public" + }, + { + "body": { + "id": 3640, + "nodeType": "Block", + "src": "5276:189:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3618, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3607, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "5286:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3610, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3608, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "5295:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5295:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5286:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3616, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3602, + "src": "5334:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3611, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "5309:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3614, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3612, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "5318:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3613, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5318:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5309:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3615, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 3307, + "src": "5309: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": 3617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5309:32:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5286:55:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3619, + "nodeType": "ExpressionStatement", + "src": "5286:55:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3620, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "5351:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3622, + "indexExpression": { + "argumentTypes": null, + "id": 3621, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3600, + "src": "5360:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5351:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3627, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3602, + "src": "5383:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3623, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "5366:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3625, + "indexExpression": { + "argumentTypes": null, + "id": 3624, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3600, + "src": "5375:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5366:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 3285, + "src": "5366: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": 3628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5366:24:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5351:39:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3630, + "nodeType": "ExpressionStatement", + "src": "5351:39:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3632, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "5414:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3633, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5414:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3634, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3600, + "src": "5426:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3635, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3602, + "src": "5430: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": 3631, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3416, + "src": "5405:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5405:32:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3637, + "nodeType": "EmitStatement", + "src": "5400:37:25" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5454:4:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3606, + "id": 3639, + "nodeType": "Return", + "src": "5447:11:25" + } + ] + }, + "documentation": null, + "id": 3641, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3603, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3600, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3641, + "src": "5221:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3599, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5221:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3602, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3641, + "src": "5233:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3601, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5233:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5220:25:25" + }, + "payable": false, + "returnParameters": { + "id": 3606, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3605, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3641, + "src": "5262:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3604, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5262:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5261:14:25" + }, + "scope": 3813, + "src": "5203:262:25", + "stateMutability": "nonpayable", + "superFunction": 3388, + "visibility": "public" + }, + { + "body": { + "id": 3668, + "nodeType": "Block", + "src": "6048:127:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3650, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "6058:7:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3654, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3651, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "6066:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3652, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6066:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6058:19:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3655, + "indexExpression": { + "argumentTypes": null, + "id": 3653, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3643, + "src": "6078:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6058:28:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3656, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3645, + "src": "6089:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6058:37:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3658, + "nodeType": "ExpressionStatement", + "src": "6058:37:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3660, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "6119:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6119:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3662, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3643, + "src": "6131:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3663, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3645, + "src": "6140: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": 3659, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3424, + "src": "6110:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6110:37:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3665, + "nodeType": "EmitStatement", + "src": "6105:42:25" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6164:4:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3649, + "id": 3667, + "nodeType": "Return", + "src": "6157:11:25" + } + ] + }, + "documentation": null, + "id": 3669, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3646, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3643, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3669, + "src": "5988:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3642, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5988:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3645, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3669, + "src": "6005:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3644, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6005:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5987:30:25" + }, + "payable": false, + "returnParameters": { + "id": 3649, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3648, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3669, + "src": "6034:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3647, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6034:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6033:14:25" + }, + "scope": 3813, + "src": "5971:204:25", + "stateMutability": "nonpayable", + "superFunction": 3397, + "visibility": "public" + }, + { + "body": { + "id": 3727, + "nodeType": "Block", + "src": "6798:246:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3680, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "6808:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3682, + "indexExpression": { + "argumentTypes": null, + "id": 3681, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "6817:4:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6808:14:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3687, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3675, + "src": "6844:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3683, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "6825:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3685, + "indexExpression": { + "argumentTypes": null, + "id": 3684, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "6834:4:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6825:14:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 3307, + "src": "6825: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": 3688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6825:26:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6808:43:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3690, + "nodeType": "ExpressionStatement", + "src": "6808:43:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3706, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3691, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "6861:7:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3695, + "indexExpression": { + "argumentTypes": null, + "id": 3692, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "6869:4:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6861:13:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3696, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3693, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "6875:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6875:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6861:25:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3704, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3675, + "src": "6919: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": 3697, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "6889:7:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3699, + "indexExpression": { + "argumentTypes": null, + "id": 3698, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "6897:4:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6889:13:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3702, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3700, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "6903:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3701, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6903:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6889:25:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 3307, + "src": "6889: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": 3705, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6889:37:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6861:65:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3707, + "nodeType": "ExpressionStatement", + "src": "6861:65:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3708, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "6936:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3710, + "indexExpression": { + "argumentTypes": null, + "id": 3709, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3673, + "src": "6945:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6936:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3715, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3675, + "src": "6968:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3711, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "6951:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3713, + "indexExpression": { + "argumentTypes": null, + "id": 3712, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3673, + "src": "6960:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6951:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 3285, + "src": "6951: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": 3716, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6951:24:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6936:39:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3718, + "nodeType": "ExpressionStatement", + "src": "6936:39:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3720, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "6999:4:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3721, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3673, + "src": "7005:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3722, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3675, + "src": "7009: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": 3719, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3416, + "src": "6990:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6990:26:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3724, + "nodeType": "EmitStatement", + "src": "6985:31:25" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3725, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7033:4:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3679, + "id": 3726, + "nodeType": "Return", + "src": "7026:11:25" + } + ] + }, + "documentation": null, + "id": 3728, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3676, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3671, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3728, + "src": "6729:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3670, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6729:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3673, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3728, + "src": "6743:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3672, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6743:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3675, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3728, + "src": "6755:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3674, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6755:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6728:39:25" + }, + "payable": false, + "returnParameters": { + "id": 3679, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3678, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3728, + "src": "6784:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3677, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6784:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6783:14:25" + }, + "scope": 3813, + "src": "6707:337:25", + "stateMutability": "nonpayable", + "superFunction": 3408, + "visibility": "public" + }, + { + "body": { + "id": 3743, + "nodeType": "Block", + "src": "7418:52:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3737, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "7435:7:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3739, + "indexExpression": { + "argumentTypes": null, + "id": 3738, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3730, + "src": "7443:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7435:19:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3741, + "indexExpression": { + "argumentTypes": null, + "id": 3740, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3732, + "src": "7455:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7435:28:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3736, + "id": 3742, + "nodeType": "Return", + "src": "7428:35:25" + } + ] + }, + "documentation": null, + "id": 3744, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3733, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3730, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 3744, + "src": "7344:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3729, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7344:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3732, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3744, + "src": "7364:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3731, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7364:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7343:37:25" + }, + "payable": false, + "returnParameters": { + "id": 3736, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3735, + "name": "remaining", + "nodeType": "VariableDeclaration", + "scope": 3744, + "src": "7402:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3734, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7402:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7401:16:25" + }, + "scope": 3813, + "src": "7325:145:25", + "stateMutability": "view", + "superFunction": 3379, + "visibility": "public" + }, + { + "body": { + "id": 3784, + "nodeType": "Block", + "src": "7926:216:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3755, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "7936:7:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3759, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3756, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "7944:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7944:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7936:19:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3760, + "indexExpression": { + "argumentTypes": null, + "id": 3758, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3746, + "src": "7956:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7936:28:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3761, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3748, + "src": "7967:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7936:37:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3763, + "nodeType": "ExpressionStatement", + "src": "7936:37:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3765, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "7997:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7997:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3767, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3746, + "src": "8009:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3768, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3748, + "src": "8018: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": 3764, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3424, + "src": "7988:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7988:37:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3770, + "nodeType": "EmitStatement", + "src": "7983:42:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3775, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "8083:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8083:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3777, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3748, + "src": "8095:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3778, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3907, + "src": "8103:4:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TestToken_$3813", + "typeString": "contract TestToken" + } + }, + { + "argumentTypes": null, + "id": 3779, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3750, + "src": "8109: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$_TestToken_$3813", + "typeString": "contract TestToken" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3772, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3746, + "src": "8058:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3771, + "name": "ApproveAndCallFallBack", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3437, + "src": "8035:22:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3437_$", + "typeString": "type(contract ApproveAndCallFallBack)" + } + }, + "id": 3773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8035:31:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3437", + "typeString": "contract ApproveAndCallFallBack" + } + }, + "id": 3774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "receiveApproval", + "nodeType": "MemberAccess", + "referencedDeclaration": 3436, + "src": "8035: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": 3780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8035:79:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3781, + "nodeType": "ExpressionStatement", + "src": "8035:79:25" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3782, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8131:4:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3754, + "id": 3783, + "nodeType": "Return", + "src": "8124:11:25" + } + ] + }, + "documentation": null, + "id": 3785, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approveAndCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3751, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3746, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3785, + "src": "7854:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3745, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7854:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3748, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3785, + "src": "7871:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3747, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7871:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3750, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 3785, + "src": "7884:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3749, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7884:5:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7853:42:25" + }, + "payable": false, + "returnParameters": { + "id": 3754, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3753, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3785, + "src": "7912:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3752, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7912:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7911:14:25" + }, + "scope": 3813, + "src": "7830:312:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3791, + "nodeType": "Block", + "src": "8360:25:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3788, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3833, + 3834 + ], + "referencedDeclaration": 3833, + "src": "8370:6:25", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 3789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8370:8:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3790, + "nodeType": "ExpressionStatement", + "src": "8370:8:25" + } + ] + }, + "documentation": null, + "id": 3792, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3786, + "nodeType": "ParameterList", + "parameters": [], + "src": "8342:2:25" + }, + "payable": true, + "returnParameters": { + "id": 3787, + "nodeType": "ParameterList", + "parameters": [], + "src": "8360:0:25" + }, + "scope": 3813, + "src": "8333:52:25", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3811, + "nodeType": "Block", + "src": "8723:76:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3807, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "8778:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3808, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3796, + "src": "8785: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": 3804, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3794, + "src": "8755:12:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3803, + "name": "ERC20Interface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3425, + "src": "8740:14:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3425_$", + "typeString": "type(contract ERC20Interface)" + } + }, + "id": 3805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8740:28:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Interface_$3425", + "typeString": "contract ERC20Interface" + } + }, + "id": 3806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 3388, + "src": "8740:37:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 3809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8740:52:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3802, + "id": 3810, + "nodeType": "Return", + "src": "8733:59:25" + } + ] + }, + "documentation": null, + "id": 3812, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 3799, + "modifierName": { + "argumentTypes": null, + "id": 3798, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "8690:9:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "8690:9:25" + } + ], + "name": "transferAnyERC20Token", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3797, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3794, + "name": "tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 3812, + "src": "8648:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3793, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8648:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3796, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3812, + "src": "8670:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3795, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8670:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8647:35:25" + }, + "payable": false, + "returnParameters": { + "id": 3802, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3801, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3812, + "src": "8709:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3800, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8709:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8708:14:25" + }, + "scope": 3813, + "src": "8617:182:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 3814, + "src": "3506:5295:25" + } + ], + "src": "0:8801:25" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-08-20T07:44:41.100Z" +} \ No newline at end of file diff --git a/safe-contracts/build/contracts/test/EmptyToken.json b/safe-contracts/build/contracts/test/EmptyToken.json index 7c27f43510..a49739e4ec 100644 --- a/safe-contracts/build/contracts/test/EmptyToken.json +++ b/safe-contracts/build/contracts/test/EmptyToken.json @@ -320,34 +320,34 @@ ], "bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600160146101000a81548160ff021916908360ff160217905550600160149054906101000a900460ff1660ff16600a0a620f424002600281905550600254600360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6002546040518082815260200191505060405180910390a36112718061018d6000396000f3006080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063095ea7b3146100ca57806318160ddd1461012f57806323b872dd1461015a578063313ce567146101df57806370a082311461021057806379ba5097146102675780638da5cb5b1461027e578063a9059cbb146102d5578063cae9ca511461033a578063d4ee1d90146103e5578063dc39d06d1461043c578063dd62ed3e146104a1578063f2fde38b14610518575b600080fd5b3480156100d657600080fd5b50610115600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061055b565b604051808215151515815260200191505060405180910390f35b34801561013b57600080fd5b5061014461064d565b6040518082815260200191505060405180910390f35b34801561016657600080fd5b506101c5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506106a8565b604051808215151515815260200191505060405180910390f35b3480156101eb57600080fd5b506101f4610953565b604051808260ff1660ff16815260200191505060405180910390f35b34801561021c57600080fd5b50610251600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610966565b6040518082815260200191505060405180910390f35b34801561027357600080fd5b5061027c6109af565b005b34801561028a57600080fd5b50610293610b4e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102e157600080fd5b50610320600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b73565b604051808215151515815260200191505060405180910390f35b34801561034657600080fd5b506103cb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610d0e565b604051808215151515815260200191505060405180910390f35b3480156103f157600080fd5b506103fa610f5d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561044857600080fd5b50610487600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f83565b604051808215151515815260200191505060405180910390f35b3480156104ad57600080fd5b50610502600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110e7565b6040518082815260200191505060405180910390f35b34801561052457600080fd5b50610559600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061116e565b005b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60006106a3600360008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460025461120d90919063ffffffff16565b905090565b60006106fc82600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461120d90919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506107ce82600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461120d90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506108a082600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461122990919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600160149054906101000a900460ff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a0b57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610bc782600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461120d90919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c5c82600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461122990919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600082600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610eeb578082015181840152602081019050610ed0565b50505050905090810190601f168015610f185780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015610f3a57600080fd5b505af1158015610f4e573d6000803e3d6000fd5b50505050600190509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fe057600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156110a457600080fd5b505af11580156110b8573d6000803e3d6000fd5b505050506040513d60208110156110ce57600080fd5b8101908080519060200190929190505050905092915050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111c957600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600082821115151561121e57600080fd5b818303905092915050565b6000818301905082811015151561123f57600080fd5b929150505600a165627a7a7230582086ec8e422bd8c5ddad32eb09a806eeb6d1ed5c20827c3010d77b0278f363ecbe0029", "deployedBytecode": "0x6080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063095ea7b3146100ca57806318160ddd1461012f57806323b872dd1461015a578063313ce567146101df57806370a082311461021057806379ba5097146102675780638da5cb5b1461027e578063a9059cbb146102d5578063cae9ca511461033a578063d4ee1d90146103e5578063dc39d06d1461043c578063dd62ed3e146104a1578063f2fde38b14610518575b600080fd5b3480156100d657600080fd5b50610115600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061055b565b604051808215151515815260200191505060405180910390f35b34801561013b57600080fd5b5061014461064d565b6040518082815260200191505060405180910390f35b34801561016657600080fd5b506101c5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506106a8565b604051808215151515815260200191505060405180910390f35b3480156101eb57600080fd5b506101f4610953565b604051808260ff1660ff16815260200191505060405180910390f35b34801561021c57600080fd5b50610251600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610966565b6040518082815260200191505060405180910390f35b34801561027357600080fd5b5061027c6109af565b005b34801561028a57600080fd5b50610293610b4e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102e157600080fd5b50610320600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b73565b604051808215151515815260200191505060405180910390f35b34801561034657600080fd5b506103cb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610d0e565b604051808215151515815260200191505060405180910390f35b3480156103f157600080fd5b506103fa610f5d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561044857600080fd5b50610487600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f83565b604051808215151515815260200191505060405180910390f35b3480156104ad57600080fd5b50610502600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110e7565b6040518082815260200191505060405180910390f35b34801561052457600080fd5b50610559600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061116e565b005b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60006106a3600360008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460025461120d90919063ffffffff16565b905090565b60006106fc82600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461120d90919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506107ce82600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461120d90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506108a082600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461122990919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600160149054906101000a900460ff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a0b57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610bc782600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461120d90919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c5c82600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461122990919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600082600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610eeb578082015181840152602081019050610ed0565b50505050905090810190601f168015610f185780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015610f3a57600080fd5b505af1158015610f4e573d6000803e3d6000fd5b50505050600190509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fe057600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156110a457600080fd5b505af11580156110b8573d6000803e3d6000fd5b505050506040513d60208110156110ce57600080fd5b8101908080519060200190929190505050905092915050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111c957600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600082821115151561121e57600080fd5b818303905092915050565b6000818301905082811015151561123f57600080fd5b929150505600a165627a7a7230582086ec8e422bd8c5ddad32eb09a806eeb6d1ed5c20827c3010d77b0278f363ecbe0029", - "sourceMap": "3506:5189:0:-;;;3916:200;8:9:-1;5:2;;;30:1;27;20:12;5:2;3916:200:0;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:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8264:8;;;5865:204;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5865:204:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4303:112;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4303:112:0;;;;;;;;;;;;;;;;;;;;;;;6601:337;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6601:337:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3587:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3587:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;4636:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4636:118:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3065:191;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3065:191:0;;;;;;2684:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2684:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;5097:262;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5097:262:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7724:312;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7724:312:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2710:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2710:23:0;;;;;;;;;;;;;;;;;;;;;;;;;;;8511:182;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8511:182:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7219:145;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7219:145:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2960:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2960:100:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7929:79:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7929:79:0;;;;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:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8634:52:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8634:52:0;;;;;;;;;;;;;;;;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", + "sourceMap": "3506:5189:24:-;;;3916:200;8:9:-1;5:2;;;30:1;27;20:12;5:2;3916:200:24;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:24:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8264:8;;;5865:204;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5865:204:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4303:112;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4303:112:24;;;;;;;;;;;;;;;;;;;;;;;6601:337;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6601:337:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3587:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3587:21:24;;;;;;;;;;;;;;;;;;;;;;;;;;;4636:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4636:118:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3065:191;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3065:191:24;;;;;;2684:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2684:20:24;;;;;;;;;;;;;;;;;;;;;;;;;;;5097:262;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5097:262:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7724:312;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7724:312:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2710:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2710:23:24;;;;;;;;;;;;;;;;;;;;;;;;;;;8511:182;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8511:182:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7219:145;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7219:145:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2960:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2960:100:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7929:79:24;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7929:79:24;;;;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:24;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8634:52:24;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8634:52:24;;;;;;;;;;;;;;;;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": [ - 175 + 2897 ], "ERC20Interface": [ - 163 + 2885 ], "EmptyToken": [ - 539 + 3261 ], "Owned": [ - 244 + 2966 ], "SafeMath": [ - 96 + 2818 ] }, - "id": 540, + "id": 3262, "nodeType": "SourceUnit", "nodes": [ { - "id": 1, + "id": 2723, "literals": [ "solidity", "^", @@ -355,7 +355,7 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:0" + "src": "0:24:24" }, { "baseContracts": [], @@ -363,35 +363,35 @@ "contractKind": "library", "documentation": null, "fullyImplemented": true, - "id": 96, + "id": 2818, "linearizedBaseContracts": [ - 96 + 2818 ], "name": "SafeMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 22, + "id": 2744, "nodeType": "Block", - "src": "719:51:0", + "src": "719:51:24", "statements": [ { "expression": { "argumentTypes": null, - "id": 14, + "id": 2736, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 10, + "id": 2732, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8, - "src": "729:1:0", + "referencedDeclaration": 2730, + "src": "729:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -405,19 +405,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 13, + "id": 2735, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 11, + "id": 2733, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3, - "src": "733:1:0", + "referencedDeclaration": 2725, + "src": "733:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -427,32 +427,32 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 12, + "id": 2734, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5, - "src": "737:1:0", + "referencedDeclaration": 2727, + "src": "737:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "733:5:0", + "src": "733:5:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "729:9:0", + "src": "729:9:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 15, + "id": 2737, "nodeType": "ExpressionStatement", - "src": "729:9:0" + "src": "729:9:24" }, { "expression": { @@ -464,19 +464,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 19, + "id": 2741, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 17, + "id": 2739, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8, - "src": "756:1:0", + "referencedDeclaration": 2730, + "src": "756:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -486,18 +486,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 18, + "id": 2740, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3, - "src": "761:1:0", + "referencedDeclaration": 2725, + "src": "761:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "756:6:0", + "src": "756:6:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -511,21 +511,21 @@ "typeString": "bool" } ], - "id": 16, + "id": 2738, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1109, - 1110 + 3831, + 3832 ], - "referencedDeclaration": 1109, - "src": "748:7:0", + "referencedDeclaration": 3831, + "src": "748:7:24", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 20, + "id": 2742, "isConstant": false, "isLValue": false, "isPure": false, @@ -533,20 +533,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "748:15:0", + "src": "748:15:24", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 21, + "id": 2743, "nodeType": "ExpressionStatement", - "src": "748:15:0" + "src": "748:15:24" } ] }, "documentation": null, - "id": 23, + "id": 2745, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -554,16 +554,16 @@ "name": "add", "nodeType": "FunctionDefinition", "parameters": { - "id": 6, + "id": 2728, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3, + "id": 2725, "name": "a", "nodeType": "VariableDeclaration", - "scope": 23, - "src": "672:6:0", + "scope": 2745, + "src": "672:6:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -571,10 +571,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2, + "id": 2724, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "672:4:0", + "src": "672:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -585,11 +585,11 @@ }, { "constant": false, - "id": 5, + "id": 2727, "name": "b", "nodeType": "VariableDeclaration", - "scope": 23, - "src": "680:6:0", + "scope": 2745, + "src": "680:6:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -597,10 +597,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4, + "id": 2726, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "680:4:0", + "src": "680:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -610,20 +610,20 @@ "visibility": "internal" } ], - "src": "671:16:0" + "src": "671:16:24" }, "payable": false, "returnParameters": { - "id": 9, + "id": 2731, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8, + "id": 2730, "name": "c", "nodeType": "VariableDeclaration", - "scope": 23, - "src": "711:6:0", + "scope": 2745, + "src": "711:6:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -631,10 +631,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7, + "id": 2729, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "711:4:0", + "src": "711:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -644,19 +644,19 @@ "visibility": "internal" } ], - "src": "710:8:0" + "src": "710:8:24" }, - "scope": 96, - "src": "659:111:0", + "scope": 2818, + "src": "659:111:24", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 44, + "id": 2766, "nodeType": "Block", - "src": "835:51:0", + "src": "835:51:24", "statements": [ { "expression": { @@ -668,19 +668,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 35, + "id": 2757, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 33, + "id": 2755, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27, - "src": "853:1:0", + "referencedDeclaration": 2749, + "src": "853:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -690,18 +690,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 34, + "id": 2756, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25, - "src": "858:1:0", + "referencedDeclaration": 2747, + "src": "858:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "853:6:0", + "src": "853:6:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -715,21 +715,21 @@ "typeString": "bool" } ], - "id": 32, + "id": 2754, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1109, - 1110 + 3831, + 3832 ], - "referencedDeclaration": 1109, - "src": "845:7:0", + "referencedDeclaration": 3831, + "src": "845:7:24", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 36, + "id": 2758, "isConstant": false, "isLValue": false, "isPure": false, @@ -737,32 +737,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "845:15:0", + "src": "845:15:24", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 37, + "id": 2759, "nodeType": "ExpressionStatement", - "src": "845:15:0" + "src": "845:15:24" }, { "expression": { "argumentTypes": null, - "id": 42, + "id": 2764, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 38, + "id": 2760, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 30, - "src": "870:1:0", + "referencedDeclaration": 2752, + "src": "870:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -776,19 +776,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 41, + "id": 2763, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 39, + "id": 2761, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25, - "src": "874:1:0", + "referencedDeclaration": 2747, + "src": "874:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -798,37 +798,37 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 40, + "id": 2762, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27, - "src": "878:1:0", + "referencedDeclaration": 2749, + "src": "878:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "874:5:0", + "src": "874:5:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "870:9:0", + "src": "870:9:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 43, + "id": 2765, "nodeType": "ExpressionStatement", - "src": "870:9:0" + "src": "870:9:24" } ] }, "documentation": null, - "id": 45, + "id": 2767, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -836,16 +836,16 @@ "name": "sub", "nodeType": "FunctionDefinition", "parameters": { - "id": 28, + "id": 2750, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 25, + "id": 2747, "name": "a", "nodeType": "VariableDeclaration", - "scope": 45, - "src": "788:6:0", + "scope": 2767, + "src": "788:6:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -853,10 +853,10 @@ "typeString": "uint256" }, "typeName": { - "id": 24, + "id": 2746, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "788:4:0", + "src": "788:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -867,11 +867,11 @@ }, { "constant": false, - "id": 27, + "id": 2749, "name": "b", "nodeType": "VariableDeclaration", - "scope": 45, - "src": "796:6:0", + "scope": 2767, + "src": "796:6:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -879,10 +879,10 @@ "typeString": "uint256" }, "typeName": { - "id": 26, + "id": 2748, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "796:4:0", + "src": "796:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -892,20 +892,20 @@ "visibility": "internal" } ], - "src": "787:16:0" + "src": "787:16:24" }, "payable": false, "returnParameters": { - "id": 31, + "id": 2753, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 30, + "id": 2752, "name": "c", "nodeType": "VariableDeclaration", - "scope": 45, - "src": "827:6:0", + "scope": 2767, + "src": "827:6:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -913,10 +913,10 @@ "typeString": "uint256" }, "typeName": { - "id": 29, + "id": 2751, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "827:4:0", + "src": "827:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -926,36 +926,36 @@ "visibility": "internal" } ], - "src": "826:8:0" + "src": "826:8:24" }, - "scope": 96, - "src": "775:111:0", + "scope": 2818, + "src": "775:111:24", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 72, + "id": 2794, "nodeType": "Block", - "src": "951:65:0", + "src": "951:65:24", "statements": [ { "expression": { "argumentTypes": null, - "id": 58, + "id": 2780, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 54, + "id": 2776, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 52, - "src": "961:1:0", + "referencedDeclaration": 2774, + "src": "961:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -969,19 +969,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 57, + "id": 2779, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 55, + "id": 2777, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 47, - "src": "965:1:0", + "referencedDeclaration": 2769, + "src": "965:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -991,32 +991,32 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 56, + "id": 2778, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "969:1:0", + "referencedDeclaration": 2771, + "src": "969:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "965:5:0", + "src": "965:5:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "961:9:0", + "src": "961:9:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 59, + "id": 2781, "nodeType": "ExpressionStatement", - "src": "961:9:0" + "src": "961:9:24" }, { "expression": { @@ -1028,7 +1028,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 69, + "id": 2791, "isConstant": false, "isLValue": false, "isPure": false, @@ -1039,19 +1039,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 63, + "id": 2785, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 61, + "id": 2783, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 47, - "src": "988:1:0", + "referencedDeclaration": 2769, + "src": "988:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1062,14 +1062,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 62, + "id": 2784, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "993:1:0", + "src": "993:1:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1077,7 +1077,7 @@ }, "value": "0" }, - "src": "988:6:0", + "src": "988:6:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1091,7 +1091,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 68, + "id": 2790, "isConstant": false, "isLValue": false, "isPure": false, @@ -1102,19 +1102,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 66, + "id": 2788, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 64, + "id": 2786, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 52, - "src": "998:1:0", + "referencedDeclaration": 2774, + "src": "998:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1124,18 +1124,18 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 65, + "id": 2787, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 47, - "src": "1002:1:0", + "referencedDeclaration": 2769, + "src": "1002:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "998:5:0", + "src": "998:5:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1145,24 +1145,24 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 67, + "id": 2789, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "1007:1:0", + "referencedDeclaration": 2771, + "src": "1007:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "998:10:0", + "src": "998:10:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "988:20:0", + "src": "988:20:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1176,21 +1176,21 @@ "typeString": "bool" } ], - "id": 60, + "id": 2782, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1109, - 1110 + 3831, + 3832 ], - "referencedDeclaration": 1109, - "src": "980:7:0", + "referencedDeclaration": 3831, + "src": "980:7:24", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 70, + "id": 2792, "isConstant": false, "isLValue": false, "isPure": false, @@ -1198,20 +1198,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "980:29:0", + "src": "980:29:24", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 71, + "id": 2793, "nodeType": "ExpressionStatement", - "src": "980:29:0" + "src": "980:29:24" } ] }, "documentation": null, - "id": 73, + "id": 2795, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1219,16 +1219,16 @@ "name": "mul", "nodeType": "FunctionDefinition", "parameters": { - "id": 50, + "id": 2772, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 47, + "id": 2769, "name": "a", "nodeType": "VariableDeclaration", - "scope": 73, - "src": "904:6:0", + "scope": 2795, + "src": "904:6:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1236,10 +1236,10 @@ "typeString": "uint256" }, "typeName": { - "id": 46, + "id": 2768, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "904:4:0", + "src": "904:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1250,11 +1250,11 @@ }, { "constant": false, - "id": 49, + "id": 2771, "name": "b", "nodeType": "VariableDeclaration", - "scope": 73, - "src": "912:6:0", + "scope": 2795, + "src": "912:6:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1262,10 +1262,10 @@ "typeString": "uint256" }, "typeName": { - "id": 48, + "id": 2770, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "912:4:0", + "src": "912:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1275,20 +1275,20 @@ "visibility": "internal" } ], - "src": "903:16:0" + "src": "903:16:24" }, "payable": false, "returnParameters": { - "id": 53, + "id": 2775, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 52, + "id": 2774, "name": "c", "nodeType": "VariableDeclaration", - "scope": 73, - "src": "943:6:0", + "scope": 2795, + "src": "943:6:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1296,10 +1296,10 @@ "typeString": "uint256" }, "typeName": { - "id": 51, + "id": 2773, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "943:4:0", + "src": "943:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1309,19 +1309,19 @@ "visibility": "internal" } ], - "src": "942:8:0" + "src": "942:8:24" }, - "scope": 96, - "src": "891:125:0", + "scope": 2818, + "src": "891:125:24", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 94, + "id": 2816, "nodeType": "Block", - "src": "1081:50:0", + "src": "1081:50:24", "statements": [ { "expression": { @@ -1333,19 +1333,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 85, + "id": 2807, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 83, + "id": 2805, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "1099:1:0", + "referencedDeclaration": 2799, + "src": "1099:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1356,14 +1356,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 84, + "id": 2806, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1103:1:0", + "src": "1103:1:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1371,7 +1371,7 @@ }, "value": "0" }, - "src": "1099:5:0", + "src": "1099:5:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1385,21 +1385,21 @@ "typeString": "bool" } ], - "id": 82, + "id": 2804, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1109, - 1110 + 3831, + 3832 ], - "referencedDeclaration": 1109, - "src": "1091:7:0", + "referencedDeclaration": 3831, + "src": "1091:7:24", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 86, + "id": 2808, "isConstant": false, "isLValue": false, "isPure": false, @@ -1407,32 +1407,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1091:14:0", + "src": "1091:14:24", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 87, + "id": 2809, "nodeType": "ExpressionStatement", - "src": "1091:14:0" + "src": "1091:14:24" }, { "expression": { "argumentTypes": null, - "id": 92, + "id": 2814, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 88, + "id": 2810, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 80, - "src": "1115:1:0", + "referencedDeclaration": 2802, + "src": "1115:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1446,19 +1446,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 91, + "id": 2813, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 89, + "id": 2811, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 75, - "src": "1119:1:0", + "referencedDeclaration": 2797, + "src": "1119:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1468,37 +1468,37 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 90, + "id": 2812, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "1123:1:0", + "referencedDeclaration": 2799, + "src": "1123:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1119:5:0", + "src": "1119:5:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1115:9:0", + "src": "1115:9:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 93, + "id": 2815, "nodeType": "ExpressionStatement", - "src": "1115:9:0" + "src": "1115:9:24" } ] }, "documentation": null, - "id": 95, + "id": 2817, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1506,16 +1506,16 @@ "name": "div", "nodeType": "FunctionDefinition", "parameters": { - "id": 78, + "id": 2800, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 75, + "id": 2797, "name": "a", "nodeType": "VariableDeclaration", - "scope": 95, - "src": "1034:6:0", + "scope": 2817, + "src": "1034:6:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1523,10 +1523,10 @@ "typeString": "uint256" }, "typeName": { - "id": 74, + "id": 2796, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1034:4:0", + "src": "1034:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1537,11 +1537,11 @@ }, { "constant": false, - "id": 77, + "id": 2799, "name": "b", "nodeType": "VariableDeclaration", - "scope": 95, - "src": "1042:6:0", + "scope": 2817, + "src": "1042:6:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1549,10 +1549,10 @@ "typeString": "uint256" }, "typeName": { - "id": 76, + "id": 2798, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1042:4:0", + "src": "1042:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1562,20 +1562,20 @@ "visibility": "internal" } ], - "src": "1033:16:0" + "src": "1033:16:24" }, "payable": false, "returnParameters": { - "id": 81, + "id": 2803, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 80, + "id": 2802, "name": "c", "nodeType": "VariableDeclaration", - "scope": 95, - "src": "1073:6:0", + "scope": 2817, + "src": "1073:6:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1583,10 +1583,10 @@ "typeString": "uint256" }, "typeName": { - "id": 79, + "id": 2801, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1073:4:0", + "src": "1073:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1596,17 +1596,17 @@ "visibility": "internal" } ], - "src": "1072:8:0" + "src": "1072:8:24" }, - "scope": 96, - "src": "1021:110:0", + "scope": 2818, + "src": "1021:110:24", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], - "scope": 540, - "src": "636:497:0" + "scope": 3262, + "src": "636:497:24" }, { "baseContracts": [], @@ -1614,9 +1614,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 163, + "id": 2885, "linearizedBaseContracts": [ - 163 + 2885 ], "name": "ERC20Interface", "nodeType": "ContractDefinition", @@ -1624,7 +1624,7 @@ { "body": null, "documentation": null, - "id": 101, + "id": 2823, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1632,23 +1632,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 97, + "id": 2819, "nodeType": "ParameterList", "parameters": [], - "src": "1445:2:0" + "src": "1445:2:24" }, "payable": false, "returnParameters": { - "id": 100, + "id": 2822, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 99, + "id": 2821, "name": "", "nodeType": "VariableDeclaration", - "scope": 101, - "src": "1473:4:0", + "scope": 2823, + "src": "1473:4:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1656,10 +1656,10 @@ "typeString": "uint256" }, "typeName": { - "id": 98, + "id": 2820, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1473:4:0", + "src": "1473:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1669,10 +1669,10 @@ "visibility": "internal" } ], - "src": "1472:6:0" + "src": "1472:6:24" }, - "scope": 163, - "src": "1425:54:0", + "scope": 2885, + "src": "1425:54:24", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -1680,7 +1680,7 @@ { "body": null, "documentation": null, - "id": 108, + "id": 2830, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1688,16 +1688,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 104, + "id": 2826, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 103, + "id": 2825, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 108, - "src": "1503:18:0", + "scope": 2830, + "src": "1503:18:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1705,10 +1705,10 @@ "typeString": "address" }, "typeName": { - "id": 102, + "id": 2824, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1503:7:0", + "src": "1503:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1718,20 +1718,20 @@ "visibility": "internal" } ], - "src": "1502:20:0" + "src": "1502:20:24" }, "payable": false, "returnParameters": { - "id": 107, + "id": 2829, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 106, + "id": 2828, "name": "balance", "nodeType": "VariableDeclaration", - "scope": 108, - "src": "1548:12:0", + "scope": 2830, + "src": "1548:12:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1739,10 +1739,10 @@ "typeString": "uint256" }, "typeName": { - "id": 105, + "id": 2827, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1548:4:0", + "src": "1548:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1752,10 +1752,10 @@ "visibility": "internal" } ], - "src": "1547:14:0" + "src": "1547:14:24" }, - "scope": 163, - "src": "1484:78:0", + "scope": 2885, + "src": "1484:78:24", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -1763,7 +1763,7 @@ { "body": null, "documentation": null, - "id": 117, + "id": 2839, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1771,16 +1771,16 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 113, + "id": 2835, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 110, + "id": 2832, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 117, - "src": "1586:18:0", + "scope": 2839, + "src": "1586:18:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1788,10 +1788,10 @@ "typeString": "address" }, "typeName": { - "id": 109, + "id": 2831, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1586:7:0", + "src": "1586:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1802,11 +1802,11 @@ }, { "constant": false, - "id": 112, + "id": 2834, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 117, - "src": "1606:15:0", + "scope": 2839, + "src": "1606:15:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1814,10 +1814,10 @@ "typeString": "address" }, "typeName": { - "id": 111, + "id": 2833, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1606:7:0", + "src": "1606:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1827,20 +1827,20 @@ "visibility": "internal" } ], - "src": "1585:37:0" + "src": "1585:37:24" }, "payable": false, "returnParameters": { - "id": 116, + "id": 2838, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 115, + "id": 2837, "name": "remaining", "nodeType": "VariableDeclaration", - "scope": 117, - "src": "1648:14:0", + "scope": 2839, + "src": "1648:14:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1848,10 +1848,10 @@ "typeString": "uint256" }, "typeName": { - "id": 114, + "id": 2836, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1648:4:0", + "src": "1648:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1861,10 +1861,10 @@ "visibility": "internal" } ], - "src": "1647:16:0" + "src": "1647:16:24" }, - "scope": 163, - "src": "1567:97:0", + "scope": 2885, + "src": "1567:97:24", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -1872,7 +1872,7 @@ { "body": null, "documentation": null, - "id": 126, + "id": 2848, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -1880,16 +1880,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 122, + "id": 2844, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 119, + "id": 2841, "name": "to", "nodeType": "VariableDeclaration", - "scope": 126, - "src": "1687:10:0", + "scope": 2848, + "src": "1687:10:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1897,10 +1897,10 @@ "typeString": "address" }, "typeName": { - "id": 118, + "id": 2840, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1687:7:0", + "src": "1687:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1911,11 +1911,11 @@ }, { "constant": false, - "id": 121, + "id": 2843, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 126, - "src": "1699:11:0", + "scope": 2848, + "src": "1699:11:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1923,10 +1923,10 @@ "typeString": "uint256" }, "typeName": { - "id": 120, + "id": 2842, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1699:4:0", + "src": "1699:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1936,20 +1936,20 @@ "visibility": "internal" } ], - "src": "1686:25:0" + "src": "1686:25:24" }, "payable": false, "returnParameters": { - "id": 125, + "id": 2847, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 124, + "id": 2846, "name": "success", "nodeType": "VariableDeclaration", - "scope": 126, - "src": "1728:12:0", + "scope": 2848, + "src": "1728:12:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1957,10 +1957,10 @@ "typeString": "bool" }, "typeName": { - "id": 123, + "id": 2845, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1728:4:0", + "src": "1728:4:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1970,10 +1970,10 @@ "visibility": "internal" } ], - "src": "1727:14:0" + "src": "1727:14:24" }, - "scope": 163, - "src": "1669:73:0", + "scope": 2885, + "src": "1669:73:24", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -1981,7 +1981,7 @@ { "body": null, "documentation": null, - "id": 135, + "id": 2857, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -1989,16 +1989,16 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 131, + "id": 2853, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 128, + "id": 2850, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 135, - "src": "1764:15:0", + "scope": 2857, + "src": "1764:15:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2006,10 +2006,10 @@ "typeString": "address" }, "typeName": { - "id": 127, + "id": 2849, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1764:7:0", + "src": "1764:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2020,11 +2020,11 @@ }, { "constant": false, - "id": 130, + "id": 2852, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 135, - "src": "1781:11:0", + "scope": 2857, + "src": "1781:11:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2032,10 +2032,10 @@ "typeString": "uint256" }, "typeName": { - "id": 129, + "id": 2851, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1781:4:0", + "src": "1781:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2045,20 +2045,20 @@ "visibility": "internal" } ], - "src": "1763:30:0" + "src": "1763:30:24" }, "payable": false, "returnParameters": { - "id": 134, + "id": 2856, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 133, + "id": 2855, "name": "success", "nodeType": "VariableDeclaration", - "scope": 135, - "src": "1810:12:0", + "scope": 2857, + "src": "1810:12:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2066,10 +2066,10 @@ "typeString": "bool" }, "typeName": { - "id": 132, + "id": 2854, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1810:4:0", + "src": "1810:4:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2079,10 +2079,10 @@ "visibility": "internal" } ], - "src": "1809:14:0" + "src": "1809:14:24" }, - "scope": 163, - "src": "1747:77:0", + "scope": 2885, + "src": "1747:77:24", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -2090,7 +2090,7 @@ { "body": null, "documentation": null, - "id": 146, + "id": 2868, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -2098,16 +2098,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 142, + "id": 2864, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 137, + "id": 2859, "name": "from", "nodeType": "VariableDeclaration", - "scope": 146, - "src": "1851:12:0", + "scope": 2868, + "src": "1851:12:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2115,10 +2115,10 @@ "typeString": "address" }, "typeName": { - "id": 136, + "id": 2858, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1851:7:0", + "src": "1851:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2129,11 +2129,11 @@ }, { "constant": false, - "id": 139, + "id": 2861, "name": "to", "nodeType": "VariableDeclaration", - "scope": 146, - "src": "1865:10:0", + "scope": 2868, + "src": "1865:10:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2141,10 +2141,10 @@ "typeString": "address" }, "typeName": { - "id": 138, + "id": 2860, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1865:7:0", + "src": "1865:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2155,11 +2155,11 @@ }, { "constant": false, - "id": 141, + "id": 2863, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 146, - "src": "1877:11:0", + "scope": 2868, + "src": "1877:11:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2167,10 +2167,10 @@ "typeString": "uint256" }, "typeName": { - "id": 140, + "id": 2862, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1877:4:0", + "src": "1877:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2180,20 +2180,20 @@ "visibility": "internal" } ], - "src": "1850:39:0" + "src": "1850:39:24" }, "payable": false, "returnParameters": { - "id": 145, + "id": 2867, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 144, + "id": 2866, "name": "success", "nodeType": "VariableDeclaration", - "scope": 146, - "src": "1906:12:0", + "scope": 2868, + "src": "1906:12:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2201,10 +2201,10 @@ "typeString": "bool" }, "typeName": { - "id": 143, + "id": 2865, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1906:4:0", + "src": "1906:4:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2214,10 +2214,10 @@ "visibility": "internal" } ], - "src": "1905:14:0" + "src": "1905:14:24" }, - "scope": 163, - "src": "1829:91:0", + "scope": 2885, + "src": "1829:91:24", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -2225,21 +2225,21 @@ { "anonymous": false, "documentation": null, - "id": 154, + "id": 2876, "name": "Transfer", "nodeType": "EventDefinition", "parameters": { - "id": 153, + "id": 2875, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 148, + "id": 2870, "indexed": true, "name": "from", "nodeType": "VariableDeclaration", - "scope": 154, - "src": "1941:20:0", + "scope": 2876, + "src": "1941:20:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2247,10 +2247,10 @@ "typeString": "address" }, "typeName": { - "id": 147, + "id": 2869, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1941:7:0", + "src": "1941:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2261,12 +2261,12 @@ }, { "constant": false, - "id": 150, + "id": 2872, "indexed": true, "name": "to", "nodeType": "VariableDeclaration", - "scope": 154, - "src": "1963:18:0", + "scope": 2876, + "src": "1963:18:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2274,10 +2274,10 @@ "typeString": "address" }, "typeName": { - "id": 149, + "id": 2871, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1963:7:0", + "src": "1963:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2288,12 +2288,12 @@ }, { "constant": false, - "id": 152, + "id": 2874, "indexed": false, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 154, - "src": "1983:11:0", + "scope": 2876, + "src": "1983:11:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2301,10 +2301,10 @@ "typeString": "uint256" }, "typeName": { - "id": 151, + "id": 2873, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1983:4:0", + "src": "1983:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2314,28 +2314,28 @@ "visibility": "internal" } ], - "src": "1940:55:0" + "src": "1940:55:24" }, - "src": "1926:70:0" + "src": "1926:70:24" }, { "anonymous": false, "documentation": null, - "id": 162, + "id": 2884, "name": "Approval", "nodeType": "EventDefinition", "parameters": { - "id": 161, + "id": 2883, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 156, + "id": 2878, "indexed": true, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 162, - "src": "2016:26:0", + "scope": 2884, + "src": "2016:26:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2343,10 +2343,10 @@ "typeString": "address" }, "typeName": { - "id": 155, + "id": 2877, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2016:7:0", + "src": "2016:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2357,12 +2357,12 @@ }, { "constant": false, - "id": 158, + "id": 2880, "indexed": true, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 162, - "src": "2044:23:0", + "scope": 2884, + "src": "2044:23:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2370,10 +2370,10 @@ "typeString": "address" }, "typeName": { - "id": 157, + "id": 2879, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2044:7:0", + "src": "2044:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2384,12 +2384,12 @@ }, { "constant": false, - "id": 160, + "id": 2882, "indexed": false, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 162, - "src": "2069:11:0", + "scope": 2884, + "src": "2069:11:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2397,10 +2397,10 @@ "typeString": "uint256" }, "typeName": { - "id": 159, + "id": 2881, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2069:4:0", + "src": "2069:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2410,13 +2410,13 @@ "visibility": "internal" } ], - "src": "2015:66:0" + "src": "2015:66:24" }, - "src": "2001:81:0" + "src": "2001:81:24" } ], - "scope": 540, - "src": "1395:689:0" + "scope": 3262, + "src": "1395:689:24" }, { "baseContracts": [], @@ -2424,9 +2424,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 175, + "id": 2897, "linearizedBaseContracts": [ - 175 + 2897 ], "name": "ApproveAndCallFallBack", "nodeType": "ContractDefinition", @@ -2434,7 +2434,7 @@ { "body": null, "documentation": null, - "id": 174, + "id": 2896, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -2442,16 +2442,16 @@ "name": "receiveApproval", "nodeType": "FunctionDefinition", "parameters": { - "id": 172, + "id": 2894, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 165, + "id": 2887, "name": "from", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "2416:12:0", + "scope": 2896, + "src": "2416:12:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2459,10 +2459,10 @@ "typeString": "address" }, "typeName": { - "id": 164, + "id": 2886, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2416:7:0", + "src": "2416:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2473,11 +2473,11 @@ }, { "constant": false, - "id": 167, + "id": 2889, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "2430:14:0", + "scope": 2896, + "src": "2430:14:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2485,10 +2485,10 @@ "typeString": "uint256" }, "typeName": { - "id": 166, + "id": 2888, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2430:7:0", + "src": "2430:7:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2499,11 +2499,11 @@ }, { "constant": false, - "id": 169, + "id": 2891, "name": "token", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "2446:13:0", + "scope": 2896, + "src": "2446:13:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2511,10 +2511,10 @@ "typeString": "address" }, "typeName": { - "id": 168, + "id": 2890, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2446:7:0", + "src": "2446:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2525,11 +2525,11 @@ }, { "constant": false, - "id": 171, + "id": 2893, "name": "data", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "2461:10:0", + "scope": 2896, + "src": "2461:10:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2537,10 +2537,10 @@ "typeString": "bytes" }, "typeName": { - "id": 170, + "id": 2892, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2461:5:0", + "src": "2461:5:24", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2550,24 +2550,24 @@ "visibility": "internal" } ], - "src": "2415:57:0" + "src": "2415:57:24" }, "payable": false, "returnParameters": { - "id": 173, + "id": 2895, "nodeType": "ParameterList", "parameters": [], - "src": "2479:0:0" + "src": "2479:0:24" }, - "scope": 175, - "src": "2391:89:0", + "scope": 2897, + "src": "2391:89:24", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 540, - "src": "2353:129:0" + "scope": 3262, + "src": "2353:129:24" }, { "baseContracts": [], @@ -2575,20 +2575,20 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 244, + "id": 2966, "linearizedBaseContracts": [ - 244 + 2966 ], "name": "Owned", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 177, + "id": 2899, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 244, - "src": "2684:20:0", + "scope": 2966, + "src": "2684:20:24", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2596,10 +2596,10 @@ "typeString": "address" }, "typeName": { - "id": 176, + "id": 2898, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2684:7:0", + "src": "2684:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2610,11 +2610,11 @@ }, { "constant": false, - "id": 179, + "id": 2901, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 244, - "src": "2710:23:0", + "scope": 2966, + "src": "2710:23:24", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2622,10 +2622,10 @@ "typeString": "address" }, "typeName": { - "id": 178, + "id": 2900, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2710:7:0", + "src": "2710:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2637,21 +2637,21 @@ { "anonymous": false, "documentation": null, - "id": 185, + "id": 2907, "name": "OwnershipTransferred", "nodeType": "EventDefinition", "parameters": { - "id": 184, + "id": 2906, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 181, + "id": 2903, "indexed": true, "name": "_from", "nodeType": "VariableDeclaration", - "scope": 185, - "src": "2767:21:0", + "scope": 2907, + "src": "2767:21:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2659,10 +2659,10 @@ "typeString": "address" }, "typeName": { - "id": 180, + "id": 2902, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2767:7:0", + "src": "2767:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2673,12 +2673,12 @@ }, { "constant": false, - "id": 183, + "id": 2905, "indexed": true, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 185, - "src": "2790:19:0", + "scope": 2907, + "src": "2790:19:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2686,10 +2686,10 @@ "typeString": "address" }, "typeName": { - "id": 182, + "id": 2904, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2790:7:0", + "src": "2790:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2699,32 +2699,32 @@ "visibility": "internal" } ], - "src": "2766:44:0" + "src": "2766:44:24" }, - "src": "2740:71:0" + "src": "2740:71:24" }, { "body": { - "id": 193, + "id": 2915, "nodeType": "Block", - "src": "2838:35:0", + "src": "2838:35:24", "statements": [ { "expression": { "argumentTypes": null, - "id": 191, + "id": 2913, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 188, + "id": 2910, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 177, - "src": "2848:5:0", + "referencedDeclaration": 2899, + "src": "2848:5:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2736,18 +2736,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 189, + "id": 2911, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "2856:3:0", + "referencedDeclaration": 3828, + "src": "2856:3:24", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 190, + "id": 2912, "isConstant": false, "isLValue": false, "isPure": false, @@ -2755,26 +2755,26 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2856:10:0", + "src": "2856:10:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2848:18:0", + "src": "2848:18:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 192, + "id": 2914, "nodeType": "ExpressionStatement", - "src": "2848:18:0" + "src": "2848:18:24" } ] }, "documentation": null, - "id": 194, + "id": 2916, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -2782,29 +2782,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 186, + "id": 2908, "nodeType": "ParameterList", "parameters": [], - "src": "2828:2:0" + "src": "2828:2:24" }, "payable": false, "returnParameters": { - "id": 187, + "id": 2909, "nodeType": "ParameterList", "parameters": [], - "src": "2838:0:0" + "src": "2838:0:24" }, - "scope": 244, - "src": "2817:56:0", + "scope": 2966, + "src": "2817:56:24", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 204, + "id": 2926, "nodeType": "Block", - "src": "2898:56:0", + "src": "2898:56:24", "statements": [ { "expression": { @@ -2816,7 +2816,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 200, + "id": 2922, "isConstant": false, "isLValue": false, "isPure": false, @@ -2825,18 +2825,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 197, + "id": 2919, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "2916:3:0", + "referencedDeclaration": 3828, + "src": "2916:3:24", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 198, + "id": 2920, "isConstant": false, "isLValue": false, "isPure": false, @@ -2844,7 +2844,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2916:10:0", + "src": "2916:10:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2854,18 +2854,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 199, + "id": 2921, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 177, - "src": "2930:5:0", + "referencedDeclaration": 2899, + "src": "2930:5:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2916:19:0", + "src": "2916:19:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2879,21 +2879,21 @@ "typeString": "bool" } ], - "id": 196, + "id": 2918, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1109, - 1110 + 3831, + 3832 ], - "referencedDeclaration": 1109, - "src": "2908:7:0", + "referencedDeclaration": 3831, + "src": "2908:7:24", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 201, + "id": 2923, "isConstant": false, "isLValue": false, "isPure": false, @@ -2901,58 +2901,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2908:28:0", + "src": "2908:28:24", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 202, + "id": 2924, "nodeType": "ExpressionStatement", - "src": "2908:28:0" + "src": "2908:28:24" }, { - "id": 203, + "id": 2925, "nodeType": "PlaceholderStatement", - "src": "2946:1:0" + "src": "2946:1:24" } ] }, "documentation": null, - "id": 205, + "id": 2927, "name": "onlyOwner", "nodeType": "ModifierDefinition", "parameters": { - "id": 195, + "id": 2917, "nodeType": "ParameterList", "parameters": [], - "src": "2898:0:0" + "src": "2898:0:24" }, - "src": "2879:75:0", + "src": "2879:75:24", "visibility": "internal" }, { "body": { - "id": 216, + "id": 2938, "nodeType": "Block", - "src": "3023:37:0", + "src": "3023:37:24", "statements": [ { "expression": { "argumentTypes": null, - "id": 214, + "id": 2936, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 212, + "id": 2934, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 179, - "src": "3033:8:0", + "referencedDeclaration": 2901, + "src": "3033:8:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2962,68 +2962,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 213, + "id": 2935, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "3044:9:0", + "referencedDeclaration": 2929, + "src": "3044:9:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3033:20:0", + "src": "3033:20:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 215, + "id": 2937, "nodeType": "ExpressionStatement", - "src": "3033:20:0" + "src": "3033:20:24" } ] }, "documentation": null, - "id": 217, + "id": 2939, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 210, + "id": 2932, "modifierName": { "argumentTypes": null, - "id": 209, + "id": 2931, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 205, - "src": "3013:9:0", + "referencedDeclaration": 2927, + "src": "3013:9:24", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3013:9:0" + "src": "3013:9:24" } ], "name": "transferOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 208, + "id": 2930, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 207, + "id": 2929, "name": "_newOwner", "nodeType": "VariableDeclaration", - "scope": 217, - "src": "2987:17:0", + "scope": 2939, + "src": "2987:17:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3031,10 +3031,10 @@ "typeString": "address" }, "typeName": { - "id": 206, + "id": 2928, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2987:7:0", + "src": "2987:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3044,26 +3044,26 @@ "visibility": "internal" } ], - "src": "2986:19:0" + "src": "2986:19:24" }, "payable": false, "returnParameters": { - "id": 211, + "id": 2933, "nodeType": "ParameterList", "parameters": [], - "src": "3023:0:0" + "src": "3023:0:24" }, - "scope": 244, - "src": "2960:100:0", + "scope": 2966, + "src": "2960:100:24", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 242, + "id": 2964, "nodeType": "Block", - "src": "3099:157:0", + "src": "3099:157:24", "statements": [ { "expression": { @@ -3075,7 +3075,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 224, + "id": 2946, "isConstant": false, "isLValue": false, "isPure": false, @@ -3084,18 +3084,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 221, + "id": 2943, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "3117:3:0", + "referencedDeclaration": 3828, + "src": "3117:3:24", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 222, + "id": 2944, "isConstant": false, "isLValue": false, "isPure": false, @@ -3103,7 +3103,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3117:10:0", + "src": "3117:10:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3113,18 +3113,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 223, + "id": 2945, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 179, - "src": "3131:8:0", + "referencedDeclaration": 2901, + "src": "3131:8:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3117:22:0", + "src": "3117:22:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3138,21 +3138,21 @@ "typeString": "bool" } ], - "id": 220, + "id": 2942, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1109, - 1110 + 3831, + 3832 ], - "referencedDeclaration": 1109, - "src": "3109:7:0", + "referencedDeclaration": 3831, + "src": "3109:7:24", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 225, + "id": 2947, "isConstant": false, "isLValue": false, "isPure": false, @@ -3160,15 +3160,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3109:31:0", + "src": "3109:31:24", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 226, + "id": 2948, "nodeType": "ExpressionStatement", - "src": "3109:31:0" + "src": "3109:31:24" }, { "eventCall": { @@ -3176,12 +3176,12 @@ "arguments": [ { "argumentTypes": null, - "id": 228, + "id": 2950, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 177, - "src": "3176:5:0", + "referencedDeclaration": 2899, + "src": "3176:5:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3189,12 +3189,12 @@ }, { "argumentTypes": null, - "id": 229, + "id": 2951, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 179, - "src": "3183:8:0", + "referencedDeclaration": 2901, + "src": "3183:8:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3212,18 +3212,18 @@ "typeString": "address" } ], - "id": 227, + "id": 2949, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 185, - "src": "3155:20:0", + "referencedDeclaration": 2907, + "src": "3155:20:24", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 230, + "id": 2952, "isConstant": false, "isLValue": false, "isPure": false, @@ -3231,32 +3231,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3155:37:0", + "src": "3155:37:24", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 231, + "id": 2953, "nodeType": "EmitStatement", - "src": "3150:42:0" + "src": "3150:42:24" }, { "expression": { "argumentTypes": null, - "id": 234, + "id": 2956, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 232, + "id": 2954, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 177, - "src": "3202:5:0", + "referencedDeclaration": 2899, + "src": "3202:5:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3266,43 +3266,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 233, + "id": 2955, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 179, - "src": "3210:8:0", + "referencedDeclaration": 2901, + "src": "3210:8:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3202:16:0", + "src": "3202:16:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 235, + "id": 2957, "nodeType": "ExpressionStatement", - "src": "3202:16:0" + "src": "3202:16:24" }, { "expression": { "argumentTypes": null, - "id": 240, + "id": 2962, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 236, + "id": 2958, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 179, - "src": "3228:8:0", + "referencedDeclaration": 2901, + "src": "3228:8:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3316,14 +3316,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 238, + "id": 2960, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3247:1:0", + "src": "3247:1:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3339,20 +3339,20 @@ "typeString": "int_const 0" } ], - "id": 237, + "id": 2959, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3239:7:0", + "src": "3239:7:24", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 239, + "id": 2961, "isConstant": false, "isLValue": false, "isPure": true, @@ -3360,26 +3360,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3239:10:0", + "src": "3239:10:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3228:21:0", + "src": "3228:21:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 241, + "id": 2963, "nodeType": "ExpressionStatement", - "src": "3228:21:0" + "src": "3228:21:24" } ] }, "documentation": null, - "id": 243, + "id": 2965, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3387,27 +3387,27 @@ "name": "acceptOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 218, + "id": 2940, "nodeType": "ParameterList", "parameters": [], - "src": "3089:2:0" + "src": "3089:2:24" }, "payable": false, "returnParameters": { - "id": 219, + "id": 2941, "nodeType": "ParameterList", "parameters": [], - "src": "3099:0:0" + "src": "3099:0:24" }, - "scope": 244, - "src": "3065:191:0", + "scope": 2966, + "src": "3065:191:24", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 540, - "src": "2663:595:0" + "scope": 3262, + "src": "2663:595:24" }, { "baseContracts": [ @@ -3415,76 +3415,76 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 245, + "id": 2967, "name": "ERC20Interface", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 163, - "src": "3529:14:0", + "referencedDeclaration": 2885, + "src": "3529:14:24", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$163", + "typeIdentifier": "t_contract$_ERC20Interface_$2885", "typeString": "contract ERC20Interface" } }, - "id": 246, + "id": 2968, "nodeType": "InheritanceSpecifier", - "src": "3529:14:0" + "src": "3529:14:24" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 247, + "id": 2969, "name": "Owned", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 244, - "src": "3545:5:0", + "referencedDeclaration": 2966, + "src": "3545:5:24", "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$244", + "typeIdentifier": "t_contract$_Owned_$2966", "typeString": "contract Owned" } }, - "id": 248, + "id": 2970, "nodeType": "InheritanceSpecifier", - "src": "3545:5:0" + "src": "3545:5:24" } ], "contractDependencies": [ - 163, - 244 + 2885, + 2966 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 539, + "id": 3261, "linearizedBaseContracts": [ - 539, - 244, - 163 + 3261, + 2966, + 2885 ], "name": "EmptyToken", "nodeType": "ContractDefinition", "nodes": [ { - "id": 251, + "id": 2973, "libraryName": { "contractScope": null, - "id": 249, + "id": 2971, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 96, - "src": "3563:8:0", + "referencedDeclaration": 2818, + "src": "3563:8:24", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$96", + "typeIdentifier": "t_contract$_SafeMath_$2818", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "3557:24:0", + "src": "3557:24:24", "typeName": { - "id": 250, + "id": 2972, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3576:4:0", + "src": "3576:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3493,11 +3493,11 @@ }, { "constant": false, - "id": 253, + "id": 2975, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 539, - "src": "3587:21:0", + "scope": 3261, + "src": "3587:21:24", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3505,10 +3505,10 @@ "typeString": "uint8" }, "typeName": { - "id": 252, + "id": 2974, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "3587:5:0", + "src": "3587:5:24", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3519,11 +3519,11 @@ }, { "constant": false, - "id": 255, + "id": 2977, "name": "_totalSupply", "nodeType": "VariableDeclaration", - "scope": 539, - "src": "3614:17:0", + "scope": 3261, + "src": "3614:17:24", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3531,10 +3531,10 @@ "typeString": "uint256" }, "typeName": { - "id": 254, + "id": 2976, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3614:4:0", + "src": "3614:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3545,11 +3545,11 @@ }, { "constant": false, - "id": 259, + "id": 2981, "name": "balances", "nodeType": "VariableDeclaration", - "scope": 539, - "src": "3638:33:0", + "scope": 3261, + "src": "3638:33:24", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3557,28 +3557,28 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 258, + "id": 2980, "keyType": { - "id": 256, + "id": 2978, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3646:7:0", + "src": "3646:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3638:24:0", + "src": "3638:24:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 257, + "id": 2979, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3657:4:0", + "src": "3657:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3590,11 +3590,11 @@ }, { "constant": false, - "id": 265, + "id": 2987, "name": "allowed", "nodeType": "VariableDeclaration", - "scope": 539, - "src": "3677:52:0", + "scope": 3261, + "src": "3677:52:24", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3602,46 +3602,46 @@ "typeString": "mapping(address => mapping(address => uint256))" }, "typeName": { - "id": 264, + "id": 2986, "keyType": { - "id": 260, + "id": 2982, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3685:7:0", + "src": "3685:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3677:44:0", + "src": "3677:44:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" }, "valueType": { - "id": 263, + "id": 2985, "keyType": { - "id": 261, + "id": 2983, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3704:7:0", + "src": "3704:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3696:24:0", + "src": "3696:24:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 262, + "id": 2984, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3715:4:0", + "src": "3715:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3654,26 +3654,26 @@ }, { "body": { - "id": 296, + "id": 3018, "nodeType": "Block", - "src": "3937:179:0", + "src": "3937:179:24", "statements": [ { "expression": { "argumentTypes": null, - "id": 270, + "id": 2992, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 268, + "id": 2990, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "3947:8:0", + "referencedDeclaration": 2975, + "src": "3947:8:24", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3684,14 +3684,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "3138", - "id": 269, + "id": 2991, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3958:2:0", + "src": "3958:2:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", @@ -3699,32 +3699,32 @@ }, "value": "18" }, - "src": "3947:13:0", + "src": "3947:13:24", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 271, + "id": 2993, "nodeType": "ExpressionStatement", - "src": "3947:13:0" + "src": "3947:13:24" }, { "expression": { "argumentTypes": null, - "id": 280, + "id": 3002, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 272, + "id": 2994, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 255, - "src": "3970:12:0", + "referencedDeclaration": 2977, + "src": "3970:12:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3738,7 +3738,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 279, + "id": 3001, "isConstant": false, "isLValue": false, "isPure": false, @@ -3746,14 +3746,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "31303030303030", - "id": 273, + "id": 2995, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3985:7:0", + "src": "3985:7:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1000000_by_1", @@ -3769,7 +3769,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 278, + "id": 3000, "isConstant": false, "isLValue": false, "isPure": false, @@ -3777,14 +3777,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 274, + "id": 2996, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3995:2:0", + "src": "3995:2:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -3799,12 +3799,12 @@ "arguments": [ { "argumentTypes": null, - "id": 276, + "id": 2998, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "4004:8:0", + "referencedDeclaration": 2975, + "src": "4004:8:24", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3818,20 +3818,20 @@ "typeString": "uint8" } ], - "id": 275, + "id": 2997, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3999:4:0", + "src": "3999:4:24", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 277, + "id": 2999, "isConstant": false, "isLValue": false, "isPure": false, @@ -3839,38 +3839,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3999:14:0", + "src": "3999:14:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3995:18:0", + "src": "3995:18:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3985:28:0", + "src": "3985:28:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3970:43:0", + "src": "3970:43:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 281, + "id": 3003, "nodeType": "ExpressionStatement", - "src": "3970:43:0" + "src": "3970:43:24" }, { "expression": { "argumentTypes": null, - "id": 286, + "id": 3008, "isConstant": false, "isLValue": false, "isPure": false, @@ -3879,26 +3879,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 282, + "id": 3004, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 259, - "src": "4023:8:0", + "referencedDeclaration": 2981, + "src": "4023:8:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 284, + "id": 3006, "indexExpression": { "argumentTypes": null, - "id": 283, + "id": 3005, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 177, - "src": "4032:5:0", + "referencedDeclaration": 2899, + "src": "4032:5:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3909,7 +3909,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4023:15:0", + "src": "4023:15:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3919,26 +3919,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 285, + "id": 3007, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 255, - "src": "4041:12:0", + "referencedDeclaration": 2977, + "src": "4041:12:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4023:30:0", + "src": "4023:30:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 287, + "id": 3009, "nodeType": "ExpressionStatement", - "src": "4023:30:0" + "src": "4023:30:24" }, { "eventCall": { @@ -3950,14 +3950,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 290, + "id": 3012, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4085:1:0", + "src": "4085:1:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3973,20 +3973,20 @@ "typeString": "int_const 0" } ], - "id": 289, + "id": 3011, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4077:7:0", + "src": "4077:7:24", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 291, + "id": 3013, "isConstant": false, "isLValue": false, "isPure": true, @@ -3994,7 +3994,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4077:10:0", + "src": "4077:10:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4002,12 +4002,12 @@ }, { "argumentTypes": null, - "id": 292, + "id": 3014, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 177, - "src": "4089:5:0", + "referencedDeclaration": 2899, + "src": "4089:5:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4015,12 +4015,12 @@ }, { "argumentTypes": null, - "id": 293, + "id": 3015, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 255, - "src": "4096:12:0", + "referencedDeclaration": 2977, + "src": "4096:12:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4042,18 +4042,18 @@ "typeString": "uint256" } ], - "id": 288, + "id": 3010, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 154, - "src": "4068:8:0", + "referencedDeclaration": 2876, + "src": "4068:8:24", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 294, + "id": 3016, "isConstant": false, "isLValue": false, "isPure": false, @@ -4061,20 +4061,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4068:41:0", + "src": "4068:41:24", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 295, + "id": 3017, "nodeType": "EmitStatement", - "src": "4063:46:0" + "src": "4063:46:24" } ] }, "documentation": null, - "id": 297, + "id": 3019, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -4082,29 +4082,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 266, + "id": 2988, "nodeType": "ParameterList", "parameters": [], - "src": "3927:2:0" + "src": "3927:2:24" }, "payable": false, "returnParameters": { - "id": 267, + "id": 2989, "nodeType": "ParameterList", "parameters": [], - "src": "3937:0:0" + "src": "3937:0:24" }, - "scope": 539, - "src": "3916:200:0", + "scope": 3261, + "src": "3916:200:24", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 311, + "id": 3033, "nodeType": "Block", - "src": "4353:62:0", + "src": "4353:62:24", "statements": [ { "expression": { @@ -4114,32 +4114,32 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 304, + "id": 3026, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 259, - "src": "4387:8:0", + "referencedDeclaration": 2981, + "src": "4387:8:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 308, + "id": 3030, "indexExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 306, + "id": 3028, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4404:1:0", + "src": "4404:1:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4155,20 +4155,20 @@ "typeString": "int_const 0" } ], - "id": 305, + "id": 3027, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4396:7:0", + "src": "4396:7:24", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 307, + "id": 3029, "isConstant": false, "isLValue": false, "isPure": true, @@ -4176,7 +4176,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4396:10:0", + "src": "4396:10:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4187,7 +4187,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4387:20:0", + "src": "4387:20:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4203,32 +4203,32 @@ ], "expression": { "argumentTypes": null, - "id": 302, + "id": 3024, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 255, - "src": "4370:12:0", + "referencedDeclaration": 2977, + "src": "4370:12:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 303, + "id": 3025, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 45, - "src": "4370:16:0", + "referencedDeclaration": 2767, + "src": "4370:16:24", "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": 309, + "id": 3031, "isConstant": false, "isLValue": false, "isPure": false, @@ -4236,21 +4236,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4370:38:0", + "src": "4370:38:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 301, - "id": 310, + "functionReturnParameters": 3023, + "id": 3032, "nodeType": "Return", - "src": "4363:45:0" + "src": "4363:45:24" } ] }, "documentation": null, - "id": 312, + "id": 3034, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4258,23 +4258,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 298, + "id": 3020, "nodeType": "ParameterList", "parameters": [], - "src": "4323:2:0" + "src": "4323:2:24" }, "payable": false, "returnParameters": { - "id": 301, + "id": 3023, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 300, + "id": 3022, "name": "", "nodeType": "VariableDeclaration", - "scope": 312, - "src": "4347:4:0", + "scope": 3034, + "src": "4347:4:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4282,10 +4282,10 @@ "typeString": "uint256" }, "typeName": { - "id": 299, + "id": 3021, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4347:4:0", + "src": "4347:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4295,45 +4295,45 @@ "visibility": "internal" } ], - "src": "4346:6:0" + "src": "4346:6:24" }, - "scope": 539, - "src": "4303:112:0", + "scope": 3261, + "src": "4303:112:24", "stateMutability": "view", - "superFunction": 101, + "superFunction": 2823, "visibility": "public" }, { "body": { - "id": 323, + "id": 3045, "nodeType": "Block", - "src": "4710:44:0", + "src": "4710:44:24", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 319, + "id": 3041, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 259, - "src": "4727:8:0", + "referencedDeclaration": 2981, + "src": "4727:8:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 321, + "id": 3043, "indexExpression": { "argumentTypes": null, - "id": 320, + "id": 3042, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "4736:10:0", + "referencedDeclaration": 3036, + "src": "4736:10:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4344,21 +4344,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4727:20:0", + "src": "4727:20:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 318, - "id": 322, + "functionReturnParameters": 3040, + "id": 3044, "nodeType": "Return", - "src": "4720:27:0" + "src": "4720:27:24" } ] }, "documentation": null, - "id": 324, + "id": 3046, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4366,16 +4366,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 315, + "id": 3037, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 314, + "id": 3036, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 324, - "src": "4655:18:0", + "scope": 3046, + "src": "4655:18:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4383,10 +4383,10 @@ "typeString": "address" }, "typeName": { - "id": 313, + "id": 3035, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4655:7:0", + "src": "4655:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4396,20 +4396,20 @@ "visibility": "internal" } ], - "src": "4654:20:0" + "src": "4654:20:24" }, "payable": false, "returnParameters": { - "id": 318, + "id": 3040, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 317, + "id": 3039, "name": "balance", "nodeType": "VariableDeclaration", - "scope": 324, - "src": "4696:12:0", + "scope": 3046, + "src": "4696:12:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4417,10 +4417,10 @@ "typeString": "uint256" }, "typeName": { - "id": 316, + "id": 3038, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4696:4:0", + "src": "4696:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4430,24 +4430,24 @@ "visibility": "internal" } ], - "src": "4695:14:0" + "src": "4695:14:24" }, - "scope": 539, - "src": "4636:118:0", + "scope": 3261, + "src": "4636:118:24", "stateMutability": "view", - "superFunction": 108, + "superFunction": 2830, "visibility": "public" }, { "body": { - "id": 366, + "id": 3088, "nodeType": "Block", - "src": "5170:189:0", + "src": "5170:189:24", "statements": [ { "expression": { "argumentTypes": null, - "id": 344, + "id": 3066, "isConstant": false, "isLValue": false, "isPure": false, @@ -4456,34 +4456,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 333, + "id": 3055, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 259, - "src": "5180:8:0", + "referencedDeclaration": 2981, + "src": "5180:8:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 336, + "id": 3058, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 334, + "id": 3056, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "5189:3:0", + "referencedDeclaration": 3828, + "src": "5189:3:24", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 335, + "id": 3057, "isConstant": false, "isLValue": false, "isPure": false, @@ -4491,7 +4491,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5189:10:0", + "src": "5189:10:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4502,7 +4502,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5180:20:0", + "src": "5180:20:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4515,12 +4515,12 @@ "arguments": [ { "argumentTypes": null, - "id": 342, + "id": 3064, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 328, - "src": "5228:6:0", + "referencedDeclaration": 3050, + "src": "5228:6:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4538,34 +4538,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 337, + "id": 3059, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 259, - "src": "5203:8:0", + "referencedDeclaration": 2981, + "src": "5203:8:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 340, + "id": 3062, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 338, + "id": 3060, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "5212:3:0", + "referencedDeclaration": 3828, + "src": "5212:3:24", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 339, + "id": 3061, "isConstant": false, "isLValue": false, "isPure": false, @@ -4573,7 +4573,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5212:10:0", + "src": "5212:10:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4584,27 +4584,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5203:20:0", + "src": "5203:20:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 341, + "id": 3063, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 45, - "src": "5203:24:0", + "referencedDeclaration": 2767, + "src": "5203:24:24", "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": 343, + "id": 3065, "isConstant": false, "isLValue": false, "isPure": false, @@ -4612,26 +4612,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5203:32:0", + "src": "5203:32:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5180:55:0", + "src": "5180:55:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 345, + "id": 3067, "nodeType": "ExpressionStatement", - "src": "5180:55:0" + "src": "5180:55:24" }, { "expression": { "argumentTypes": null, - "id": 355, + "id": 3077, "isConstant": false, "isLValue": false, "isPure": false, @@ -4640,26 +4640,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 346, + "id": 3068, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 259, - "src": "5245:8:0", + "referencedDeclaration": 2981, + "src": "5245:8:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 348, + "id": 3070, "indexExpression": { "argumentTypes": null, - "id": 347, + "id": 3069, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 326, - "src": "5254:2:0", + "referencedDeclaration": 3048, + "src": "5254:2:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4670,7 +4670,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5245:12:0", + "src": "5245:12:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4683,12 +4683,12 @@ "arguments": [ { "argumentTypes": null, - "id": 353, + "id": 3075, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 328, - "src": "5277:6:0", + "referencedDeclaration": 3050, + "src": "5277:6:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4706,26 +4706,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 349, + "id": 3071, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 259, - "src": "5260:8:0", + "referencedDeclaration": 2981, + "src": "5260:8:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 351, + "id": 3073, "indexExpression": { "argumentTypes": null, - "id": 350, + "id": 3072, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 326, - "src": "5269:2:0", + "referencedDeclaration": 3048, + "src": "5269:2:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4736,27 +4736,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5260:12:0", + "src": "5260:12:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 352, + "id": 3074, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 23, - "src": "5260:16:0", + "referencedDeclaration": 2745, + "src": "5260:16:24", "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": 354, + "id": 3076, "isConstant": false, "isLValue": false, "isPure": false, @@ -4764,21 +4764,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5260:24:0", + "src": "5260:24:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5245:39:0", + "src": "5245:39:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 356, + "id": 3078, "nodeType": "ExpressionStatement", - "src": "5245:39:0" + "src": "5245:39:24" }, { "eventCall": { @@ -4788,18 +4788,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 358, + "id": 3080, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "5308:3:0", + "referencedDeclaration": 3828, + "src": "5308:3:24", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 359, + "id": 3081, "isConstant": false, "isLValue": false, "isPure": false, @@ -4807,7 +4807,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5308:10:0", + "src": "5308:10:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4815,12 +4815,12 @@ }, { "argumentTypes": null, - "id": 360, + "id": 3082, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 326, - "src": "5320:2:0", + "referencedDeclaration": 3048, + "src": "5320:2:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4828,12 +4828,12 @@ }, { "argumentTypes": null, - "id": 361, + "id": 3083, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 328, - "src": "5324:6:0", + "referencedDeclaration": 3050, + "src": "5324:6:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4855,18 +4855,18 @@ "typeString": "uint256" } ], - "id": 357, + "id": 3079, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 154, - "src": "5299:8:0", + "referencedDeclaration": 2876, + "src": "5299:8:24", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 362, + "id": 3084, "isConstant": false, "isLValue": false, "isPure": false, @@ -4874,28 +4874,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5299:32:0", + "src": "5299:32:24", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 363, + "id": 3085, "nodeType": "EmitStatement", - "src": "5294:37:0" + "src": "5294:37:24" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 364, + "id": 3086, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5348:4:0", + "src": "5348:4:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4903,15 +4903,15 @@ }, "value": "true" }, - "functionReturnParameters": 332, - "id": 365, + "functionReturnParameters": 3054, + "id": 3087, "nodeType": "Return", - "src": "5341:11:0" + "src": "5341:11:24" } ] }, "documentation": null, - "id": 367, + "id": 3089, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -4919,16 +4919,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 329, + "id": 3051, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 326, + "id": 3048, "name": "to", "nodeType": "VariableDeclaration", - "scope": 367, - "src": "5115:10:0", + "scope": 3089, + "src": "5115:10:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4936,10 +4936,10 @@ "typeString": "address" }, "typeName": { - "id": 325, + "id": 3047, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5115:7:0", + "src": "5115:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4950,11 +4950,11 @@ }, { "constant": false, - "id": 328, + "id": 3050, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 367, - "src": "5127:11:0", + "scope": 3089, + "src": "5127:11:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4962,10 +4962,10 @@ "typeString": "uint256" }, "typeName": { - "id": 327, + "id": 3049, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5127:4:0", + "src": "5127:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4975,20 +4975,20 @@ "visibility": "internal" } ], - "src": "5114:25:0" + "src": "5114:25:24" }, "payable": false, "returnParameters": { - "id": 332, + "id": 3054, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 331, + "id": 3053, "name": "success", "nodeType": "VariableDeclaration", - "scope": 367, - "src": "5156:12:0", + "scope": 3089, + "src": "5156:12:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4996,10 +4996,10 @@ "typeString": "bool" }, "typeName": { - "id": 330, + "id": 3052, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5156:4:0", + "src": "5156:4:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5009,24 +5009,24 @@ "visibility": "internal" } ], - "src": "5155:14:0" + "src": "5155:14:24" }, - "scope": 539, - "src": "5097:262:0", + "scope": 3261, + "src": "5097:262:24", "stateMutability": "nonpayable", - "superFunction": 126, + "superFunction": 2848, "visibility": "public" }, { "body": { - "id": 394, + "id": 3116, "nodeType": "Block", - "src": "5942:127:0", + "src": "5942:127:24", "statements": [ { "expression": { "argumentTypes": null, - "id": 383, + "id": 3105, "isConstant": false, "isLValue": false, "isPure": false, @@ -5037,34 +5037,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 376, + "id": 3098, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 265, - "src": "5952:7:0", + "referencedDeclaration": 2987, + "src": "5952:7:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 380, + "id": 3102, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 377, + "id": 3099, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "5960:3:0", + "referencedDeclaration": 3828, + "src": "5960:3:24", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 378, + "id": 3100, "isConstant": false, "isLValue": false, "isPure": false, @@ -5072,7 +5072,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5960:10:0", + "src": "5960:10:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5083,21 +5083,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5952:19:0", + "src": "5952:19:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 381, + "id": 3103, "indexExpression": { "argumentTypes": null, - "id": 379, + "id": 3101, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 369, - "src": "5972:7:0", + "referencedDeclaration": 3091, + "src": "5972:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5108,7 +5108,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5952:28:0", + "src": "5952:28:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5118,26 +5118,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 382, + "id": 3104, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 371, - "src": "5983:6:0", + "referencedDeclaration": 3093, + "src": "5983:6:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5952:37:0", + "src": "5952:37:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 384, + "id": 3106, "nodeType": "ExpressionStatement", - "src": "5952:37:0" + "src": "5952:37:24" }, { "eventCall": { @@ -5147,18 +5147,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 386, + "id": 3108, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "6013:3:0", + "referencedDeclaration": 3828, + "src": "6013:3:24", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 387, + "id": 3109, "isConstant": false, "isLValue": false, "isPure": false, @@ -5166,7 +5166,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6013:10:0", + "src": "6013:10:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5174,12 +5174,12 @@ }, { "argumentTypes": null, - "id": 388, + "id": 3110, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 369, - "src": "6025:7:0", + "referencedDeclaration": 3091, + "src": "6025:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5187,12 +5187,12 @@ }, { "argumentTypes": null, - "id": 389, + "id": 3111, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 371, - "src": "6034:6:0", + "referencedDeclaration": 3093, + "src": "6034:6:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5214,18 +5214,18 @@ "typeString": "uint256" } ], - "id": 385, + "id": 3107, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 162, - "src": "6004:8:0", + "referencedDeclaration": 2884, + "src": "6004:8:24", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 390, + "id": 3112, "isConstant": false, "isLValue": false, "isPure": false, @@ -5233,28 +5233,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6004:37:0", + "src": "6004:37:24", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 391, + "id": 3113, "nodeType": "EmitStatement", - "src": "5999:42:0" + "src": "5999:42:24" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 392, + "id": 3114, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "6058:4:0", + "src": "6058:4:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5262,15 +5262,15 @@ }, "value": "true" }, - "functionReturnParameters": 375, - "id": 393, + "functionReturnParameters": 3097, + "id": 3115, "nodeType": "Return", - "src": "6051:11:0" + "src": "6051:11:24" } ] }, "documentation": null, - "id": 395, + "id": 3117, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -5278,16 +5278,16 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 372, + "id": 3094, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 369, + "id": 3091, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 395, - "src": "5882:15:0", + "scope": 3117, + "src": "5882:15:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5295,10 +5295,10 @@ "typeString": "address" }, "typeName": { - "id": 368, + "id": 3090, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5882:7:0", + "src": "5882:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5309,11 +5309,11 @@ }, { "constant": false, - "id": 371, + "id": 3093, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 395, - "src": "5899:11:0", + "scope": 3117, + "src": "5899:11:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5321,10 +5321,10 @@ "typeString": "uint256" }, "typeName": { - "id": 370, + "id": 3092, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5899:4:0", + "src": "5899:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5334,20 +5334,20 @@ "visibility": "internal" } ], - "src": "5881:30:0" + "src": "5881:30:24" }, "payable": false, "returnParameters": { - "id": 375, + "id": 3097, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 374, + "id": 3096, "name": "success", "nodeType": "VariableDeclaration", - "scope": 395, - "src": "5928:12:0", + "scope": 3117, + "src": "5928:12:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5355,10 +5355,10 @@ "typeString": "bool" }, "typeName": { - "id": 373, + "id": 3095, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5928:4:0", + "src": "5928:4:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5368,24 +5368,24 @@ "visibility": "internal" } ], - "src": "5927:14:0" + "src": "5927:14:24" }, - "scope": 539, - "src": "5865:204:0", + "scope": 3261, + "src": "5865:204:24", "stateMutability": "nonpayable", - "superFunction": 135, + "superFunction": 2857, "visibility": "public" }, { "body": { - "id": 453, + "id": 3175, "nodeType": "Block", - "src": "6692:246:0", + "src": "6692:246:24", "statements": [ { "expression": { "argumentTypes": null, - "id": 415, + "id": 3137, "isConstant": false, "isLValue": false, "isPure": false, @@ -5394,26 +5394,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 406, + "id": 3128, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 259, - "src": "6702:8:0", + "referencedDeclaration": 2981, + "src": "6702:8:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 408, + "id": 3130, "indexExpression": { "argumentTypes": null, - "id": 407, + "id": 3129, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 397, - "src": "6711:4:0", + "referencedDeclaration": 3119, + "src": "6711:4:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5424,7 +5424,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6702:14:0", + "src": "6702:14:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5437,12 +5437,12 @@ "arguments": [ { "argumentTypes": null, - "id": 413, + "id": 3135, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 401, - "src": "6738:6:0", + "referencedDeclaration": 3123, + "src": "6738:6:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5460,26 +5460,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 409, + "id": 3131, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 259, - "src": "6719:8:0", + "referencedDeclaration": 2981, + "src": "6719:8:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 411, + "id": 3133, "indexExpression": { "argumentTypes": null, - "id": 410, + "id": 3132, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 397, - "src": "6728:4:0", + "referencedDeclaration": 3119, + "src": "6728:4:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5490,27 +5490,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6719:14:0", + "src": "6719:14:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 412, + "id": 3134, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 45, - "src": "6719:18:0", + "referencedDeclaration": 2767, + "src": "6719:18:24", "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": 414, + "id": 3136, "isConstant": false, "isLValue": false, "isPure": false, @@ -5518,26 +5518,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6719:26:0", + "src": "6719:26:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6702:43:0", + "src": "6702:43:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 416, + "id": 3138, "nodeType": "ExpressionStatement", - "src": "6702:43:0" + "src": "6702:43:24" }, { "expression": { "argumentTypes": null, - "id": 432, + "id": 3154, "isConstant": false, "isLValue": false, "isPure": false, @@ -5548,26 +5548,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 417, + "id": 3139, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 265, - "src": "6755:7:0", + "referencedDeclaration": 2987, + "src": "6755:7:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 421, + "id": 3143, "indexExpression": { "argumentTypes": null, - "id": 418, + "id": 3140, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 397, - "src": "6763:4:0", + "referencedDeclaration": 3119, + "src": "6763:4:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5578,29 +5578,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6755:13:0", + "src": "6755:13:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 422, + "id": 3144, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 419, + "id": 3141, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "6769:3:0", + "referencedDeclaration": 3828, + "src": "6769:3:24", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 420, + "id": 3142, "isConstant": false, "isLValue": false, "isPure": false, @@ -5608,7 +5608,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6769:10:0", + "src": "6769:10:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5619,7 +5619,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6755:25:0", + "src": "6755:25:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5632,12 +5632,12 @@ "arguments": [ { "argumentTypes": null, - "id": 430, + "id": 3152, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 401, - "src": "6813:6:0", + "referencedDeclaration": 3123, + "src": "6813:6:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5657,26 +5657,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 423, + "id": 3145, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 265, - "src": "6783:7:0", + "referencedDeclaration": 2987, + "src": "6783:7:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 425, + "id": 3147, "indexExpression": { "argumentTypes": null, - "id": 424, + "id": 3146, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 397, - "src": "6791:4:0", + "referencedDeclaration": 3119, + "src": "6791:4:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5687,29 +5687,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6783:13:0", + "src": "6783:13:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 428, + "id": 3150, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 426, + "id": 3148, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "6797:3:0", + "referencedDeclaration": 3828, + "src": "6797:3:24", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 427, + "id": 3149, "isConstant": false, "isLValue": false, "isPure": false, @@ -5717,7 +5717,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6797:10:0", + "src": "6797:10:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5728,27 +5728,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6783:25:0", + "src": "6783:25:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 429, + "id": 3151, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 45, - "src": "6783:29:0", + "referencedDeclaration": 2767, + "src": "6783:29:24", "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": 431, + "id": 3153, "isConstant": false, "isLValue": false, "isPure": false, @@ -5756,26 +5756,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6783:37:0", + "src": "6783:37:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6755:65:0", + "src": "6755:65:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 433, + "id": 3155, "nodeType": "ExpressionStatement", - "src": "6755:65:0" + "src": "6755:65:24" }, { "expression": { "argumentTypes": null, - "id": 443, + "id": 3165, "isConstant": false, "isLValue": false, "isPure": false, @@ -5784,26 +5784,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 434, + "id": 3156, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 259, - "src": "6830:8:0", + "referencedDeclaration": 2981, + "src": "6830:8:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 436, + "id": 3158, "indexExpression": { "argumentTypes": null, - "id": 435, + "id": 3157, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 399, - "src": "6839:2:0", + "referencedDeclaration": 3121, + "src": "6839:2:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5814,7 +5814,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6830:12:0", + "src": "6830:12:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5827,12 +5827,12 @@ "arguments": [ { "argumentTypes": null, - "id": 441, + "id": 3163, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 401, - "src": "6862:6:0", + "referencedDeclaration": 3123, + "src": "6862:6:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5850,26 +5850,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 437, + "id": 3159, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 259, - "src": "6845:8:0", + "referencedDeclaration": 2981, + "src": "6845:8:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 439, + "id": 3161, "indexExpression": { "argumentTypes": null, - "id": 438, + "id": 3160, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 399, - "src": "6854:2:0", + "referencedDeclaration": 3121, + "src": "6854:2:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5880,27 +5880,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6845:12:0", + "src": "6845:12:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 440, + "id": 3162, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 23, - "src": "6845:16:0", + "referencedDeclaration": 2745, + "src": "6845:16:24", "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": 442, + "id": 3164, "isConstant": false, "isLValue": false, "isPure": false, @@ -5908,21 +5908,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6845:24:0", + "src": "6845:24:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6830:39:0", + "src": "6830:39:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 444, + "id": 3166, "nodeType": "ExpressionStatement", - "src": "6830:39:0" + "src": "6830:39:24" }, { "eventCall": { @@ -5930,12 +5930,12 @@ "arguments": [ { "argumentTypes": null, - "id": 446, + "id": 3168, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 397, - "src": "6893:4:0", + "referencedDeclaration": 3119, + "src": "6893:4:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5943,12 +5943,12 @@ }, { "argumentTypes": null, - "id": 447, + "id": 3169, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 399, - "src": "6899:2:0", + "referencedDeclaration": 3121, + "src": "6899:2:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5956,12 +5956,12 @@ }, { "argumentTypes": null, - "id": 448, + "id": 3170, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 401, - "src": "6903:6:0", + "referencedDeclaration": 3123, + "src": "6903:6:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5983,18 +5983,18 @@ "typeString": "uint256" } ], - "id": 445, + "id": 3167, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 154, - "src": "6884:8:0", + "referencedDeclaration": 2876, + "src": "6884:8:24", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 449, + "id": 3171, "isConstant": false, "isLValue": false, "isPure": false, @@ -6002,28 +6002,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6884:26:0", + "src": "6884:26:24", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 450, + "id": 3172, "nodeType": "EmitStatement", - "src": "6879:31:0" + "src": "6879:31:24" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 451, + "id": 3173, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "6927:4:0", + "src": "6927:4:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6031,15 +6031,15 @@ }, "value": "true" }, - "functionReturnParameters": 405, - "id": 452, + "functionReturnParameters": 3127, + "id": 3174, "nodeType": "Return", - "src": "6920:11:0" + "src": "6920:11:24" } ] }, "documentation": null, - "id": 454, + "id": 3176, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -6047,16 +6047,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 402, + "id": 3124, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 397, + "id": 3119, "name": "from", "nodeType": "VariableDeclaration", - "scope": 454, - "src": "6623:12:0", + "scope": 3176, + "src": "6623:12:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6064,10 +6064,10 @@ "typeString": "address" }, "typeName": { - "id": 396, + "id": 3118, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6623:7:0", + "src": "6623:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6078,11 +6078,11 @@ }, { "constant": false, - "id": 399, + "id": 3121, "name": "to", "nodeType": "VariableDeclaration", - "scope": 454, - "src": "6637:10:0", + "scope": 3176, + "src": "6637:10:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6090,10 +6090,10 @@ "typeString": "address" }, "typeName": { - "id": 398, + "id": 3120, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6637:7:0", + "src": "6637:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6104,11 +6104,11 @@ }, { "constant": false, - "id": 401, + "id": 3123, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 454, - "src": "6649:11:0", + "scope": 3176, + "src": "6649:11:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6116,10 +6116,10 @@ "typeString": "uint256" }, "typeName": { - "id": 400, + "id": 3122, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6649:4:0", + "src": "6649:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6129,20 +6129,20 @@ "visibility": "internal" } ], - "src": "6622:39:0" + "src": "6622:39:24" }, "payable": false, "returnParameters": { - "id": 405, + "id": 3127, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 404, + "id": 3126, "name": "success", "nodeType": "VariableDeclaration", - "scope": 454, - "src": "6678:12:0", + "scope": 3176, + "src": "6678:12:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6150,10 +6150,10 @@ "typeString": "bool" }, "typeName": { - "id": 403, + "id": 3125, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6678:4:0", + "src": "6678:4:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6163,19 +6163,19 @@ "visibility": "internal" } ], - "src": "6677:14:0" + "src": "6677:14:24" }, - "scope": 539, - "src": "6601:337:0", + "scope": 3261, + "src": "6601:337:24", "stateMutability": "nonpayable", - "superFunction": 146, + "superFunction": 2868, "visibility": "public" }, { "body": { - "id": 469, + "id": 3191, "nodeType": "Block", - "src": "7312:52:0", + "src": "7312:52:24", "statements": [ { "expression": { @@ -6184,26 +6184,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 463, + "id": 3185, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 265, - "src": "7329:7:0", + "referencedDeclaration": 2987, + "src": "7329:7:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 465, + "id": 3187, "indexExpression": { "argumentTypes": null, - "id": 464, + "id": 3186, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 456, - "src": "7337:10:0", + "referencedDeclaration": 3178, + "src": "7337:10:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6214,21 +6214,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7329:19:0", + "src": "7329:19:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 467, + "id": 3189, "indexExpression": { "argumentTypes": null, - "id": 466, + "id": 3188, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 458, - "src": "7349:7:0", + "referencedDeclaration": 3180, + "src": "7349:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6239,21 +6239,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7329:28:0", + "src": "7329:28:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 462, - "id": 468, + "functionReturnParameters": 3184, + "id": 3190, "nodeType": "Return", - "src": "7322:35:0" + "src": "7322:35:24" } ] }, "documentation": null, - "id": 470, + "id": 3192, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -6261,16 +6261,16 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 459, + "id": 3181, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 456, + "id": 3178, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 470, - "src": "7238:18:0", + "scope": 3192, + "src": "7238:18:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6278,10 +6278,10 @@ "typeString": "address" }, "typeName": { - "id": 455, + "id": 3177, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7238:7:0", + "src": "7238:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6292,11 +6292,11 @@ }, { "constant": false, - "id": 458, + "id": 3180, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 470, - "src": "7258:15:0", + "scope": 3192, + "src": "7258:15:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6304,10 +6304,10 @@ "typeString": "address" }, "typeName": { - "id": 457, + "id": 3179, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7258:7:0", + "src": "7258:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6317,20 +6317,20 @@ "visibility": "internal" } ], - "src": "7237:37:0" + "src": "7237:37:24" }, "payable": false, "returnParameters": { - "id": 462, + "id": 3184, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 461, + "id": 3183, "name": "remaining", "nodeType": "VariableDeclaration", - "scope": 470, - "src": "7296:14:0", + "scope": 3192, + "src": "7296:14:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6338,10 +6338,10 @@ "typeString": "uint256" }, "typeName": { - "id": 460, + "id": 3182, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7296:4:0", + "src": "7296:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6351,24 +6351,24 @@ "visibility": "internal" } ], - "src": "7295:16:0" + "src": "7295:16:24" }, - "scope": 539, - "src": "7219:145:0", + "scope": 3261, + "src": "7219:145:24", "stateMutability": "view", - "superFunction": 117, + "superFunction": 2839, "visibility": "public" }, { "body": { - "id": 510, + "id": 3232, "nodeType": "Block", - "src": "7820:216:0", + "src": "7820:216:24", "statements": [ { "expression": { "argumentTypes": null, - "id": 488, + "id": 3210, "isConstant": false, "isLValue": false, "isPure": false, @@ -6379,34 +6379,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 481, + "id": 3203, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 265, - "src": "7830:7:0", + "referencedDeclaration": 2987, + "src": "7830:7:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 485, + "id": 3207, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 482, + "id": 3204, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "7838:3:0", + "referencedDeclaration": 3828, + "src": "7838:3:24", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 483, + "id": 3205, "isConstant": false, "isLValue": false, "isPure": false, @@ -6414,7 +6414,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7838:10:0", + "src": "7838:10:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6425,21 +6425,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7830:19:0", + "src": "7830:19:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 486, + "id": 3208, "indexExpression": { "argumentTypes": null, - "id": 484, + "id": 3206, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 472, - "src": "7850:7:0", + "referencedDeclaration": 3194, + "src": "7850:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6450,7 +6450,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7830:28:0", + "src": "7830:28:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6460,26 +6460,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 487, + "id": 3209, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 474, - "src": "7861:6:0", + "referencedDeclaration": 3196, + "src": "7861:6:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7830:37:0", + "src": "7830:37:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 489, + "id": 3211, "nodeType": "ExpressionStatement", - "src": "7830:37:0" + "src": "7830:37:24" }, { "eventCall": { @@ -6489,18 +6489,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 491, + "id": 3213, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "7891:3:0", + "referencedDeclaration": 3828, + "src": "7891:3:24", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 492, + "id": 3214, "isConstant": false, "isLValue": false, "isPure": false, @@ -6508,7 +6508,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7891:10:0", + "src": "7891:10:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6516,12 +6516,12 @@ }, { "argumentTypes": null, - "id": 493, + "id": 3215, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 472, - "src": "7903:7:0", + "referencedDeclaration": 3194, + "src": "7903:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6529,12 +6529,12 @@ }, { "argumentTypes": null, - "id": 494, + "id": 3216, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 474, - "src": "7912:6:0", + "referencedDeclaration": 3196, + "src": "7912:6:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6556,18 +6556,18 @@ "typeString": "uint256" } ], - "id": 490, + "id": 3212, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 162, - "src": "7882:8:0", + "referencedDeclaration": 2884, + "src": "7882:8:24", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 495, + "id": 3217, "isConstant": false, "isLValue": false, "isPure": false, @@ -6575,15 +6575,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7882:37:0", + "src": "7882:37:24", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 496, + "id": 3218, "nodeType": "EmitStatement", - "src": "7877:42:0" + "src": "7877:42:24" }, { "expression": { @@ -6593,18 +6593,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 501, + "id": 3223, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "7977:3:0", + "referencedDeclaration": 3828, + "src": "7977:3:24", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 502, + "id": 3224, "isConstant": false, "isLValue": false, "isPure": false, @@ -6612,7 +6612,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7977:10:0", + "src": "7977:10:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6620,12 +6620,12 @@ }, { "argumentTypes": null, - "id": 503, + "id": 3225, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 474, - "src": "7989:6:0", + "referencedDeclaration": 3196, + "src": "7989:6:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6633,25 +6633,25 @@ }, { "argumentTypes": null, - "id": 504, + "id": 3226, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1127, - "src": "7997:4:0", + "referencedDeclaration": 3897, + "src": "7997:4:24", "typeDescriptions": { - "typeIdentifier": "t_contract$_EmptyToken_$539", + "typeIdentifier": "t_contract$_EmptyToken_$3261", "typeString": "contract EmptyToken" } }, { "argumentTypes": null, - "id": 505, + "id": 3227, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 476, - "src": "8003:4:0", + "referencedDeclaration": 3198, + "src": "8003:4:24", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -6669,7 +6669,7 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_contract$_EmptyToken_$539", + "typeIdentifier": "t_contract$_EmptyToken_$3261", "typeString": "contract EmptyToken" }, { @@ -6682,12 +6682,12 @@ "arguments": [ { "argumentTypes": null, - "id": 498, + "id": 3220, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 472, - "src": "7952:7:0", + "referencedDeclaration": 3194, + "src": "7952:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6701,18 +6701,18 @@ "typeString": "address" } ], - "id": 497, + "id": 3219, "name": "ApproveAndCallFallBack", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 175, - "src": "7929:22:0", + "referencedDeclaration": 2897, + "src": "7929:22:24", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$175_$", + "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$2897_$", "typeString": "type(contract ApproveAndCallFallBack)" } }, - "id": 499, + "id": 3221, "isConstant": false, "isLValue": false, "isPure": false, @@ -6720,27 +6720,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7929:31:0", + "src": "7929:31:24", "typeDescriptions": { - "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$175", + "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$2897", "typeString": "contract ApproveAndCallFallBack" } }, - "id": 500, + "id": 3222, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "receiveApproval", "nodeType": "MemberAccess", - "referencedDeclaration": 174, - "src": "7929:47:0", + "referencedDeclaration": 2896, + "src": "7929:47:24", "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": 506, + "id": 3228, "isConstant": false, "isLValue": false, "isPure": false, @@ -6748,28 +6748,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7929:79:0", + "src": "7929:79:24", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 507, + "id": 3229, "nodeType": "ExpressionStatement", - "src": "7929:79:0" + "src": "7929:79:24" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 508, + "id": 3230, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "8025:4:0", + "src": "8025:4:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6777,15 +6777,15 @@ }, "value": "true" }, - "functionReturnParameters": 480, - "id": 509, + "functionReturnParameters": 3202, + "id": 3231, "nodeType": "Return", - "src": "8018:11:0" + "src": "8018:11:24" } ] }, "documentation": null, - "id": 511, + "id": 3233, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -6793,16 +6793,16 @@ "name": "approveAndCall", "nodeType": "FunctionDefinition", "parameters": { - "id": 477, + "id": 3199, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 472, + "id": 3194, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 511, - "src": "7748:15:0", + "scope": 3233, + "src": "7748:15:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6810,10 +6810,10 @@ "typeString": "address" }, "typeName": { - "id": 471, + "id": 3193, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7748:7:0", + "src": "7748:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6824,11 +6824,11 @@ }, { "constant": false, - "id": 474, + "id": 3196, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 511, - "src": "7765:11:0", + "scope": 3233, + "src": "7765:11:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6836,10 +6836,10 @@ "typeString": "uint256" }, "typeName": { - "id": 473, + "id": 3195, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7765:4:0", + "src": "7765:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6850,11 +6850,11 @@ }, { "constant": false, - "id": 476, + "id": 3198, "name": "data", "nodeType": "VariableDeclaration", - "scope": 511, - "src": "7778:10:0", + "scope": 3233, + "src": "7778:10:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6862,10 +6862,10 @@ "typeString": "bytes" }, "typeName": { - "id": 475, + "id": 3197, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "7778:5:0", + "src": "7778:5:24", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -6875,20 +6875,20 @@ "visibility": "internal" } ], - "src": "7747:42:0" + "src": "7747:42:24" }, "payable": false, "returnParameters": { - "id": 480, + "id": 3202, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 479, + "id": 3201, "name": "success", "nodeType": "VariableDeclaration", - "scope": 511, - "src": "7806:12:0", + "scope": 3233, + "src": "7806:12:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6896,10 +6896,10 @@ "typeString": "bool" }, "typeName": { - "id": 478, + "id": 3200, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7806:4:0", + "src": "7806:4:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6909,19 +6909,19 @@ "visibility": "internal" } ], - "src": "7805:14:0" + "src": "7805:14:24" }, - "scope": 539, - "src": "7724:312:0", + "scope": 3261, + "src": "7724:312:24", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 517, + "id": 3239, "nodeType": "Block", - "src": "8254:25:0", + "src": "8254:25:24", "statements": [ { "expression": { @@ -6929,21 +6929,21 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 514, + "id": 3236, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 1111, - 1112 + 3833, + 3834 ], - "referencedDeclaration": 1111, - "src": "8264:6:0", + "referencedDeclaration": 3833, + "src": "8264:6:24", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 515, + "id": 3237, "isConstant": false, "isLValue": false, "isPure": false, @@ -6951,20 +6951,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8264:8:0", + "src": "8264:8:24", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 516, + "id": 3238, "nodeType": "ExpressionStatement", - "src": "8264:8:0" + "src": "8264:8:24" } ] }, "documentation": null, - "id": 518, + "id": 3240, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -6972,29 +6972,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 512, + "id": 3234, "nodeType": "ParameterList", "parameters": [], - "src": "8236:2:0" + "src": "8236:2:24" }, "payable": true, "returnParameters": { - "id": 513, + "id": 3235, "nodeType": "ParameterList", "parameters": [], - "src": "8254:0:0" + "src": "8254:0:24" }, - "scope": 539, - "src": "8227:52:0", + "scope": 3261, + "src": "8227:52:24", "stateMutability": "payable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 537, + "id": 3259, "nodeType": "Block", - "src": "8617:76:0", + "src": "8617:76:24", "statements": [ { "expression": { @@ -7002,12 +7002,12 @@ "arguments": [ { "argumentTypes": null, - "id": 533, + "id": 3255, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 177, - "src": "8672:5:0", + "referencedDeclaration": 2899, + "src": "8672:5:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7015,12 +7015,12 @@ }, { "argumentTypes": null, - "id": 534, + "id": 3256, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 522, - "src": "8679:6:0", + "referencedDeclaration": 3244, + "src": "8679:6:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7043,12 +7043,12 @@ "arguments": [ { "argumentTypes": null, - "id": 530, + "id": 3252, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 520, - "src": "8649:12:0", + "referencedDeclaration": 3242, + "src": "8649:12:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7062,18 +7062,18 @@ "typeString": "address" } ], - "id": 529, + "id": 3251, "name": "ERC20Interface", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 163, - "src": "8634:14:0", + "referencedDeclaration": 2885, + "src": "8634:14:24", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$163_$", + "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$2885_$", "typeString": "type(contract ERC20Interface)" } }, - "id": 531, + "id": 3253, "isConstant": false, "isLValue": false, "isPure": false, @@ -7081,27 +7081,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8634:28:0", + "src": "8634:28:24", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$163", + "typeIdentifier": "t_contract$_ERC20Interface_$2885", "typeString": "contract ERC20Interface" } }, - "id": 532, + "id": 3254, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 126, - "src": "8634:37:0", + "referencedDeclaration": 2848, + "src": "8634:37:24", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 535, + "id": 3257, "isConstant": false, "isLValue": false, "isPure": false, @@ -7109,58 +7109,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8634:52:0", + "src": "8634:52:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 528, - "id": 536, + "functionReturnParameters": 3250, + "id": 3258, "nodeType": "Return", - "src": "8627:59:0" + "src": "8627:59:24" } ] }, "documentation": null, - "id": 538, + "id": 3260, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 525, + "id": 3247, "modifierName": { "argumentTypes": null, - "id": 524, + "id": 3246, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 205, - "src": "8584:9:0", + "referencedDeclaration": 2927, + "src": "8584:9:24", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "8584:9:0" + "src": "8584:9:24" } ], "name": "transferAnyERC20Token", "nodeType": "FunctionDefinition", "parameters": { - "id": 523, + "id": 3245, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 520, + "id": 3242, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 538, - "src": "8542:20:0", + "scope": 3260, + "src": "8542:20:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7168,10 +7168,10 @@ "typeString": "address" }, "typeName": { - "id": 519, + "id": 3241, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8542:7:0", + "src": "8542:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7182,11 +7182,11 @@ }, { "constant": false, - "id": 522, + "id": 3244, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 538, - "src": "8564:11:0", + "scope": 3260, + "src": "8564:11:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7194,10 +7194,10 @@ "typeString": "uint256" }, "typeName": { - "id": 521, + "id": 3243, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8564:4:0", + "src": "8564:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7207,20 +7207,20 @@ "visibility": "internal" } ], - "src": "8541:35:0" + "src": "8541:35:24" }, "payable": false, "returnParameters": { - "id": 528, + "id": 3250, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 527, + "id": 3249, "name": "success", "nodeType": "VariableDeclaration", - "scope": 538, - "src": "8603:12:0", + "scope": 3260, + "src": "8603:12:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7228,10 +7228,10 @@ "typeString": "bool" }, "typeName": { - "id": 526, + "id": 3248, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "8603:4:0", + "src": "8603:4:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7241,45 +7241,45 @@ "visibility": "internal" } ], - "src": "8602:14:0" + "src": "8602:14:24" }, - "scope": 539, - "src": "8511:182:0", + "scope": 3261, + "src": "8511:182:24", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 540, - "src": "3506:5189:0" + "scope": 3262, + "src": "3506:5189:24" } ], - "src": "0:8695:0" + "src": "0:8695:24" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/EmptyToken.sol", "exportedSymbols": { "ApproveAndCallFallBack": [ - 175 + 2897 ], "ERC20Interface": [ - 163 + 2885 ], "EmptyToken": [ - 539 + 3261 ], "Owned": [ - 244 + 2966 ], "SafeMath": [ - 96 + 2818 ] }, - "id": 540, + "id": 3262, "nodeType": "SourceUnit", "nodes": [ { - "id": 1, + "id": 2723, "literals": [ "solidity", "^", @@ -7287,7 +7287,7 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:0" + "src": "0:24:24" }, { "baseContracts": [], @@ -7295,35 +7295,35 @@ "contractKind": "library", "documentation": null, "fullyImplemented": true, - "id": 96, + "id": 2818, "linearizedBaseContracts": [ - 96 + 2818 ], "name": "SafeMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 22, + "id": 2744, "nodeType": "Block", - "src": "719:51:0", + "src": "719:51:24", "statements": [ { "expression": { "argumentTypes": null, - "id": 14, + "id": 2736, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 10, + "id": 2732, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8, - "src": "729:1:0", + "referencedDeclaration": 2730, + "src": "729:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7337,19 +7337,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 13, + "id": 2735, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 11, + "id": 2733, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3, - "src": "733:1:0", + "referencedDeclaration": 2725, + "src": "733:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7359,32 +7359,32 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 12, + "id": 2734, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5, - "src": "737:1:0", + "referencedDeclaration": 2727, + "src": "737:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "733:5:0", + "src": "733:5:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "729:9:0", + "src": "729:9:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 15, + "id": 2737, "nodeType": "ExpressionStatement", - "src": "729:9:0" + "src": "729:9:24" }, { "expression": { @@ -7396,19 +7396,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 19, + "id": 2741, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 17, + "id": 2739, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 8, - "src": "756:1:0", + "referencedDeclaration": 2730, + "src": "756:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7418,18 +7418,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 18, + "id": 2740, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3, - "src": "761:1:0", + "referencedDeclaration": 2725, + "src": "761:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "756:6:0", + "src": "756:6:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7443,21 +7443,21 @@ "typeString": "bool" } ], - "id": 16, + "id": 2738, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1109, - 1110 + 3831, + 3832 ], - "referencedDeclaration": 1109, - "src": "748:7:0", + "referencedDeclaration": 3831, + "src": "748:7:24", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 20, + "id": 2742, "isConstant": false, "isLValue": false, "isPure": false, @@ -7465,20 +7465,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "748:15:0", + "src": "748:15:24", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 21, + "id": 2743, "nodeType": "ExpressionStatement", - "src": "748:15:0" + "src": "748:15:24" } ] }, "documentation": null, - "id": 23, + "id": 2745, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -7486,16 +7486,16 @@ "name": "add", "nodeType": "FunctionDefinition", "parameters": { - "id": 6, + "id": 2728, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3, + "id": 2725, "name": "a", "nodeType": "VariableDeclaration", - "scope": 23, - "src": "672:6:0", + "scope": 2745, + "src": "672:6:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7503,10 +7503,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2, + "id": 2724, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "672:4:0", + "src": "672:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7517,11 +7517,11 @@ }, { "constant": false, - "id": 5, + "id": 2727, "name": "b", "nodeType": "VariableDeclaration", - "scope": 23, - "src": "680:6:0", + "scope": 2745, + "src": "680:6:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7529,10 +7529,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4, + "id": 2726, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "680:4:0", + "src": "680:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7542,20 +7542,20 @@ "visibility": "internal" } ], - "src": "671:16:0" + "src": "671:16:24" }, "payable": false, "returnParameters": { - "id": 9, + "id": 2731, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 8, + "id": 2730, "name": "c", "nodeType": "VariableDeclaration", - "scope": 23, - "src": "711:6:0", + "scope": 2745, + "src": "711:6:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7563,10 +7563,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7, + "id": 2729, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "711:4:0", + "src": "711:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7576,19 +7576,19 @@ "visibility": "internal" } ], - "src": "710:8:0" + "src": "710:8:24" }, - "scope": 96, - "src": "659:111:0", + "scope": 2818, + "src": "659:111:24", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 44, + "id": 2766, "nodeType": "Block", - "src": "835:51:0", + "src": "835:51:24", "statements": [ { "expression": { @@ -7600,19 +7600,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 35, + "id": 2757, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 33, + "id": 2755, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27, - "src": "853:1:0", + "referencedDeclaration": 2749, + "src": "853:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7622,18 +7622,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 34, + "id": 2756, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25, - "src": "858:1:0", + "referencedDeclaration": 2747, + "src": "858:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "853:6:0", + "src": "853:6:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7647,21 +7647,21 @@ "typeString": "bool" } ], - "id": 32, + "id": 2754, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1109, - 1110 + 3831, + 3832 ], - "referencedDeclaration": 1109, - "src": "845:7:0", + "referencedDeclaration": 3831, + "src": "845:7:24", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 36, + "id": 2758, "isConstant": false, "isLValue": false, "isPure": false, @@ -7669,32 +7669,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "845:15:0", + "src": "845:15:24", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 37, + "id": 2759, "nodeType": "ExpressionStatement", - "src": "845:15:0" + "src": "845:15:24" }, { "expression": { "argumentTypes": null, - "id": 42, + "id": 2764, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 38, + "id": 2760, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 30, - "src": "870:1:0", + "referencedDeclaration": 2752, + "src": "870:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7708,19 +7708,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 41, + "id": 2763, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 39, + "id": 2761, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 25, - "src": "874:1:0", + "referencedDeclaration": 2747, + "src": "874:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7730,37 +7730,37 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 40, + "id": 2762, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27, - "src": "878:1:0", + "referencedDeclaration": 2749, + "src": "878:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "874:5:0", + "src": "874:5:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "870:9:0", + "src": "870:9:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 43, + "id": 2765, "nodeType": "ExpressionStatement", - "src": "870:9:0" + "src": "870:9:24" } ] }, "documentation": null, - "id": 45, + "id": 2767, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -7768,16 +7768,16 @@ "name": "sub", "nodeType": "FunctionDefinition", "parameters": { - "id": 28, + "id": 2750, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 25, + "id": 2747, "name": "a", "nodeType": "VariableDeclaration", - "scope": 45, - "src": "788:6:0", + "scope": 2767, + "src": "788:6:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7785,10 +7785,10 @@ "typeString": "uint256" }, "typeName": { - "id": 24, + "id": 2746, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "788:4:0", + "src": "788:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7799,11 +7799,11 @@ }, { "constant": false, - "id": 27, + "id": 2749, "name": "b", "nodeType": "VariableDeclaration", - "scope": 45, - "src": "796:6:0", + "scope": 2767, + "src": "796:6:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7811,10 +7811,10 @@ "typeString": "uint256" }, "typeName": { - "id": 26, + "id": 2748, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "796:4:0", + "src": "796:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7824,20 +7824,20 @@ "visibility": "internal" } ], - "src": "787:16:0" + "src": "787:16:24" }, "payable": false, "returnParameters": { - "id": 31, + "id": 2753, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 30, + "id": 2752, "name": "c", "nodeType": "VariableDeclaration", - "scope": 45, - "src": "827:6:0", + "scope": 2767, + "src": "827:6:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7845,10 +7845,10 @@ "typeString": "uint256" }, "typeName": { - "id": 29, + "id": 2751, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "827:4:0", + "src": "827:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7858,36 +7858,36 @@ "visibility": "internal" } ], - "src": "826:8:0" + "src": "826:8:24" }, - "scope": 96, - "src": "775:111:0", + "scope": 2818, + "src": "775:111:24", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 72, + "id": 2794, "nodeType": "Block", - "src": "951:65:0", + "src": "951:65:24", "statements": [ { "expression": { "argumentTypes": null, - "id": 58, + "id": 2780, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 54, + "id": 2776, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 52, - "src": "961:1:0", + "referencedDeclaration": 2774, + "src": "961:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7901,19 +7901,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 57, + "id": 2779, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 55, + "id": 2777, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 47, - "src": "965:1:0", + "referencedDeclaration": 2769, + "src": "965:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7923,32 +7923,32 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 56, + "id": 2778, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "969:1:0", + "referencedDeclaration": 2771, + "src": "969:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "965:5:0", + "src": "965:5:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "961:9:0", + "src": "961:9:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 59, + "id": 2781, "nodeType": "ExpressionStatement", - "src": "961:9:0" + "src": "961:9:24" }, { "expression": { @@ -7960,7 +7960,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 69, + "id": 2791, "isConstant": false, "isLValue": false, "isPure": false, @@ -7971,19 +7971,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 63, + "id": 2785, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 61, + "id": 2783, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 47, - "src": "988:1:0", + "referencedDeclaration": 2769, + "src": "988:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7994,14 +7994,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 62, + "id": 2784, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "993:1:0", + "src": "993:1:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -8009,7 +8009,7 @@ }, "value": "0" }, - "src": "988:6:0", + "src": "988:6:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8023,7 +8023,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 68, + "id": 2790, "isConstant": false, "isLValue": false, "isPure": false, @@ -8034,19 +8034,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 66, + "id": 2788, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 64, + "id": 2786, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 52, - "src": "998:1:0", + "referencedDeclaration": 2774, + "src": "998:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8056,18 +8056,18 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 65, + "id": 2787, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 47, - "src": "1002:1:0", + "referencedDeclaration": 2769, + "src": "1002:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "998:5:0", + "src": "998:5:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8077,24 +8077,24 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 67, + "id": 2789, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "1007:1:0", + "referencedDeclaration": 2771, + "src": "1007:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "998:10:0", + "src": "998:10:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "988:20:0", + "src": "988:20:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8108,21 +8108,21 @@ "typeString": "bool" } ], - "id": 60, + "id": 2782, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1109, - 1110 + 3831, + 3832 ], - "referencedDeclaration": 1109, - "src": "980:7:0", + "referencedDeclaration": 3831, + "src": "980:7:24", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 70, + "id": 2792, "isConstant": false, "isLValue": false, "isPure": false, @@ -8130,20 +8130,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "980:29:0", + "src": "980:29:24", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 71, + "id": 2793, "nodeType": "ExpressionStatement", - "src": "980:29:0" + "src": "980:29:24" } ] }, "documentation": null, - "id": 73, + "id": 2795, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -8151,16 +8151,16 @@ "name": "mul", "nodeType": "FunctionDefinition", "parameters": { - "id": 50, + "id": 2772, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 47, + "id": 2769, "name": "a", "nodeType": "VariableDeclaration", - "scope": 73, - "src": "904:6:0", + "scope": 2795, + "src": "904:6:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8168,10 +8168,10 @@ "typeString": "uint256" }, "typeName": { - "id": 46, + "id": 2768, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "904:4:0", + "src": "904:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8182,11 +8182,11 @@ }, { "constant": false, - "id": 49, + "id": 2771, "name": "b", "nodeType": "VariableDeclaration", - "scope": 73, - "src": "912:6:0", + "scope": 2795, + "src": "912:6:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8194,10 +8194,10 @@ "typeString": "uint256" }, "typeName": { - "id": 48, + "id": 2770, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "912:4:0", + "src": "912:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8207,20 +8207,20 @@ "visibility": "internal" } ], - "src": "903:16:0" + "src": "903:16:24" }, "payable": false, "returnParameters": { - "id": 53, + "id": 2775, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 52, + "id": 2774, "name": "c", "nodeType": "VariableDeclaration", - "scope": 73, - "src": "943:6:0", + "scope": 2795, + "src": "943:6:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8228,10 +8228,10 @@ "typeString": "uint256" }, "typeName": { - "id": 51, + "id": 2773, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "943:4:0", + "src": "943:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8241,19 +8241,19 @@ "visibility": "internal" } ], - "src": "942:8:0" + "src": "942:8:24" }, - "scope": 96, - "src": "891:125:0", + "scope": 2818, + "src": "891:125:24", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 94, + "id": 2816, "nodeType": "Block", - "src": "1081:50:0", + "src": "1081:50:24", "statements": [ { "expression": { @@ -8265,19 +8265,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 85, + "id": 2807, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 83, + "id": 2805, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "1099:1:0", + "referencedDeclaration": 2799, + "src": "1099:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8288,14 +8288,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 84, + "id": 2806, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1103:1:0", + "src": "1103:1:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -8303,7 +8303,7 @@ }, "value": "0" }, - "src": "1099:5:0", + "src": "1099:5:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8317,21 +8317,21 @@ "typeString": "bool" } ], - "id": 82, + "id": 2804, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1109, - 1110 + 3831, + 3832 ], - "referencedDeclaration": 1109, - "src": "1091:7:0", + "referencedDeclaration": 3831, + "src": "1091:7:24", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 86, + "id": 2808, "isConstant": false, "isLValue": false, "isPure": false, @@ -8339,32 +8339,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1091:14:0", + "src": "1091:14:24", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 87, + "id": 2809, "nodeType": "ExpressionStatement", - "src": "1091:14:0" + "src": "1091:14:24" }, { "expression": { "argumentTypes": null, - "id": 92, + "id": 2814, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 88, + "id": 2810, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 80, - "src": "1115:1:0", + "referencedDeclaration": 2802, + "src": "1115:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8378,19 +8378,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 91, + "id": 2813, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 89, + "id": 2811, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 75, - "src": "1119:1:0", + "referencedDeclaration": 2797, + "src": "1119:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8400,37 +8400,37 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 90, + "id": 2812, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "1123:1:0", + "referencedDeclaration": 2799, + "src": "1123:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1119:5:0", + "src": "1119:5:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1115:9:0", + "src": "1115:9:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 93, + "id": 2815, "nodeType": "ExpressionStatement", - "src": "1115:9:0" + "src": "1115:9:24" } ] }, "documentation": null, - "id": 95, + "id": 2817, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -8438,16 +8438,16 @@ "name": "div", "nodeType": "FunctionDefinition", "parameters": { - "id": 78, + "id": 2800, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 75, + "id": 2797, "name": "a", "nodeType": "VariableDeclaration", - "scope": 95, - "src": "1034:6:0", + "scope": 2817, + "src": "1034:6:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8455,10 +8455,10 @@ "typeString": "uint256" }, "typeName": { - "id": 74, + "id": 2796, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1034:4:0", + "src": "1034:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8469,11 +8469,11 @@ }, { "constant": false, - "id": 77, + "id": 2799, "name": "b", "nodeType": "VariableDeclaration", - "scope": 95, - "src": "1042:6:0", + "scope": 2817, + "src": "1042:6:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8481,10 +8481,10 @@ "typeString": "uint256" }, "typeName": { - "id": 76, + "id": 2798, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1042:4:0", + "src": "1042:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8494,20 +8494,20 @@ "visibility": "internal" } ], - "src": "1033:16:0" + "src": "1033:16:24" }, "payable": false, "returnParameters": { - "id": 81, + "id": 2803, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 80, + "id": 2802, "name": "c", "nodeType": "VariableDeclaration", - "scope": 95, - "src": "1073:6:0", + "scope": 2817, + "src": "1073:6:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8515,10 +8515,10 @@ "typeString": "uint256" }, "typeName": { - "id": 79, + "id": 2801, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1073:4:0", + "src": "1073:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8528,17 +8528,17 @@ "visibility": "internal" } ], - "src": "1072:8:0" + "src": "1072:8:24" }, - "scope": 96, - "src": "1021:110:0", + "scope": 2818, + "src": "1021:110:24", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], - "scope": 540, - "src": "636:497:0" + "scope": 3262, + "src": "636:497:24" }, { "baseContracts": [], @@ -8546,9 +8546,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 163, + "id": 2885, "linearizedBaseContracts": [ - 163 + 2885 ], "name": "ERC20Interface", "nodeType": "ContractDefinition", @@ -8556,7 +8556,7 @@ { "body": null, "documentation": null, - "id": 101, + "id": 2823, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -8564,23 +8564,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 97, + "id": 2819, "nodeType": "ParameterList", "parameters": [], - "src": "1445:2:0" + "src": "1445:2:24" }, "payable": false, "returnParameters": { - "id": 100, + "id": 2822, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 99, + "id": 2821, "name": "", "nodeType": "VariableDeclaration", - "scope": 101, - "src": "1473:4:0", + "scope": 2823, + "src": "1473:4:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8588,10 +8588,10 @@ "typeString": "uint256" }, "typeName": { - "id": 98, + "id": 2820, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1473:4:0", + "src": "1473:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8601,10 +8601,10 @@ "visibility": "internal" } ], - "src": "1472:6:0" + "src": "1472:6:24" }, - "scope": 163, - "src": "1425:54:0", + "scope": 2885, + "src": "1425:54:24", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -8612,7 +8612,7 @@ { "body": null, "documentation": null, - "id": 108, + "id": 2830, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -8620,16 +8620,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 104, + "id": 2826, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 103, + "id": 2825, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 108, - "src": "1503:18:0", + "scope": 2830, + "src": "1503:18:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8637,10 +8637,10 @@ "typeString": "address" }, "typeName": { - "id": 102, + "id": 2824, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1503:7:0", + "src": "1503:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8650,20 +8650,20 @@ "visibility": "internal" } ], - "src": "1502:20:0" + "src": "1502:20:24" }, "payable": false, "returnParameters": { - "id": 107, + "id": 2829, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 106, + "id": 2828, "name": "balance", "nodeType": "VariableDeclaration", - "scope": 108, - "src": "1548:12:0", + "scope": 2830, + "src": "1548:12:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8671,10 +8671,10 @@ "typeString": "uint256" }, "typeName": { - "id": 105, + "id": 2827, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1548:4:0", + "src": "1548:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8684,10 +8684,10 @@ "visibility": "internal" } ], - "src": "1547:14:0" + "src": "1547:14:24" }, - "scope": 163, - "src": "1484:78:0", + "scope": 2885, + "src": "1484:78:24", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -8695,7 +8695,7 @@ { "body": null, "documentation": null, - "id": 117, + "id": 2839, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -8703,16 +8703,16 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 113, + "id": 2835, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 110, + "id": 2832, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 117, - "src": "1586:18:0", + "scope": 2839, + "src": "1586:18:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8720,10 +8720,10 @@ "typeString": "address" }, "typeName": { - "id": 109, + "id": 2831, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1586:7:0", + "src": "1586:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8734,11 +8734,11 @@ }, { "constant": false, - "id": 112, + "id": 2834, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 117, - "src": "1606:15:0", + "scope": 2839, + "src": "1606:15:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8746,10 +8746,10 @@ "typeString": "address" }, "typeName": { - "id": 111, + "id": 2833, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1606:7:0", + "src": "1606:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8759,20 +8759,20 @@ "visibility": "internal" } ], - "src": "1585:37:0" + "src": "1585:37:24" }, "payable": false, "returnParameters": { - "id": 116, + "id": 2838, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 115, + "id": 2837, "name": "remaining", "nodeType": "VariableDeclaration", - "scope": 117, - "src": "1648:14:0", + "scope": 2839, + "src": "1648:14:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8780,10 +8780,10 @@ "typeString": "uint256" }, "typeName": { - "id": 114, + "id": 2836, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1648:4:0", + "src": "1648:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8793,10 +8793,10 @@ "visibility": "internal" } ], - "src": "1647:16:0" + "src": "1647:16:24" }, - "scope": 163, - "src": "1567:97:0", + "scope": 2885, + "src": "1567:97:24", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -8804,7 +8804,7 @@ { "body": null, "documentation": null, - "id": 126, + "id": 2848, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -8812,16 +8812,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 122, + "id": 2844, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 119, + "id": 2841, "name": "to", "nodeType": "VariableDeclaration", - "scope": 126, - "src": "1687:10:0", + "scope": 2848, + "src": "1687:10:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8829,10 +8829,10 @@ "typeString": "address" }, "typeName": { - "id": 118, + "id": 2840, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1687:7:0", + "src": "1687:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8843,11 +8843,11 @@ }, { "constant": false, - "id": 121, + "id": 2843, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 126, - "src": "1699:11:0", + "scope": 2848, + "src": "1699:11:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8855,10 +8855,10 @@ "typeString": "uint256" }, "typeName": { - "id": 120, + "id": 2842, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1699:4:0", + "src": "1699:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8868,20 +8868,20 @@ "visibility": "internal" } ], - "src": "1686:25:0" + "src": "1686:25:24" }, "payable": false, "returnParameters": { - "id": 125, + "id": 2847, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 124, + "id": 2846, "name": "success", "nodeType": "VariableDeclaration", - "scope": 126, - "src": "1728:12:0", + "scope": 2848, + "src": "1728:12:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8889,10 +8889,10 @@ "typeString": "bool" }, "typeName": { - "id": 123, + "id": 2845, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1728:4:0", + "src": "1728:4:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8902,10 +8902,10 @@ "visibility": "internal" } ], - "src": "1727:14:0" + "src": "1727:14:24" }, - "scope": 163, - "src": "1669:73:0", + "scope": 2885, + "src": "1669:73:24", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -8913,7 +8913,7 @@ { "body": null, "documentation": null, - "id": 135, + "id": 2857, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -8921,16 +8921,16 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 131, + "id": 2853, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 128, + "id": 2850, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 135, - "src": "1764:15:0", + "scope": 2857, + "src": "1764:15:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8938,10 +8938,10 @@ "typeString": "address" }, "typeName": { - "id": 127, + "id": 2849, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1764:7:0", + "src": "1764:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8952,11 +8952,11 @@ }, { "constant": false, - "id": 130, + "id": 2852, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 135, - "src": "1781:11:0", + "scope": 2857, + "src": "1781:11:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8964,10 +8964,10 @@ "typeString": "uint256" }, "typeName": { - "id": 129, + "id": 2851, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1781:4:0", + "src": "1781:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8977,20 +8977,20 @@ "visibility": "internal" } ], - "src": "1763:30:0" + "src": "1763:30:24" }, "payable": false, "returnParameters": { - "id": 134, + "id": 2856, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 133, + "id": 2855, "name": "success", "nodeType": "VariableDeclaration", - "scope": 135, - "src": "1810:12:0", + "scope": 2857, + "src": "1810:12:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8998,10 +8998,10 @@ "typeString": "bool" }, "typeName": { - "id": 132, + "id": 2854, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1810:4:0", + "src": "1810:4:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9011,10 +9011,10 @@ "visibility": "internal" } ], - "src": "1809:14:0" + "src": "1809:14:24" }, - "scope": 163, - "src": "1747:77:0", + "scope": 2885, + "src": "1747:77:24", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -9022,7 +9022,7 @@ { "body": null, "documentation": null, - "id": 146, + "id": 2868, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -9030,16 +9030,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 142, + "id": 2864, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 137, + "id": 2859, "name": "from", "nodeType": "VariableDeclaration", - "scope": 146, - "src": "1851:12:0", + "scope": 2868, + "src": "1851:12:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9047,10 +9047,10 @@ "typeString": "address" }, "typeName": { - "id": 136, + "id": 2858, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1851:7:0", + "src": "1851:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9061,11 +9061,11 @@ }, { "constant": false, - "id": 139, + "id": 2861, "name": "to", "nodeType": "VariableDeclaration", - "scope": 146, - "src": "1865:10:0", + "scope": 2868, + "src": "1865:10:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9073,10 +9073,10 @@ "typeString": "address" }, "typeName": { - "id": 138, + "id": 2860, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1865:7:0", + "src": "1865:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9087,11 +9087,11 @@ }, { "constant": false, - "id": 141, + "id": 2863, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 146, - "src": "1877:11:0", + "scope": 2868, + "src": "1877:11:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9099,10 +9099,10 @@ "typeString": "uint256" }, "typeName": { - "id": 140, + "id": 2862, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1877:4:0", + "src": "1877:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9112,20 +9112,20 @@ "visibility": "internal" } ], - "src": "1850:39:0" + "src": "1850:39:24" }, "payable": false, "returnParameters": { - "id": 145, + "id": 2867, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 144, + "id": 2866, "name": "success", "nodeType": "VariableDeclaration", - "scope": 146, - "src": "1906:12:0", + "scope": 2868, + "src": "1906:12:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9133,10 +9133,10 @@ "typeString": "bool" }, "typeName": { - "id": 143, + "id": 2865, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1906:4:0", + "src": "1906:4:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9146,10 +9146,10 @@ "visibility": "internal" } ], - "src": "1905:14:0" + "src": "1905:14:24" }, - "scope": 163, - "src": "1829:91:0", + "scope": 2885, + "src": "1829:91:24", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -9157,21 +9157,21 @@ { "anonymous": false, "documentation": null, - "id": 154, + "id": 2876, "name": "Transfer", "nodeType": "EventDefinition", "parameters": { - "id": 153, + "id": 2875, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 148, + "id": 2870, "indexed": true, "name": "from", "nodeType": "VariableDeclaration", - "scope": 154, - "src": "1941:20:0", + "scope": 2876, + "src": "1941:20:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9179,10 +9179,10 @@ "typeString": "address" }, "typeName": { - "id": 147, + "id": 2869, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1941:7:0", + "src": "1941:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9193,12 +9193,12 @@ }, { "constant": false, - "id": 150, + "id": 2872, "indexed": true, "name": "to", "nodeType": "VariableDeclaration", - "scope": 154, - "src": "1963:18:0", + "scope": 2876, + "src": "1963:18:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9206,10 +9206,10 @@ "typeString": "address" }, "typeName": { - "id": 149, + "id": 2871, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1963:7:0", + "src": "1963:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9220,12 +9220,12 @@ }, { "constant": false, - "id": 152, + "id": 2874, "indexed": false, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 154, - "src": "1983:11:0", + "scope": 2876, + "src": "1983:11:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9233,10 +9233,10 @@ "typeString": "uint256" }, "typeName": { - "id": 151, + "id": 2873, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1983:4:0", + "src": "1983:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9246,28 +9246,28 @@ "visibility": "internal" } ], - "src": "1940:55:0" + "src": "1940:55:24" }, - "src": "1926:70:0" + "src": "1926:70:24" }, { "anonymous": false, "documentation": null, - "id": 162, + "id": 2884, "name": "Approval", "nodeType": "EventDefinition", "parameters": { - "id": 161, + "id": 2883, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 156, + "id": 2878, "indexed": true, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 162, - "src": "2016:26:0", + "scope": 2884, + "src": "2016:26:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9275,10 +9275,10 @@ "typeString": "address" }, "typeName": { - "id": 155, + "id": 2877, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2016:7:0", + "src": "2016:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9289,12 +9289,12 @@ }, { "constant": false, - "id": 158, + "id": 2880, "indexed": true, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 162, - "src": "2044:23:0", + "scope": 2884, + "src": "2044:23:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9302,10 +9302,10 @@ "typeString": "address" }, "typeName": { - "id": 157, + "id": 2879, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2044:7:0", + "src": "2044:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9316,12 +9316,12 @@ }, { "constant": false, - "id": 160, + "id": 2882, "indexed": false, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 162, - "src": "2069:11:0", + "scope": 2884, + "src": "2069:11:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9329,10 +9329,10 @@ "typeString": "uint256" }, "typeName": { - "id": 159, + "id": 2881, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2069:4:0", + "src": "2069:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9342,13 +9342,13 @@ "visibility": "internal" } ], - "src": "2015:66:0" + "src": "2015:66:24" }, - "src": "2001:81:0" + "src": "2001:81:24" } ], - "scope": 540, - "src": "1395:689:0" + "scope": 3262, + "src": "1395:689:24" }, { "baseContracts": [], @@ -9356,9 +9356,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 175, + "id": 2897, "linearizedBaseContracts": [ - 175 + 2897 ], "name": "ApproveAndCallFallBack", "nodeType": "ContractDefinition", @@ -9366,7 +9366,7 @@ { "body": null, "documentation": null, - "id": 174, + "id": 2896, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -9374,16 +9374,16 @@ "name": "receiveApproval", "nodeType": "FunctionDefinition", "parameters": { - "id": 172, + "id": 2894, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 165, + "id": 2887, "name": "from", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "2416:12:0", + "scope": 2896, + "src": "2416:12:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9391,10 +9391,10 @@ "typeString": "address" }, "typeName": { - "id": 164, + "id": 2886, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2416:7:0", + "src": "2416:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9405,11 +9405,11 @@ }, { "constant": false, - "id": 167, + "id": 2889, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "2430:14:0", + "scope": 2896, + "src": "2430:14:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9417,10 +9417,10 @@ "typeString": "uint256" }, "typeName": { - "id": 166, + "id": 2888, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2430:7:0", + "src": "2430:7:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9431,11 +9431,11 @@ }, { "constant": false, - "id": 169, + "id": 2891, "name": "token", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "2446:13:0", + "scope": 2896, + "src": "2446:13:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9443,10 +9443,10 @@ "typeString": "address" }, "typeName": { - "id": 168, + "id": 2890, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2446:7:0", + "src": "2446:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9457,11 +9457,11 @@ }, { "constant": false, - "id": 171, + "id": 2893, "name": "data", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "2461:10:0", + "scope": 2896, + "src": "2461:10:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9469,10 +9469,10 @@ "typeString": "bytes" }, "typeName": { - "id": 170, + "id": 2892, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2461:5:0", + "src": "2461:5:24", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -9482,24 +9482,24 @@ "visibility": "internal" } ], - "src": "2415:57:0" + "src": "2415:57:24" }, "payable": false, "returnParameters": { - "id": 173, + "id": 2895, "nodeType": "ParameterList", "parameters": [], - "src": "2479:0:0" + "src": "2479:0:24" }, - "scope": 175, - "src": "2391:89:0", + "scope": 2897, + "src": "2391:89:24", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 540, - "src": "2353:129:0" + "scope": 3262, + "src": "2353:129:24" }, { "baseContracts": [], @@ -9507,20 +9507,20 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 244, + "id": 2966, "linearizedBaseContracts": [ - 244 + 2966 ], "name": "Owned", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 177, + "id": 2899, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 244, - "src": "2684:20:0", + "scope": 2966, + "src": "2684:20:24", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -9528,10 +9528,10 @@ "typeString": "address" }, "typeName": { - "id": 176, + "id": 2898, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2684:7:0", + "src": "2684:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9542,11 +9542,11 @@ }, { "constant": false, - "id": 179, + "id": 2901, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 244, - "src": "2710:23:0", + "scope": 2966, + "src": "2710:23:24", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -9554,10 +9554,10 @@ "typeString": "address" }, "typeName": { - "id": 178, + "id": 2900, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2710:7:0", + "src": "2710:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9569,21 +9569,21 @@ { "anonymous": false, "documentation": null, - "id": 185, + "id": 2907, "name": "OwnershipTransferred", "nodeType": "EventDefinition", "parameters": { - "id": 184, + "id": 2906, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 181, + "id": 2903, "indexed": true, "name": "_from", "nodeType": "VariableDeclaration", - "scope": 185, - "src": "2767:21:0", + "scope": 2907, + "src": "2767:21:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9591,10 +9591,10 @@ "typeString": "address" }, "typeName": { - "id": 180, + "id": 2902, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2767:7:0", + "src": "2767:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9605,12 +9605,12 @@ }, { "constant": false, - "id": 183, + "id": 2905, "indexed": true, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 185, - "src": "2790:19:0", + "scope": 2907, + "src": "2790:19:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9618,10 +9618,10 @@ "typeString": "address" }, "typeName": { - "id": 182, + "id": 2904, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2790:7:0", + "src": "2790:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9631,32 +9631,32 @@ "visibility": "internal" } ], - "src": "2766:44:0" + "src": "2766:44:24" }, - "src": "2740:71:0" + "src": "2740:71:24" }, { "body": { - "id": 193, + "id": 2915, "nodeType": "Block", - "src": "2838:35:0", + "src": "2838:35:24", "statements": [ { "expression": { "argumentTypes": null, - "id": 191, + "id": 2913, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 188, + "id": 2910, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 177, - "src": "2848:5:0", + "referencedDeclaration": 2899, + "src": "2848:5:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9668,18 +9668,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 189, + "id": 2911, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "2856:3:0", + "referencedDeclaration": 3828, + "src": "2856:3:24", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 190, + "id": 2912, "isConstant": false, "isLValue": false, "isPure": false, @@ -9687,26 +9687,26 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2856:10:0", + "src": "2856:10:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2848:18:0", + "src": "2848:18:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 192, + "id": 2914, "nodeType": "ExpressionStatement", - "src": "2848:18:0" + "src": "2848:18:24" } ] }, "documentation": null, - "id": 194, + "id": 2916, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -9714,29 +9714,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 186, + "id": 2908, "nodeType": "ParameterList", "parameters": [], - "src": "2828:2:0" + "src": "2828:2:24" }, "payable": false, "returnParameters": { - "id": 187, + "id": 2909, "nodeType": "ParameterList", "parameters": [], - "src": "2838:0:0" + "src": "2838:0:24" }, - "scope": 244, - "src": "2817:56:0", + "scope": 2966, + "src": "2817:56:24", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 204, + "id": 2926, "nodeType": "Block", - "src": "2898:56:0", + "src": "2898:56:24", "statements": [ { "expression": { @@ -9748,7 +9748,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 200, + "id": 2922, "isConstant": false, "isLValue": false, "isPure": false, @@ -9757,18 +9757,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 197, + "id": 2919, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "2916:3:0", + "referencedDeclaration": 3828, + "src": "2916:3:24", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 198, + "id": 2920, "isConstant": false, "isLValue": false, "isPure": false, @@ -9776,7 +9776,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2916:10:0", + "src": "2916:10:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9786,18 +9786,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 199, + "id": 2921, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 177, - "src": "2930:5:0", + "referencedDeclaration": 2899, + "src": "2930:5:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2916:19:0", + "src": "2916:19:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9811,21 +9811,21 @@ "typeString": "bool" } ], - "id": 196, + "id": 2918, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1109, - 1110 + 3831, + 3832 ], - "referencedDeclaration": 1109, - "src": "2908:7:0", + "referencedDeclaration": 3831, + "src": "2908:7:24", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 201, + "id": 2923, "isConstant": false, "isLValue": false, "isPure": false, @@ -9833,58 +9833,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2908:28:0", + "src": "2908:28:24", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 202, + "id": 2924, "nodeType": "ExpressionStatement", - "src": "2908:28:0" + "src": "2908:28:24" }, { - "id": 203, + "id": 2925, "nodeType": "PlaceholderStatement", - "src": "2946:1:0" + "src": "2946:1:24" } ] }, "documentation": null, - "id": 205, + "id": 2927, "name": "onlyOwner", "nodeType": "ModifierDefinition", "parameters": { - "id": 195, + "id": 2917, "nodeType": "ParameterList", "parameters": [], - "src": "2898:0:0" + "src": "2898:0:24" }, - "src": "2879:75:0", + "src": "2879:75:24", "visibility": "internal" }, { "body": { - "id": 216, + "id": 2938, "nodeType": "Block", - "src": "3023:37:0", + "src": "3023:37:24", "statements": [ { "expression": { "argumentTypes": null, - "id": 214, + "id": 2936, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 212, + "id": 2934, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 179, - "src": "3033:8:0", + "referencedDeclaration": 2901, + "src": "3033:8:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9894,68 +9894,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 213, + "id": 2935, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "3044:9:0", + "referencedDeclaration": 2929, + "src": "3044:9:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3033:20:0", + "src": "3033:20:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 215, + "id": 2937, "nodeType": "ExpressionStatement", - "src": "3033:20:0" + "src": "3033:20:24" } ] }, "documentation": null, - "id": 217, + "id": 2939, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 210, + "id": 2932, "modifierName": { "argumentTypes": null, - "id": 209, + "id": 2931, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 205, - "src": "3013:9:0", + "referencedDeclaration": 2927, + "src": "3013:9:24", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3013:9:0" + "src": "3013:9:24" } ], "name": "transferOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 208, + "id": 2930, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 207, + "id": 2929, "name": "_newOwner", "nodeType": "VariableDeclaration", - "scope": 217, - "src": "2987:17:0", + "scope": 2939, + "src": "2987:17:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9963,10 +9963,10 @@ "typeString": "address" }, "typeName": { - "id": 206, + "id": 2928, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2987:7:0", + "src": "2987:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9976,26 +9976,26 @@ "visibility": "internal" } ], - "src": "2986:19:0" + "src": "2986:19:24" }, "payable": false, "returnParameters": { - "id": 211, + "id": 2933, "nodeType": "ParameterList", "parameters": [], - "src": "3023:0:0" + "src": "3023:0:24" }, - "scope": 244, - "src": "2960:100:0", + "scope": 2966, + "src": "2960:100:24", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 242, + "id": 2964, "nodeType": "Block", - "src": "3099:157:0", + "src": "3099:157:24", "statements": [ { "expression": { @@ -10007,7 +10007,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 224, + "id": 2946, "isConstant": false, "isLValue": false, "isPure": false, @@ -10016,18 +10016,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 221, + "id": 2943, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "3117:3:0", + "referencedDeclaration": 3828, + "src": "3117:3:24", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 222, + "id": 2944, "isConstant": false, "isLValue": false, "isPure": false, @@ -10035,7 +10035,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3117:10:0", + "src": "3117:10:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10045,18 +10045,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 223, + "id": 2945, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 179, - "src": "3131:8:0", + "referencedDeclaration": 2901, + "src": "3131:8:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3117:22:0", + "src": "3117:22:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10070,21 +10070,21 @@ "typeString": "bool" } ], - "id": 220, + "id": 2942, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1109, - 1110 + 3831, + 3832 ], - "referencedDeclaration": 1109, - "src": "3109:7:0", + "referencedDeclaration": 3831, + "src": "3109:7:24", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 225, + "id": 2947, "isConstant": false, "isLValue": false, "isPure": false, @@ -10092,15 +10092,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3109:31:0", + "src": "3109:31:24", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 226, + "id": 2948, "nodeType": "ExpressionStatement", - "src": "3109:31:0" + "src": "3109:31:24" }, { "eventCall": { @@ -10108,12 +10108,12 @@ "arguments": [ { "argumentTypes": null, - "id": 228, + "id": 2950, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 177, - "src": "3176:5:0", + "referencedDeclaration": 2899, + "src": "3176:5:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10121,12 +10121,12 @@ }, { "argumentTypes": null, - "id": 229, + "id": 2951, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 179, - "src": "3183:8:0", + "referencedDeclaration": 2901, + "src": "3183:8:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10144,18 +10144,18 @@ "typeString": "address" } ], - "id": 227, + "id": 2949, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 185, - "src": "3155:20:0", + "referencedDeclaration": 2907, + "src": "3155:20:24", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 230, + "id": 2952, "isConstant": false, "isLValue": false, "isPure": false, @@ -10163,32 +10163,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3155:37:0", + "src": "3155:37:24", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 231, + "id": 2953, "nodeType": "EmitStatement", - "src": "3150:42:0" + "src": "3150:42:24" }, { "expression": { "argumentTypes": null, - "id": 234, + "id": 2956, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 232, + "id": 2954, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 177, - "src": "3202:5:0", + "referencedDeclaration": 2899, + "src": "3202:5:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10198,43 +10198,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 233, + "id": 2955, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 179, - "src": "3210:8:0", + "referencedDeclaration": 2901, + "src": "3210:8:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3202:16:0", + "src": "3202:16:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 235, + "id": 2957, "nodeType": "ExpressionStatement", - "src": "3202:16:0" + "src": "3202:16:24" }, { "expression": { "argumentTypes": null, - "id": 240, + "id": 2962, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 236, + "id": 2958, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 179, - "src": "3228:8:0", + "referencedDeclaration": 2901, + "src": "3228:8:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10248,14 +10248,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 238, + "id": 2960, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3247:1:0", + "src": "3247:1:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -10271,20 +10271,20 @@ "typeString": "int_const 0" } ], - "id": 237, + "id": 2959, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3239:7:0", + "src": "3239:7:24", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 239, + "id": 2961, "isConstant": false, "isLValue": false, "isPure": true, @@ -10292,26 +10292,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3239:10:0", + "src": "3239:10:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3228:21:0", + "src": "3228:21:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 241, + "id": 2963, "nodeType": "ExpressionStatement", - "src": "3228:21:0" + "src": "3228:21:24" } ] }, "documentation": null, - "id": 243, + "id": 2965, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -10319,27 +10319,27 @@ "name": "acceptOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 218, + "id": 2940, "nodeType": "ParameterList", "parameters": [], - "src": "3089:2:0" + "src": "3089:2:24" }, "payable": false, "returnParameters": { - "id": 219, + "id": 2941, "nodeType": "ParameterList", "parameters": [], - "src": "3099:0:0" + "src": "3099:0:24" }, - "scope": 244, - "src": "3065:191:0", + "scope": 2966, + "src": "3065:191:24", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 540, - "src": "2663:595:0" + "scope": 3262, + "src": "2663:595:24" }, { "baseContracts": [ @@ -10347,76 +10347,76 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 245, + "id": 2967, "name": "ERC20Interface", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 163, - "src": "3529:14:0", + "referencedDeclaration": 2885, + "src": "3529:14:24", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$163", + "typeIdentifier": "t_contract$_ERC20Interface_$2885", "typeString": "contract ERC20Interface" } }, - "id": 246, + "id": 2968, "nodeType": "InheritanceSpecifier", - "src": "3529:14:0" + "src": "3529:14:24" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 247, + "id": 2969, "name": "Owned", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 244, - "src": "3545:5:0", + "referencedDeclaration": 2966, + "src": "3545:5:24", "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$244", + "typeIdentifier": "t_contract$_Owned_$2966", "typeString": "contract Owned" } }, - "id": 248, + "id": 2970, "nodeType": "InheritanceSpecifier", - "src": "3545:5:0" + "src": "3545:5:24" } ], "contractDependencies": [ - 163, - 244 + 2885, + 2966 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 539, + "id": 3261, "linearizedBaseContracts": [ - 539, - 244, - 163 + 3261, + 2966, + 2885 ], "name": "EmptyToken", "nodeType": "ContractDefinition", "nodes": [ { - "id": 251, + "id": 2973, "libraryName": { "contractScope": null, - "id": 249, + "id": 2971, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 96, - "src": "3563:8:0", + "referencedDeclaration": 2818, + "src": "3563:8:24", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$96", + "typeIdentifier": "t_contract$_SafeMath_$2818", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "3557:24:0", + "src": "3557:24:24", "typeName": { - "id": 250, + "id": 2972, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3576:4:0", + "src": "3576:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10425,11 +10425,11 @@ }, { "constant": false, - "id": 253, + "id": 2975, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 539, - "src": "3587:21:0", + "scope": 3261, + "src": "3587:21:24", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10437,10 +10437,10 @@ "typeString": "uint8" }, "typeName": { - "id": 252, + "id": 2974, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "3587:5:0", + "src": "3587:5:24", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -10451,11 +10451,11 @@ }, { "constant": false, - "id": 255, + "id": 2977, "name": "_totalSupply", "nodeType": "VariableDeclaration", - "scope": 539, - "src": "3614:17:0", + "scope": 3261, + "src": "3614:17:24", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10463,10 +10463,10 @@ "typeString": "uint256" }, "typeName": { - "id": 254, + "id": 2976, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3614:4:0", + "src": "3614:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10477,11 +10477,11 @@ }, { "constant": false, - "id": 259, + "id": 2981, "name": "balances", "nodeType": "VariableDeclaration", - "scope": 539, - "src": "3638:33:0", + "scope": 3261, + "src": "3638:33:24", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10489,28 +10489,28 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 258, + "id": 2980, "keyType": { - "id": 256, + "id": 2978, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3646:7:0", + "src": "3646:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3638:24:0", + "src": "3638:24:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 257, + "id": 2979, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3657:4:0", + "src": "3657:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10522,11 +10522,11 @@ }, { "constant": false, - "id": 265, + "id": 2987, "name": "allowed", "nodeType": "VariableDeclaration", - "scope": 539, - "src": "3677:52:0", + "scope": 3261, + "src": "3677:52:24", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10534,46 +10534,46 @@ "typeString": "mapping(address => mapping(address => uint256))" }, "typeName": { - "id": 264, + "id": 2986, "keyType": { - "id": 260, + "id": 2982, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3685:7:0", + "src": "3685:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3677:44:0", + "src": "3677:44:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" }, "valueType": { - "id": 263, + "id": 2985, "keyType": { - "id": 261, + "id": 2983, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3704:7:0", + "src": "3704:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3696:24:0", + "src": "3696:24:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 262, + "id": 2984, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3715:4:0", + "src": "3715:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10586,26 +10586,26 @@ }, { "body": { - "id": 296, + "id": 3018, "nodeType": "Block", - "src": "3937:179:0", + "src": "3937:179:24", "statements": [ { "expression": { "argumentTypes": null, - "id": 270, + "id": 2992, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 268, + "id": 2990, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "3947:8:0", + "referencedDeclaration": 2975, + "src": "3947:8:24", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -10616,14 +10616,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "3138", - "id": 269, + "id": 2991, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3958:2:0", + "src": "3958:2:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", @@ -10631,32 +10631,32 @@ }, "value": "18" }, - "src": "3947:13:0", + "src": "3947:13:24", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 271, + "id": 2993, "nodeType": "ExpressionStatement", - "src": "3947:13:0" + "src": "3947:13:24" }, { "expression": { "argumentTypes": null, - "id": 280, + "id": 3002, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 272, + "id": 2994, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 255, - "src": "3970:12:0", + "referencedDeclaration": 2977, + "src": "3970:12:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10670,7 +10670,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 279, + "id": 3001, "isConstant": false, "isLValue": false, "isPure": false, @@ -10678,14 +10678,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "31303030303030", - "id": 273, + "id": 2995, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3985:7:0", + "src": "3985:7:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1000000_by_1", @@ -10701,7 +10701,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 278, + "id": 3000, "isConstant": false, "isLValue": false, "isPure": false, @@ -10709,14 +10709,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 274, + "id": 2996, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3995:2:0", + "src": "3995:2:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -10731,12 +10731,12 @@ "arguments": [ { "argumentTypes": null, - "id": 276, + "id": 2998, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "4004:8:0", + "referencedDeclaration": 2975, + "src": "4004:8:24", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -10750,20 +10750,20 @@ "typeString": "uint8" } ], - "id": 275, + "id": 2997, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3999:4:0", + "src": "3999:4:24", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 277, + "id": 2999, "isConstant": false, "isLValue": false, "isPure": false, @@ -10771,38 +10771,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3999:14:0", + "src": "3999:14:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3995:18:0", + "src": "3995:18:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3985:28:0", + "src": "3985:28:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3970:43:0", + "src": "3970:43:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 281, + "id": 3003, "nodeType": "ExpressionStatement", - "src": "3970:43:0" + "src": "3970:43:24" }, { "expression": { "argumentTypes": null, - "id": 286, + "id": 3008, "isConstant": false, "isLValue": false, "isPure": false, @@ -10811,26 +10811,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 282, + "id": 3004, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 259, - "src": "4023:8:0", + "referencedDeclaration": 2981, + "src": "4023:8:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 284, + "id": 3006, "indexExpression": { "argumentTypes": null, - "id": 283, + "id": 3005, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 177, - "src": "4032:5:0", + "referencedDeclaration": 2899, + "src": "4032:5:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10841,7 +10841,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4023:15:0", + "src": "4023:15:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10851,26 +10851,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 285, + "id": 3007, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 255, - "src": "4041:12:0", + "referencedDeclaration": 2977, + "src": "4041:12:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4023:30:0", + "src": "4023:30:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 287, + "id": 3009, "nodeType": "ExpressionStatement", - "src": "4023:30:0" + "src": "4023:30:24" }, { "eventCall": { @@ -10882,14 +10882,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 290, + "id": 3012, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4085:1:0", + "src": "4085:1:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -10905,20 +10905,20 @@ "typeString": "int_const 0" } ], - "id": 289, + "id": 3011, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4077:7:0", + "src": "4077:7:24", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 291, + "id": 3013, "isConstant": false, "isLValue": false, "isPure": true, @@ -10926,7 +10926,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4077:10:0", + "src": "4077:10:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10934,12 +10934,12 @@ }, { "argumentTypes": null, - "id": 292, + "id": 3014, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 177, - "src": "4089:5:0", + "referencedDeclaration": 2899, + "src": "4089:5:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10947,12 +10947,12 @@ }, { "argumentTypes": null, - "id": 293, + "id": 3015, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 255, - "src": "4096:12:0", + "referencedDeclaration": 2977, + "src": "4096:12:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10974,18 +10974,18 @@ "typeString": "uint256" } ], - "id": 288, + "id": 3010, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 154, - "src": "4068:8:0", + "referencedDeclaration": 2876, + "src": "4068:8:24", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 294, + "id": 3016, "isConstant": false, "isLValue": false, "isPure": false, @@ -10993,20 +10993,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4068:41:0", + "src": "4068:41:24", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 295, + "id": 3017, "nodeType": "EmitStatement", - "src": "4063:46:0" + "src": "4063:46:24" } ] }, "documentation": null, - "id": 297, + "id": 3019, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -11014,29 +11014,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 266, + "id": 2988, "nodeType": "ParameterList", "parameters": [], - "src": "3927:2:0" + "src": "3927:2:24" }, "payable": false, "returnParameters": { - "id": 267, + "id": 2989, "nodeType": "ParameterList", "parameters": [], - "src": "3937:0:0" + "src": "3937:0:24" }, - "scope": 539, - "src": "3916:200:0", + "scope": 3261, + "src": "3916:200:24", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 311, + "id": 3033, "nodeType": "Block", - "src": "4353:62:0", + "src": "4353:62:24", "statements": [ { "expression": { @@ -11046,32 +11046,32 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 304, + "id": 3026, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 259, - "src": "4387:8:0", + "referencedDeclaration": 2981, + "src": "4387:8:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 308, + "id": 3030, "indexExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 306, + "id": 3028, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4404:1:0", + "src": "4404:1:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -11087,20 +11087,20 @@ "typeString": "int_const 0" } ], - "id": 305, + "id": 3027, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4396:7:0", + "src": "4396:7:24", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 307, + "id": 3029, "isConstant": false, "isLValue": false, "isPure": true, @@ -11108,7 +11108,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4396:10:0", + "src": "4396:10:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11119,7 +11119,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4387:20:0", + "src": "4387:20:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11135,32 +11135,32 @@ ], "expression": { "argumentTypes": null, - "id": 302, + "id": 3024, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 255, - "src": "4370:12:0", + "referencedDeclaration": 2977, + "src": "4370:12:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 303, + "id": 3025, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 45, - "src": "4370:16:0", + "referencedDeclaration": 2767, + "src": "4370:16:24", "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": 309, + "id": 3031, "isConstant": false, "isLValue": false, "isPure": false, @@ -11168,21 +11168,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4370:38:0", + "src": "4370:38:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 301, - "id": 310, + "functionReturnParameters": 3023, + "id": 3032, "nodeType": "Return", - "src": "4363:45:0" + "src": "4363:45:24" } ] }, "documentation": null, - "id": 312, + "id": 3034, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -11190,23 +11190,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 298, + "id": 3020, "nodeType": "ParameterList", "parameters": [], - "src": "4323:2:0" + "src": "4323:2:24" }, "payable": false, "returnParameters": { - "id": 301, + "id": 3023, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 300, + "id": 3022, "name": "", "nodeType": "VariableDeclaration", - "scope": 312, - "src": "4347:4:0", + "scope": 3034, + "src": "4347:4:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11214,10 +11214,10 @@ "typeString": "uint256" }, "typeName": { - "id": 299, + "id": 3021, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4347:4:0", + "src": "4347:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11227,45 +11227,45 @@ "visibility": "internal" } ], - "src": "4346:6:0" + "src": "4346:6:24" }, - "scope": 539, - "src": "4303:112:0", + "scope": 3261, + "src": "4303:112:24", "stateMutability": "view", - "superFunction": 101, + "superFunction": 2823, "visibility": "public" }, { "body": { - "id": 323, + "id": 3045, "nodeType": "Block", - "src": "4710:44:0", + "src": "4710:44:24", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 319, + "id": 3041, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 259, - "src": "4727:8:0", + "referencedDeclaration": 2981, + "src": "4727:8:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 321, + "id": 3043, "indexExpression": { "argumentTypes": null, - "id": 320, + "id": 3042, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "4736:10:0", + "referencedDeclaration": 3036, + "src": "4736:10:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11276,21 +11276,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4727:20:0", + "src": "4727:20:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 318, - "id": 322, + "functionReturnParameters": 3040, + "id": 3044, "nodeType": "Return", - "src": "4720:27:0" + "src": "4720:27:24" } ] }, "documentation": null, - "id": 324, + "id": 3046, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -11298,16 +11298,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 315, + "id": 3037, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 314, + "id": 3036, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 324, - "src": "4655:18:0", + "scope": 3046, + "src": "4655:18:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11315,10 +11315,10 @@ "typeString": "address" }, "typeName": { - "id": 313, + "id": 3035, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4655:7:0", + "src": "4655:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11328,20 +11328,20 @@ "visibility": "internal" } ], - "src": "4654:20:0" + "src": "4654:20:24" }, "payable": false, "returnParameters": { - "id": 318, + "id": 3040, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 317, + "id": 3039, "name": "balance", "nodeType": "VariableDeclaration", - "scope": 324, - "src": "4696:12:0", + "scope": 3046, + "src": "4696:12:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11349,10 +11349,10 @@ "typeString": "uint256" }, "typeName": { - "id": 316, + "id": 3038, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4696:4:0", + "src": "4696:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11362,24 +11362,24 @@ "visibility": "internal" } ], - "src": "4695:14:0" + "src": "4695:14:24" }, - "scope": 539, - "src": "4636:118:0", + "scope": 3261, + "src": "4636:118:24", "stateMutability": "view", - "superFunction": 108, + "superFunction": 2830, "visibility": "public" }, { "body": { - "id": 366, + "id": 3088, "nodeType": "Block", - "src": "5170:189:0", + "src": "5170:189:24", "statements": [ { "expression": { "argumentTypes": null, - "id": 344, + "id": 3066, "isConstant": false, "isLValue": false, "isPure": false, @@ -11388,34 +11388,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 333, + "id": 3055, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 259, - "src": "5180:8:0", + "referencedDeclaration": 2981, + "src": "5180:8:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 336, + "id": 3058, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 334, + "id": 3056, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "5189:3:0", + "referencedDeclaration": 3828, + "src": "5189:3:24", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 335, + "id": 3057, "isConstant": false, "isLValue": false, "isPure": false, @@ -11423,7 +11423,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5189:10:0", + "src": "5189:10:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11434,7 +11434,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5180:20:0", + "src": "5180:20:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11447,12 +11447,12 @@ "arguments": [ { "argumentTypes": null, - "id": 342, + "id": 3064, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 328, - "src": "5228:6:0", + "referencedDeclaration": 3050, + "src": "5228:6:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11470,34 +11470,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 337, + "id": 3059, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 259, - "src": "5203:8:0", + "referencedDeclaration": 2981, + "src": "5203:8:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 340, + "id": 3062, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 338, + "id": 3060, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "5212:3:0", + "referencedDeclaration": 3828, + "src": "5212:3:24", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 339, + "id": 3061, "isConstant": false, "isLValue": false, "isPure": false, @@ -11505,7 +11505,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5212:10:0", + "src": "5212:10:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11516,27 +11516,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5203:20:0", + "src": "5203:20:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 341, + "id": 3063, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 45, - "src": "5203:24:0", + "referencedDeclaration": 2767, + "src": "5203:24:24", "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": 343, + "id": 3065, "isConstant": false, "isLValue": false, "isPure": false, @@ -11544,26 +11544,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5203:32:0", + "src": "5203:32:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5180:55:0", + "src": "5180:55:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 345, + "id": 3067, "nodeType": "ExpressionStatement", - "src": "5180:55:0" + "src": "5180:55:24" }, { "expression": { "argumentTypes": null, - "id": 355, + "id": 3077, "isConstant": false, "isLValue": false, "isPure": false, @@ -11572,26 +11572,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 346, + "id": 3068, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 259, - "src": "5245:8:0", + "referencedDeclaration": 2981, + "src": "5245:8:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 348, + "id": 3070, "indexExpression": { "argumentTypes": null, - "id": 347, + "id": 3069, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 326, - "src": "5254:2:0", + "referencedDeclaration": 3048, + "src": "5254:2:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11602,7 +11602,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5245:12:0", + "src": "5245:12:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11615,12 +11615,12 @@ "arguments": [ { "argumentTypes": null, - "id": 353, + "id": 3075, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 328, - "src": "5277:6:0", + "referencedDeclaration": 3050, + "src": "5277:6:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11638,26 +11638,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 349, + "id": 3071, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 259, - "src": "5260:8:0", + "referencedDeclaration": 2981, + "src": "5260:8:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 351, + "id": 3073, "indexExpression": { "argumentTypes": null, - "id": 350, + "id": 3072, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 326, - "src": "5269:2:0", + "referencedDeclaration": 3048, + "src": "5269:2:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11668,27 +11668,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5260:12:0", + "src": "5260:12:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 352, + "id": 3074, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 23, - "src": "5260:16:0", + "referencedDeclaration": 2745, + "src": "5260:16:24", "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": 354, + "id": 3076, "isConstant": false, "isLValue": false, "isPure": false, @@ -11696,21 +11696,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5260:24:0", + "src": "5260:24:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5245:39:0", + "src": "5245:39:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 356, + "id": 3078, "nodeType": "ExpressionStatement", - "src": "5245:39:0" + "src": "5245:39:24" }, { "eventCall": { @@ -11720,18 +11720,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 358, + "id": 3080, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "5308:3:0", + "referencedDeclaration": 3828, + "src": "5308:3:24", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 359, + "id": 3081, "isConstant": false, "isLValue": false, "isPure": false, @@ -11739,7 +11739,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5308:10:0", + "src": "5308:10:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11747,12 +11747,12 @@ }, { "argumentTypes": null, - "id": 360, + "id": 3082, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 326, - "src": "5320:2:0", + "referencedDeclaration": 3048, + "src": "5320:2:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11760,12 +11760,12 @@ }, { "argumentTypes": null, - "id": 361, + "id": 3083, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 328, - "src": "5324:6:0", + "referencedDeclaration": 3050, + "src": "5324:6:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11787,18 +11787,18 @@ "typeString": "uint256" } ], - "id": 357, + "id": 3079, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 154, - "src": "5299:8:0", + "referencedDeclaration": 2876, + "src": "5299:8:24", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 362, + "id": 3084, "isConstant": false, "isLValue": false, "isPure": false, @@ -11806,28 +11806,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5299:32:0", + "src": "5299:32:24", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 363, + "id": 3085, "nodeType": "EmitStatement", - "src": "5294:37:0" + "src": "5294:37:24" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 364, + "id": 3086, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5348:4:0", + "src": "5348:4:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -11835,15 +11835,15 @@ }, "value": "true" }, - "functionReturnParameters": 332, - "id": 365, + "functionReturnParameters": 3054, + "id": 3087, "nodeType": "Return", - "src": "5341:11:0" + "src": "5341:11:24" } ] }, "documentation": null, - "id": 367, + "id": 3089, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -11851,16 +11851,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 329, + "id": 3051, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 326, + "id": 3048, "name": "to", "nodeType": "VariableDeclaration", - "scope": 367, - "src": "5115:10:0", + "scope": 3089, + "src": "5115:10:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11868,10 +11868,10 @@ "typeString": "address" }, "typeName": { - "id": 325, + "id": 3047, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5115:7:0", + "src": "5115:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11882,11 +11882,11 @@ }, { "constant": false, - "id": 328, + "id": 3050, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 367, - "src": "5127:11:0", + "scope": 3089, + "src": "5127:11:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11894,10 +11894,10 @@ "typeString": "uint256" }, "typeName": { - "id": 327, + "id": 3049, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5127:4:0", + "src": "5127:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11907,20 +11907,20 @@ "visibility": "internal" } ], - "src": "5114:25:0" + "src": "5114:25:24" }, "payable": false, "returnParameters": { - "id": 332, + "id": 3054, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 331, + "id": 3053, "name": "success", "nodeType": "VariableDeclaration", - "scope": 367, - "src": "5156:12:0", + "scope": 3089, + "src": "5156:12:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11928,10 +11928,10 @@ "typeString": "bool" }, "typeName": { - "id": 330, + "id": 3052, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5156:4:0", + "src": "5156:4:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11941,24 +11941,24 @@ "visibility": "internal" } ], - "src": "5155:14:0" + "src": "5155:14:24" }, - "scope": 539, - "src": "5097:262:0", + "scope": 3261, + "src": "5097:262:24", "stateMutability": "nonpayable", - "superFunction": 126, + "superFunction": 2848, "visibility": "public" }, { "body": { - "id": 394, + "id": 3116, "nodeType": "Block", - "src": "5942:127:0", + "src": "5942:127:24", "statements": [ { "expression": { "argumentTypes": null, - "id": 383, + "id": 3105, "isConstant": false, "isLValue": false, "isPure": false, @@ -11969,34 +11969,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 376, + "id": 3098, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 265, - "src": "5952:7:0", + "referencedDeclaration": 2987, + "src": "5952:7:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 380, + "id": 3102, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 377, + "id": 3099, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "5960:3:0", + "referencedDeclaration": 3828, + "src": "5960:3:24", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 378, + "id": 3100, "isConstant": false, "isLValue": false, "isPure": false, @@ -12004,7 +12004,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5960:10:0", + "src": "5960:10:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12015,21 +12015,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5952:19:0", + "src": "5952:19:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 381, + "id": 3103, "indexExpression": { "argumentTypes": null, - "id": 379, + "id": 3101, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 369, - "src": "5972:7:0", + "referencedDeclaration": 3091, + "src": "5972:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12040,7 +12040,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5952:28:0", + "src": "5952:28:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12050,26 +12050,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 382, + "id": 3104, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 371, - "src": "5983:6:0", + "referencedDeclaration": 3093, + "src": "5983:6:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5952:37:0", + "src": "5952:37:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 384, + "id": 3106, "nodeType": "ExpressionStatement", - "src": "5952:37:0" + "src": "5952:37:24" }, { "eventCall": { @@ -12079,18 +12079,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 386, + "id": 3108, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "6013:3:0", + "referencedDeclaration": 3828, + "src": "6013:3:24", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 387, + "id": 3109, "isConstant": false, "isLValue": false, "isPure": false, @@ -12098,7 +12098,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6013:10:0", + "src": "6013:10:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12106,12 +12106,12 @@ }, { "argumentTypes": null, - "id": 388, + "id": 3110, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 369, - "src": "6025:7:0", + "referencedDeclaration": 3091, + "src": "6025:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12119,12 +12119,12 @@ }, { "argumentTypes": null, - "id": 389, + "id": 3111, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 371, - "src": "6034:6:0", + "referencedDeclaration": 3093, + "src": "6034:6:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12146,18 +12146,18 @@ "typeString": "uint256" } ], - "id": 385, + "id": 3107, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 162, - "src": "6004:8:0", + "referencedDeclaration": 2884, + "src": "6004:8:24", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 390, + "id": 3112, "isConstant": false, "isLValue": false, "isPure": false, @@ -12165,28 +12165,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6004:37:0", + "src": "6004:37:24", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 391, + "id": 3113, "nodeType": "EmitStatement", - "src": "5999:42:0" + "src": "5999:42:24" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 392, + "id": 3114, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "6058:4:0", + "src": "6058:4:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -12194,15 +12194,15 @@ }, "value": "true" }, - "functionReturnParameters": 375, - "id": 393, + "functionReturnParameters": 3097, + "id": 3115, "nodeType": "Return", - "src": "6051:11:0" + "src": "6051:11:24" } ] }, "documentation": null, - "id": 395, + "id": 3117, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -12210,16 +12210,16 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 372, + "id": 3094, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 369, + "id": 3091, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 395, - "src": "5882:15:0", + "scope": 3117, + "src": "5882:15:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12227,10 +12227,10 @@ "typeString": "address" }, "typeName": { - "id": 368, + "id": 3090, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5882:7:0", + "src": "5882:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12241,11 +12241,11 @@ }, { "constant": false, - "id": 371, + "id": 3093, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 395, - "src": "5899:11:0", + "scope": 3117, + "src": "5899:11:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12253,10 +12253,10 @@ "typeString": "uint256" }, "typeName": { - "id": 370, + "id": 3092, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5899:4:0", + "src": "5899:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12266,20 +12266,20 @@ "visibility": "internal" } ], - "src": "5881:30:0" + "src": "5881:30:24" }, "payable": false, "returnParameters": { - "id": 375, + "id": 3097, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 374, + "id": 3096, "name": "success", "nodeType": "VariableDeclaration", - "scope": 395, - "src": "5928:12:0", + "scope": 3117, + "src": "5928:12:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12287,10 +12287,10 @@ "typeString": "bool" }, "typeName": { - "id": 373, + "id": 3095, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5928:4:0", + "src": "5928:4:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12300,24 +12300,24 @@ "visibility": "internal" } ], - "src": "5927:14:0" + "src": "5927:14:24" }, - "scope": 539, - "src": "5865:204:0", + "scope": 3261, + "src": "5865:204:24", "stateMutability": "nonpayable", - "superFunction": 135, + "superFunction": 2857, "visibility": "public" }, { "body": { - "id": 453, + "id": 3175, "nodeType": "Block", - "src": "6692:246:0", + "src": "6692:246:24", "statements": [ { "expression": { "argumentTypes": null, - "id": 415, + "id": 3137, "isConstant": false, "isLValue": false, "isPure": false, @@ -12326,26 +12326,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 406, + "id": 3128, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 259, - "src": "6702:8:0", + "referencedDeclaration": 2981, + "src": "6702:8:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 408, + "id": 3130, "indexExpression": { "argumentTypes": null, - "id": 407, + "id": 3129, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 397, - "src": "6711:4:0", + "referencedDeclaration": 3119, + "src": "6711:4:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12356,7 +12356,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6702:14:0", + "src": "6702:14:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12369,12 +12369,12 @@ "arguments": [ { "argumentTypes": null, - "id": 413, + "id": 3135, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 401, - "src": "6738:6:0", + "referencedDeclaration": 3123, + "src": "6738:6:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12392,26 +12392,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 409, + "id": 3131, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 259, - "src": "6719:8:0", + "referencedDeclaration": 2981, + "src": "6719:8:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 411, + "id": 3133, "indexExpression": { "argumentTypes": null, - "id": 410, + "id": 3132, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 397, - "src": "6728:4:0", + "referencedDeclaration": 3119, + "src": "6728:4:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12422,27 +12422,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6719:14:0", + "src": "6719:14:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 412, + "id": 3134, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 45, - "src": "6719:18:0", + "referencedDeclaration": 2767, + "src": "6719:18:24", "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": 414, + "id": 3136, "isConstant": false, "isLValue": false, "isPure": false, @@ -12450,26 +12450,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6719:26:0", + "src": "6719:26:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6702:43:0", + "src": "6702:43:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 416, + "id": 3138, "nodeType": "ExpressionStatement", - "src": "6702:43:0" + "src": "6702:43:24" }, { "expression": { "argumentTypes": null, - "id": 432, + "id": 3154, "isConstant": false, "isLValue": false, "isPure": false, @@ -12480,26 +12480,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 417, + "id": 3139, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 265, - "src": "6755:7:0", + "referencedDeclaration": 2987, + "src": "6755:7:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 421, + "id": 3143, "indexExpression": { "argumentTypes": null, - "id": 418, + "id": 3140, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 397, - "src": "6763:4:0", + "referencedDeclaration": 3119, + "src": "6763:4:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12510,29 +12510,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6755:13:0", + "src": "6755:13:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 422, + "id": 3144, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 419, + "id": 3141, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "6769:3:0", + "referencedDeclaration": 3828, + "src": "6769:3:24", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 420, + "id": 3142, "isConstant": false, "isLValue": false, "isPure": false, @@ -12540,7 +12540,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6769:10:0", + "src": "6769:10:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12551,7 +12551,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6755:25:0", + "src": "6755:25:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12564,12 +12564,12 @@ "arguments": [ { "argumentTypes": null, - "id": 430, + "id": 3152, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 401, - "src": "6813:6:0", + "referencedDeclaration": 3123, + "src": "6813:6:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12589,26 +12589,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 423, + "id": 3145, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 265, - "src": "6783:7:0", + "referencedDeclaration": 2987, + "src": "6783:7:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 425, + "id": 3147, "indexExpression": { "argumentTypes": null, - "id": 424, + "id": 3146, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 397, - "src": "6791:4:0", + "referencedDeclaration": 3119, + "src": "6791:4:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12619,29 +12619,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6783:13:0", + "src": "6783:13:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 428, + "id": 3150, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 426, + "id": 3148, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "6797:3:0", + "referencedDeclaration": 3828, + "src": "6797:3:24", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 427, + "id": 3149, "isConstant": false, "isLValue": false, "isPure": false, @@ -12649,7 +12649,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6797:10:0", + "src": "6797:10:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12660,27 +12660,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6783:25:0", + "src": "6783:25:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 429, + "id": 3151, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 45, - "src": "6783:29:0", + "referencedDeclaration": 2767, + "src": "6783:29:24", "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": 431, + "id": 3153, "isConstant": false, "isLValue": false, "isPure": false, @@ -12688,26 +12688,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6783:37:0", + "src": "6783:37:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6755:65:0", + "src": "6755:65:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 433, + "id": 3155, "nodeType": "ExpressionStatement", - "src": "6755:65:0" + "src": "6755:65:24" }, { "expression": { "argumentTypes": null, - "id": 443, + "id": 3165, "isConstant": false, "isLValue": false, "isPure": false, @@ -12716,26 +12716,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 434, + "id": 3156, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 259, - "src": "6830:8:0", + "referencedDeclaration": 2981, + "src": "6830:8:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 436, + "id": 3158, "indexExpression": { "argumentTypes": null, - "id": 435, + "id": 3157, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 399, - "src": "6839:2:0", + "referencedDeclaration": 3121, + "src": "6839:2:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12746,7 +12746,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6830:12:0", + "src": "6830:12:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12759,12 +12759,12 @@ "arguments": [ { "argumentTypes": null, - "id": 441, + "id": 3163, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 401, - "src": "6862:6:0", + "referencedDeclaration": 3123, + "src": "6862:6:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12782,26 +12782,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 437, + "id": 3159, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 259, - "src": "6845:8:0", + "referencedDeclaration": 2981, + "src": "6845:8:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 439, + "id": 3161, "indexExpression": { "argumentTypes": null, - "id": 438, + "id": 3160, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 399, - "src": "6854:2:0", + "referencedDeclaration": 3121, + "src": "6854:2:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12812,27 +12812,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6845:12:0", + "src": "6845:12:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 440, + "id": 3162, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 23, - "src": "6845:16:0", + "referencedDeclaration": 2745, + "src": "6845:16:24", "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": 442, + "id": 3164, "isConstant": false, "isLValue": false, "isPure": false, @@ -12840,21 +12840,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6845:24:0", + "src": "6845:24:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6830:39:0", + "src": "6830:39:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 444, + "id": 3166, "nodeType": "ExpressionStatement", - "src": "6830:39:0" + "src": "6830:39:24" }, { "eventCall": { @@ -12862,12 +12862,12 @@ "arguments": [ { "argumentTypes": null, - "id": 446, + "id": 3168, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 397, - "src": "6893:4:0", + "referencedDeclaration": 3119, + "src": "6893:4:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12875,12 +12875,12 @@ }, { "argumentTypes": null, - "id": 447, + "id": 3169, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 399, - "src": "6899:2:0", + "referencedDeclaration": 3121, + "src": "6899:2:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12888,12 +12888,12 @@ }, { "argumentTypes": null, - "id": 448, + "id": 3170, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 401, - "src": "6903:6:0", + "referencedDeclaration": 3123, + "src": "6903:6:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12915,18 +12915,18 @@ "typeString": "uint256" } ], - "id": 445, + "id": 3167, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 154, - "src": "6884:8:0", + "referencedDeclaration": 2876, + "src": "6884:8:24", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 449, + "id": 3171, "isConstant": false, "isLValue": false, "isPure": false, @@ -12934,28 +12934,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6884:26:0", + "src": "6884:26:24", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 450, + "id": 3172, "nodeType": "EmitStatement", - "src": "6879:31:0" + "src": "6879:31:24" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 451, + "id": 3173, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "6927:4:0", + "src": "6927:4:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -12963,15 +12963,15 @@ }, "value": "true" }, - "functionReturnParameters": 405, - "id": 452, + "functionReturnParameters": 3127, + "id": 3174, "nodeType": "Return", - "src": "6920:11:0" + "src": "6920:11:24" } ] }, "documentation": null, - "id": 454, + "id": 3176, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -12979,16 +12979,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 402, + "id": 3124, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 397, + "id": 3119, "name": "from", "nodeType": "VariableDeclaration", - "scope": 454, - "src": "6623:12:0", + "scope": 3176, + "src": "6623:12:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12996,10 +12996,10 @@ "typeString": "address" }, "typeName": { - "id": 396, + "id": 3118, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6623:7:0", + "src": "6623:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13010,11 +13010,11 @@ }, { "constant": false, - "id": 399, + "id": 3121, "name": "to", "nodeType": "VariableDeclaration", - "scope": 454, - "src": "6637:10:0", + "scope": 3176, + "src": "6637:10:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13022,10 +13022,10 @@ "typeString": "address" }, "typeName": { - "id": 398, + "id": 3120, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6637:7:0", + "src": "6637:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13036,11 +13036,11 @@ }, { "constant": false, - "id": 401, + "id": 3123, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 454, - "src": "6649:11:0", + "scope": 3176, + "src": "6649:11:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13048,10 +13048,10 @@ "typeString": "uint256" }, "typeName": { - "id": 400, + "id": 3122, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6649:4:0", + "src": "6649:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13061,20 +13061,20 @@ "visibility": "internal" } ], - "src": "6622:39:0" + "src": "6622:39:24" }, "payable": false, "returnParameters": { - "id": 405, + "id": 3127, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 404, + "id": 3126, "name": "success", "nodeType": "VariableDeclaration", - "scope": 454, - "src": "6678:12:0", + "scope": 3176, + "src": "6678:12:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13082,10 +13082,10 @@ "typeString": "bool" }, "typeName": { - "id": 403, + "id": 3125, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6678:4:0", + "src": "6678:4:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13095,19 +13095,19 @@ "visibility": "internal" } ], - "src": "6677:14:0" + "src": "6677:14:24" }, - "scope": 539, - "src": "6601:337:0", + "scope": 3261, + "src": "6601:337:24", "stateMutability": "nonpayable", - "superFunction": 146, + "superFunction": 2868, "visibility": "public" }, { "body": { - "id": 469, + "id": 3191, "nodeType": "Block", - "src": "7312:52:0", + "src": "7312:52:24", "statements": [ { "expression": { @@ -13116,26 +13116,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 463, + "id": 3185, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 265, - "src": "7329:7:0", + "referencedDeclaration": 2987, + "src": "7329:7:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 465, + "id": 3187, "indexExpression": { "argumentTypes": null, - "id": 464, + "id": 3186, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 456, - "src": "7337:10:0", + "referencedDeclaration": 3178, + "src": "7337:10:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13146,21 +13146,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7329:19:0", + "src": "7329:19:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 467, + "id": 3189, "indexExpression": { "argumentTypes": null, - "id": 466, + "id": 3188, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 458, - "src": "7349:7:0", + "referencedDeclaration": 3180, + "src": "7349:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13171,21 +13171,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7329:28:0", + "src": "7329:28:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 462, - "id": 468, + "functionReturnParameters": 3184, + "id": 3190, "nodeType": "Return", - "src": "7322:35:0" + "src": "7322:35:24" } ] }, "documentation": null, - "id": 470, + "id": 3192, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -13193,16 +13193,16 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 459, + "id": 3181, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 456, + "id": 3178, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 470, - "src": "7238:18:0", + "scope": 3192, + "src": "7238:18:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13210,10 +13210,10 @@ "typeString": "address" }, "typeName": { - "id": 455, + "id": 3177, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7238:7:0", + "src": "7238:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13224,11 +13224,11 @@ }, { "constant": false, - "id": 458, + "id": 3180, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 470, - "src": "7258:15:0", + "scope": 3192, + "src": "7258:15:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13236,10 +13236,10 @@ "typeString": "address" }, "typeName": { - "id": 457, + "id": 3179, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7258:7:0", + "src": "7258:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13249,20 +13249,20 @@ "visibility": "internal" } ], - "src": "7237:37:0" + "src": "7237:37:24" }, "payable": false, "returnParameters": { - "id": 462, + "id": 3184, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 461, + "id": 3183, "name": "remaining", "nodeType": "VariableDeclaration", - "scope": 470, - "src": "7296:14:0", + "scope": 3192, + "src": "7296:14:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13270,10 +13270,10 @@ "typeString": "uint256" }, "typeName": { - "id": 460, + "id": 3182, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7296:4:0", + "src": "7296:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13283,24 +13283,24 @@ "visibility": "internal" } ], - "src": "7295:16:0" + "src": "7295:16:24" }, - "scope": 539, - "src": "7219:145:0", + "scope": 3261, + "src": "7219:145:24", "stateMutability": "view", - "superFunction": 117, + "superFunction": 2839, "visibility": "public" }, { "body": { - "id": 510, + "id": 3232, "nodeType": "Block", - "src": "7820:216:0", + "src": "7820:216:24", "statements": [ { "expression": { "argumentTypes": null, - "id": 488, + "id": 3210, "isConstant": false, "isLValue": false, "isPure": false, @@ -13311,34 +13311,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 481, + "id": 3203, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 265, - "src": "7830:7:0", + "referencedDeclaration": 2987, + "src": "7830:7:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 485, + "id": 3207, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 482, + "id": 3204, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "7838:3:0", + "referencedDeclaration": 3828, + "src": "7838:3:24", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 483, + "id": 3205, "isConstant": false, "isLValue": false, "isPure": false, @@ -13346,7 +13346,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7838:10:0", + "src": "7838:10:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13357,21 +13357,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7830:19:0", + "src": "7830:19:24", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 486, + "id": 3208, "indexExpression": { "argumentTypes": null, - "id": 484, + "id": 3206, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 472, - "src": "7850:7:0", + "referencedDeclaration": 3194, + "src": "7850:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13382,7 +13382,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7830:28:0", + "src": "7830:28:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13392,26 +13392,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 487, + "id": 3209, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 474, - "src": "7861:6:0", + "referencedDeclaration": 3196, + "src": "7861:6:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7830:37:0", + "src": "7830:37:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 489, + "id": 3211, "nodeType": "ExpressionStatement", - "src": "7830:37:0" + "src": "7830:37:24" }, { "eventCall": { @@ -13421,18 +13421,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 491, + "id": 3213, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "7891:3:0", + "referencedDeclaration": 3828, + "src": "7891:3:24", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 492, + "id": 3214, "isConstant": false, "isLValue": false, "isPure": false, @@ -13440,7 +13440,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7891:10:0", + "src": "7891:10:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13448,12 +13448,12 @@ }, { "argumentTypes": null, - "id": 493, + "id": 3215, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 472, - "src": "7903:7:0", + "referencedDeclaration": 3194, + "src": "7903:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13461,12 +13461,12 @@ }, { "argumentTypes": null, - "id": 494, + "id": 3216, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 474, - "src": "7912:6:0", + "referencedDeclaration": 3196, + "src": "7912:6:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13488,18 +13488,18 @@ "typeString": "uint256" } ], - "id": 490, + "id": 3212, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 162, - "src": "7882:8:0", + "referencedDeclaration": 2884, + "src": "7882:8:24", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 495, + "id": 3217, "isConstant": false, "isLValue": false, "isPure": false, @@ -13507,15 +13507,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7882:37:0", + "src": "7882:37:24", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 496, + "id": 3218, "nodeType": "EmitStatement", - "src": "7877:42:0" + "src": "7877:42:24" }, { "expression": { @@ -13525,18 +13525,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 501, + "id": 3223, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "7977:3:0", + "referencedDeclaration": 3828, + "src": "7977:3:24", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 502, + "id": 3224, "isConstant": false, "isLValue": false, "isPure": false, @@ -13544,7 +13544,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7977:10:0", + "src": "7977:10:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13552,12 +13552,12 @@ }, { "argumentTypes": null, - "id": 503, + "id": 3225, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 474, - "src": "7989:6:0", + "referencedDeclaration": 3196, + "src": "7989:6:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13565,25 +13565,25 @@ }, { "argumentTypes": null, - "id": 504, + "id": 3226, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1127, - "src": "7997:4:0", + "referencedDeclaration": 3897, + "src": "7997:4:24", "typeDescriptions": { - "typeIdentifier": "t_contract$_EmptyToken_$539", + "typeIdentifier": "t_contract$_EmptyToken_$3261", "typeString": "contract EmptyToken" } }, { "argumentTypes": null, - "id": 505, + "id": 3227, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 476, - "src": "8003:4:0", + "referencedDeclaration": 3198, + "src": "8003:4:24", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -13601,7 +13601,7 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_contract$_EmptyToken_$539", + "typeIdentifier": "t_contract$_EmptyToken_$3261", "typeString": "contract EmptyToken" }, { @@ -13614,12 +13614,12 @@ "arguments": [ { "argumentTypes": null, - "id": 498, + "id": 3220, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 472, - "src": "7952:7:0", + "referencedDeclaration": 3194, + "src": "7952:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13633,18 +13633,18 @@ "typeString": "address" } ], - "id": 497, + "id": 3219, "name": "ApproveAndCallFallBack", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 175, - "src": "7929:22:0", + "referencedDeclaration": 2897, + "src": "7929:22:24", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$175_$", + "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$2897_$", "typeString": "type(contract ApproveAndCallFallBack)" } }, - "id": 499, + "id": 3221, "isConstant": false, "isLValue": false, "isPure": false, @@ -13652,27 +13652,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7929:31:0", + "src": "7929:31:24", "typeDescriptions": { - "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$175", + "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$2897", "typeString": "contract ApproveAndCallFallBack" } }, - "id": 500, + "id": 3222, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "receiveApproval", "nodeType": "MemberAccess", - "referencedDeclaration": 174, - "src": "7929:47:0", + "referencedDeclaration": 2896, + "src": "7929:47:24", "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": 506, + "id": 3228, "isConstant": false, "isLValue": false, "isPure": false, @@ -13680,28 +13680,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7929:79:0", + "src": "7929:79:24", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 507, + "id": 3229, "nodeType": "ExpressionStatement", - "src": "7929:79:0" + "src": "7929:79:24" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 508, + "id": 3230, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "8025:4:0", + "src": "8025:4:24", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -13709,15 +13709,15 @@ }, "value": "true" }, - "functionReturnParameters": 480, - "id": 509, + "functionReturnParameters": 3202, + "id": 3231, "nodeType": "Return", - "src": "8018:11:0" + "src": "8018:11:24" } ] }, "documentation": null, - "id": 511, + "id": 3233, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -13725,16 +13725,16 @@ "name": "approveAndCall", "nodeType": "FunctionDefinition", "parameters": { - "id": 477, + "id": 3199, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 472, + "id": 3194, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 511, - "src": "7748:15:0", + "scope": 3233, + "src": "7748:15:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13742,10 +13742,10 @@ "typeString": "address" }, "typeName": { - "id": 471, + "id": 3193, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7748:7:0", + "src": "7748:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13756,11 +13756,11 @@ }, { "constant": false, - "id": 474, + "id": 3196, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 511, - "src": "7765:11:0", + "scope": 3233, + "src": "7765:11:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13768,10 +13768,10 @@ "typeString": "uint256" }, "typeName": { - "id": 473, + "id": 3195, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7765:4:0", + "src": "7765:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13782,11 +13782,11 @@ }, { "constant": false, - "id": 476, + "id": 3198, "name": "data", "nodeType": "VariableDeclaration", - "scope": 511, - "src": "7778:10:0", + "scope": 3233, + "src": "7778:10:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13794,10 +13794,10 @@ "typeString": "bytes" }, "typeName": { - "id": 475, + "id": 3197, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "7778:5:0", + "src": "7778:5:24", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -13807,20 +13807,20 @@ "visibility": "internal" } ], - "src": "7747:42:0" + "src": "7747:42:24" }, "payable": false, "returnParameters": { - "id": 480, + "id": 3202, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 479, + "id": 3201, "name": "success", "nodeType": "VariableDeclaration", - "scope": 511, - "src": "7806:12:0", + "scope": 3233, + "src": "7806:12:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13828,10 +13828,10 @@ "typeString": "bool" }, "typeName": { - "id": 478, + "id": 3200, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7806:4:0", + "src": "7806:4:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13841,19 +13841,19 @@ "visibility": "internal" } ], - "src": "7805:14:0" + "src": "7805:14:24" }, - "scope": 539, - "src": "7724:312:0", + "scope": 3261, + "src": "7724:312:24", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 517, + "id": 3239, "nodeType": "Block", - "src": "8254:25:0", + "src": "8254:25:24", "statements": [ { "expression": { @@ -13861,21 +13861,21 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 514, + "id": 3236, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 1111, - 1112 + 3833, + 3834 ], - "referencedDeclaration": 1111, - "src": "8264:6:0", + "referencedDeclaration": 3833, + "src": "8264:6:24", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 515, + "id": 3237, "isConstant": false, "isLValue": false, "isPure": false, @@ -13883,20 +13883,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8264:8:0", + "src": "8264:8:24", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 516, + "id": 3238, "nodeType": "ExpressionStatement", - "src": "8264:8:0" + "src": "8264:8:24" } ] }, "documentation": null, - "id": 518, + "id": 3240, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -13904,29 +13904,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 512, + "id": 3234, "nodeType": "ParameterList", "parameters": [], - "src": "8236:2:0" + "src": "8236:2:24" }, "payable": true, "returnParameters": { - "id": 513, + "id": 3235, "nodeType": "ParameterList", "parameters": [], - "src": "8254:0:0" + "src": "8254:0:24" }, - "scope": 539, - "src": "8227:52:0", + "scope": 3261, + "src": "8227:52:24", "stateMutability": "payable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 537, + "id": 3259, "nodeType": "Block", - "src": "8617:76:0", + "src": "8617:76:24", "statements": [ { "expression": { @@ -13934,12 +13934,12 @@ "arguments": [ { "argumentTypes": null, - "id": 533, + "id": 3255, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 177, - "src": "8672:5:0", + "referencedDeclaration": 2899, + "src": "8672:5:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13947,12 +13947,12 @@ }, { "argumentTypes": null, - "id": 534, + "id": 3256, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 522, - "src": "8679:6:0", + "referencedDeclaration": 3244, + "src": "8679:6:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13975,12 +13975,12 @@ "arguments": [ { "argumentTypes": null, - "id": 530, + "id": 3252, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 520, - "src": "8649:12:0", + "referencedDeclaration": 3242, + "src": "8649:12:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13994,18 +13994,18 @@ "typeString": "address" } ], - "id": 529, + "id": 3251, "name": "ERC20Interface", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 163, - "src": "8634:14:0", + "referencedDeclaration": 2885, + "src": "8634:14:24", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$163_$", + "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$2885_$", "typeString": "type(contract ERC20Interface)" } }, - "id": 531, + "id": 3253, "isConstant": false, "isLValue": false, "isPure": false, @@ -14013,27 +14013,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8634:28:0", + "src": "8634:28:24", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$163", + "typeIdentifier": "t_contract$_ERC20Interface_$2885", "typeString": "contract ERC20Interface" } }, - "id": 532, + "id": 3254, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 126, - "src": "8634:37:0", + "referencedDeclaration": 2848, + "src": "8634:37:24", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 535, + "id": 3257, "isConstant": false, "isLValue": false, "isPure": false, @@ -14041,58 +14041,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8634:52:0", + "src": "8634:52:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 528, - "id": 536, + "functionReturnParameters": 3250, + "id": 3258, "nodeType": "Return", - "src": "8627:59:0" + "src": "8627:59:24" } ] }, "documentation": null, - "id": 538, + "id": 3260, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 525, + "id": 3247, "modifierName": { "argumentTypes": null, - "id": 524, + "id": 3246, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 205, - "src": "8584:9:0", + "referencedDeclaration": 2927, + "src": "8584:9:24", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "8584:9:0" + "src": "8584:9:24" } ], "name": "transferAnyERC20Token", "nodeType": "FunctionDefinition", "parameters": { - "id": 523, + "id": 3245, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 520, + "id": 3242, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 538, - "src": "8542:20:0", + "scope": 3260, + "src": "8542:20:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14100,10 +14100,10 @@ "typeString": "address" }, "typeName": { - "id": 519, + "id": 3241, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8542:7:0", + "src": "8542:7:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14114,11 +14114,11 @@ }, { "constant": false, - "id": 522, + "id": 3244, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 538, - "src": "8564:11:0", + "scope": 3260, + "src": "8564:11:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14126,10 +14126,10 @@ "typeString": "uint256" }, "typeName": { - "id": 521, + "id": 3243, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8564:4:0", + "src": "8564:4:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14139,20 +14139,20 @@ "visibility": "internal" } ], - "src": "8541:35:0" + "src": "8541:35:24" }, "payable": false, "returnParameters": { - "id": 528, + "id": 3250, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 527, + "id": 3249, "name": "success", "nodeType": "VariableDeclaration", - "scope": 538, - "src": "8603:12:0", + "scope": 3260, + "src": "8603:12:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14160,10 +14160,10 @@ "typeString": "bool" }, "typeName": { - "id": 526, + "id": 3248, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "8603:4:0", + "src": "8603:4:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14173,33 +14173,26 @@ "visibility": "internal" } ], - "src": "8602:14:0" + "src": "8602:14:24" }, - "scope": 539, - "src": "8511:182:0", + "scope": 3261, + "src": "8511:182:24", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 540, - "src": "3506:5189:0" + "scope": 3262, + "src": "3506:5189:24" } ], - "src": "0:8695:0" + "src": "0:8695:24" }, "compiler": { "name": "solc", "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, - "networks": { - "1531736519464": { - "events": {}, - "links": {}, - "address": "0x0bf35169f79c22f2503970a5d8aea1e74a46adc4", - "transactionHash": "0xdbdf2e9d688eb2a0de189479c1d0acd527285b4e89a49e018d75dfa4283a1a9a" - } - }, + "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-07-17T07:07:22.320Z" + "updatedAt": "2018-08-20T07:50:29.721Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/test/Owned.json b/safe-contracts/build/contracts/test/Owned.json new file mode 100644 index 0000000000..f269c6d967 --- /dev/null +++ b/safe-contracts/build/contracts/test/Owned.json @@ -0,0 +1,14264 @@ +{ + "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:25:-;;;2817:56;8:9:-1;5:2;;;30:1;27;20:12;5:2;2817:56:25;2856:10;2848:5;;:18;;;;;;;;;;;;;;;;;;2663:595;;;;;;", + "deployedSourceMap": "2663:595: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;;;;;;;;;;;;;;;;;;;;;;;;;;;2710:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2710:23:25;;;;;;;;;;;;;;;;;;;;;;;;;;;2960:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2960:100:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;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": [ + 3437 + ], + "ERC20Interface": [ + 3425 + ], + "Owned": [ + 3506 + ], + "SafeMath": [ + 3358 + ], + "TestToken": [ + 3813 + ] + }, + "id": 3814, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3263, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:25" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 3358, + "linearizedBaseContracts": [ + 3358 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 3284, + "nodeType": "Block", + "src": "719:51:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3272, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3270, + "src": "729:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3273, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3265, + "src": "733:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 3274, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3267, + "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": 3277, + "nodeType": "ExpressionStatement", + "src": "729:9:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3279, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3270, + "src": "756:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 3280, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3265, + "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": 3278, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "748:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "748:15:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3283, + "nodeType": "ExpressionStatement", + "src": "748:15:25" + } + ] + }, + "documentation": null, + "id": 3285, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3268, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3265, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 3285, + "src": "672:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3264, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "672:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3267, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3285, + "src": "680:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3266, + "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": 3271, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3270, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 3285, + "src": "711:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3269, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "711:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "710:8:25" + }, + "scope": 3358, + "src": "659:111:25", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3306, + "nodeType": "Block", + "src": "835:51:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3295, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3289, + "src": "853:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 3296, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3287, + "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": 3294, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "845:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "845:15:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3299, + "nodeType": "ExpressionStatement", + "src": "845:15:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3300, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3292, + "src": "870:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3301, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3287, + "src": "874:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 3302, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3289, + "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": 3305, + "nodeType": "ExpressionStatement", + "src": "870:9:25" + } + ] + }, + "documentation": null, + "id": 3307, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3290, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3287, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 3307, + "src": "788:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3286, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "788:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3289, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3307, + "src": "796:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3288, + "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": 3293, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3292, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 3307, + "src": "827:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3291, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "827:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "826:8:25" + }, + "scope": 3358, + "src": "775:111:25", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3334, + "nodeType": "Block", + "src": "951:65:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3316, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3314, + "src": "961:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3317, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3309, + "src": "965:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 3318, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3311, + "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": 3321, + "nodeType": "ExpressionStatement", + "src": "961:9:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3323, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3309, + "src": "988:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3324, + "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": 3330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3326, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3314, + "src": "998:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 3327, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3309, + "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": 3329, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3311, + "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": 3322, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "980:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "980:29:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3333, + "nodeType": "ExpressionStatement", + "src": "980:29:25" + } + ] + }, + "documentation": null, + "id": 3335, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3312, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3309, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 3335, + "src": "904:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3308, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "904:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3311, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3335, + "src": "912:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3310, + "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": 3315, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3314, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 3335, + "src": "943:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3313, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "943:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "942:8:25" + }, + "scope": 3358, + "src": "891:125:25", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3356, + "nodeType": "Block", + "src": "1081:50:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3345, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3339, + "src": "1099:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3346, + "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": 3344, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "1091:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1091:14:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3349, + "nodeType": "ExpressionStatement", + "src": "1091:14:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3350, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3342, + "src": "1115:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3351, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3337, + "src": "1119:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 3352, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3339, + "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": 3355, + "nodeType": "ExpressionStatement", + "src": "1115:9:25" + } + ] + }, + "documentation": null, + "id": 3357, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3340, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3337, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 3357, + "src": "1034:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3336, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1034:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3339, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3357, + "src": "1042:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3338, + "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": 3343, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3342, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 3357, + "src": "1073:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3341, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1073:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1072:8:25" + }, + "scope": 3358, + "src": "1021:110:25", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 3814, + "src": "636:497:25" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 3425, + "linearizedBaseContracts": [ + 3425 + ], + "name": "ERC20Interface", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 3363, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3359, + "nodeType": "ParameterList", + "parameters": [], + "src": "1445:2:25" + }, + "payable": false, + "returnParameters": { + "id": 3362, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3361, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3363, + "src": "1473:4:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3360, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1473:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1472:6:25" + }, + "scope": 3425, + "src": "1425:54:25", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 3370, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3366, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3365, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 3370, + "src": "1503:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3364, + "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": 3369, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3368, + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 3370, + "src": "1548:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3367, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1548:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1547:14:25" + }, + "scope": 3425, + "src": "1484:78:25", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 3379, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3375, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3372, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 3379, + "src": "1586:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3371, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1586:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3374, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3379, + "src": "1606:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3373, + "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": 3378, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3377, + "name": "remaining", + "nodeType": "VariableDeclaration", + "scope": 3379, + "src": "1648:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3376, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1648:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1647:16:25" + }, + "scope": 3425, + "src": "1567:97:25", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 3388, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3384, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3381, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3388, + "src": "1687:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3380, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1687:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3383, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3388, + "src": "1699:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3382, + "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": 3387, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3386, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3388, + "src": "1728:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3385, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1728:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1727:14:25" + }, + "scope": 3425, + "src": "1669:73:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 3397, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3393, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3390, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3397, + "src": "1764:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3389, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1764:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3392, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3397, + "src": "1781:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3391, + "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": 3396, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3395, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3397, + "src": "1810:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3394, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1810:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1809:14:25" + }, + "scope": 3425, + "src": "1747:77:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 3408, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3404, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3399, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3408, + "src": "1851:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3398, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1851:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3401, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3408, + "src": "1865:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3400, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1865:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3403, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3408, + "src": "1877:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3402, + "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": 3407, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3406, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3408, + "src": "1906:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3405, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1906:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1905:14:25" + }, + "scope": 3425, + "src": "1829:91:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 3416, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 3415, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3410, + "indexed": true, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3416, + "src": "1941:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3409, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1941:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3412, + "indexed": true, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3416, + "src": "1963:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3411, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1963:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3414, + "indexed": false, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3416, + "src": "1983:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3413, + "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": 3424, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 3423, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3418, + "indexed": true, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 3424, + "src": "2016:26:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3417, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2016:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3420, + "indexed": true, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3424, + "src": "2044:23:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3419, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2044:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3422, + "indexed": false, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3424, + "src": "2069:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3421, + "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": 3814, + "src": "1395:689:25" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 3437, + "linearizedBaseContracts": [ + 3437 + ], + "name": "ApproveAndCallFallBack", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 3436, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "receiveApproval", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3434, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3427, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3436, + "src": "2416:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3426, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2416:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3429, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3436, + "src": "2430:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3428, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2430:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3431, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 3436, + "src": "2446:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3430, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2446:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3433, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 3436, + "src": "2461:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3432, + "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": 3435, + "nodeType": "ParameterList", + "parameters": [], + "src": "2479:0:25" + }, + "scope": 3437, + "src": "2391:89:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 3814, + "src": "2353:129:25" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 3506, + "linearizedBaseContracts": [ + 3506 + ], + "name": "Owned", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 3439, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 3506, + "src": "2684:20:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3438, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2684:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3441, + "name": "newOwner", + "nodeType": "VariableDeclaration", + "scope": 3506, + "src": "2710:23:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3440, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2710:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 3447, + "name": "OwnershipTransferred", + "nodeType": "EventDefinition", + "parameters": { + "id": 3446, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3443, + "indexed": true, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 3447, + "src": "2767:21:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3442, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2767:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3445, + "indexed": true, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 3447, + "src": "2790:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3444, + "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": 3455, + "nodeType": "Block", + "src": "2838:35:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3450, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "2848:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3451, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "2856:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3452, + "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": 3454, + "nodeType": "ExpressionStatement", + "src": "2848:18:25" + } + ] + }, + "documentation": null, + "id": 3456, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3448, + "nodeType": "ParameterList", + "parameters": [], + "src": "2828:2:25" + }, + "payable": false, + "returnParameters": { + "id": 3449, + "nodeType": "ParameterList", + "parameters": [], + "src": "2838:0:25" + }, + "scope": 3506, + "src": "2817:56:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3466, + "nodeType": "Block", + "src": "2898:56:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3459, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "2916:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3460, + "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": 3461, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "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": 3458, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "2908:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2908:28:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3464, + "nodeType": "ExpressionStatement", + "src": "2908:28:25" + }, + { + "id": 3465, + "nodeType": "PlaceholderStatement", + "src": "2946:1:25" + } + ] + }, + "documentation": null, + "id": 3467, + "name": "onlyOwner", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 3457, + "nodeType": "ParameterList", + "parameters": [], + "src": "2898:0:25" + }, + "src": "2879:75:25", + "visibility": "internal" + }, + { + "body": { + "id": 3478, + "nodeType": "Block", + "src": "3023:37:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3474, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3441, + "src": "3033:8:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3475, + "name": "_newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3469, + "src": "3044:9:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3033:20:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3477, + "nodeType": "ExpressionStatement", + "src": "3033:20:25" + } + ] + }, + "documentation": null, + "id": 3479, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 3472, + "modifierName": { + "argumentTypes": null, + "id": 3471, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "3013:9:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3013:9:25" + } + ], + "name": "transferOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3470, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3469, + "name": "_newOwner", + "nodeType": "VariableDeclaration", + "scope": 3479, + "src": "2987:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3468, + "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": 3473, + "nodeType": "ParameterList", + "parameters": [], + "src": "3023:0:25" + }, + "scope": 3506, + "src": "2960:100:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3504, + "nodeType": "Block", + "src": "3099:157:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3483, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "3117:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3484, + "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": 3485, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3441, + "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": 3482, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "3109:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3109:31:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3488, + "nodeType": "ExpressionStatement", + "src": "3109:31:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3490, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "3176:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3491, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3441, + "src": "3183:8:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3489, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3447, + "src": "3155:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 3492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3155:37:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3493, + "nodeType": "EmitStatement", + "src": "3150:42:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3494, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "3202:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3495, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3441, + "src": "3210:8:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3202:16:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3497, + "nodeType": "ExpressionStatement", + "src": "3202:16:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3498, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3441, + "src": "3228:8:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3500, + "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": 3499, + "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": 3501, + "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": 3503, + "nodeType": "ExpressionStatement", + "src": "3228:21:25" + } + ] + }, + "documentation": null, + "id": 3505, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "acceptOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3480, + "nodeType": "ParameterList", + "parameters": [], + "src": "3089:2:25" + }, + "payable": false, + "returnParameters": { + "id": 3481, + "nodeType": "ParameterList", + "parameters": [], + "src": "3099:0:25" + }, + "scope": 3506, + "src": "3065:191:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 3814, + "src": "2663:595:25" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 3507, + "name": "ERC20Interface", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3425, + "src": "3528:14:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Interface_$3425", + "typeString": "contract ERC20Interface" + } + }, + "id": 3508, + "nodeType": "InheritanceSpecifier", + "src": "3528:14:25" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 3509, + "name": "Owned", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3506, + "src": "3544:5:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Owned_$3506", + "typeString": "contract Owned" + } + }, + "id": 3510, + "nodeType": "InheritanceSpecifier", + "src": "3544:5:25" + } + ], + "contractDependencies": [ + 3425, + 3506 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 3813, + "linearizedBaseContracts": [ + 3813, + 3506, + 3425 + ], + "name": "TestToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 3513, + "libraryName": { + "contractScope": null, + "id": 3511, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3358, + "src": "3562:8:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$3358", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "3556:24:25", + "typeName": { + "id": 3512, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3575:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 3515, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3586:20:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3514, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3586:6:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3517, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3612:19:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3516, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3612:6:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3519, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3637:21:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 3518, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3637:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3521, + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3664:17:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3520, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3664:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3525, + "name": "balances", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3688:33:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 3524, + "keyType": { + "id": 3522, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3696:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3688:24:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 3523, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3707:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3531, + "name": "allowed", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3727: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": 3530, + "keyType": { + "id": 3526, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3735:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3727:44:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 3529, + "keyType": { + "id": 3527, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3754:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3746:24:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 3528, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3765:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "body": { + "id": 3570, + "nodeType": "Block", + "src": "3987:235:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3534, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3515, + "src": "3997:6:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "544b4e", + "id": 3535, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4006:5:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66", + "typeString": "literal_string \"TKN\"" + }, + "value": "TKN" + }, + "src": "3997:14:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3537, + "nodeType": "ExpressionStatement", + "src": "3997:14:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3540, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3538, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3517, + "src": "4021:4:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "546f6b656e204578616d706c65", + "id": 3539, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4028:15:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a", + "typeString": "literal_string \"Token Example\"" + }, + "value": "Token Example" + }, + "src": "4021:22:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3541, + "nodeType": "ExpressionStatement", + "src": "4021:22:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3542, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3519, + "src": "4053:8:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "3138", + "id": 3543, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4064:2:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "src": "4053:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 3545, + "nodeType": "ExpressionStatement", + "src": "4053:13:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3546, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3521, + "src": "4076:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "31303030303030", + "id": 3547, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4091: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": 3552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 3548, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4101: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": 3550, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3519, + "src": "4110:8:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 3549, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4105:4:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" + }, + "id": 3551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4105:14:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4101:18:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4091:28:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4076:43:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3555, + "nodeType": "ExpressionStatement", + "src": "4076:43:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3556, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "4129:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3558, + "indexExpression": { + "argumentTypes": null, + "id": 3557, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "4138:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4129:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3559, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3521, + "src": "4147:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4129:30:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3561, + "nodeType": "ExpressionStatement", + "src": "4129:30:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3564, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4191: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": 3563, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4183:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4183:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3566, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "4195:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3567, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3521, + "src": "4202: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": 3562, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3416, + "src": "4174:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4174:41:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3569, + "nodeType": "EmitStatement", + "src": "4169:46:25" + } + ] + }, + "documentation": null, + "id": 3571, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3532, + "nodeType": "ParameterList", + "parameters": [], + "src": "3977:2:25" + }, + "payable": false, + "returnParameters": { + "id": 3533, + "nodeType": "ParameterList", + "parameters": [], + "src": "3987:0:25" + }, + "scope": 3813, + "src": "3966:256:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3585, + "nodeType": "Block", + "src": "4459:62:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3578, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "4493:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3582, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3580, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4510: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": 3579, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4502:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3581, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4502:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4493:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 3576, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3521, + "src": "4476:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3577, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 3307, + "src": "4476: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": 3583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4476:38:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3575, + "id": 3584, + "nodeType": "Return", + "src": "4469:45:25" + } + ] + }, + "documentation": null, + "id": 3586, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3572, + "nodeType": "ParameterList", + "parameters": [], + "src": "4429:2:25" + }, + "payable": false, + "returnParameters": { + "id": 3575, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3574, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3586, + "src": "4453:4:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3573, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4453:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4452:6:25" + }, + "scope": 3813, + "src": "4409:112:25", + "stateMutability": "view", + "superFunction": 3363, + "visibility": "public" + }, + { + "body": { + "id": 3597, + "nodeType": "Block", + "src": "4816:44:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3593, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "4833:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3595, + "indexExpression": { + "argumentTypes": null, + "id": 3594, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3588, + "src": "4842:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4833:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3592, + "id": 3596, + "nodeType": "Return", + "src": "4826:27:25" + } + ] + }, + "documentation": null, + "id": 3598, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3589, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3588, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 3598, + "src": "4761:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3587, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4761:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4760:20:25" + }, + "payable": false, + "returnParameters": { + "id": 3592, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3591, + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 3598, + "src": "4802:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3590, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4802:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4801:14:25" + }, + "scope": 3813, + "src": "4742:118:25", + "stateMutability": "view", + "superFunction": 3370, + "visibility": "public" + }, + { + "body": { + "id": 3640, + "nodeType": "Block", + "src": "5276:189:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3618, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3607, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "5286:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3610, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3608, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "5295:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5295:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5286:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3616, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3602, + "src": "5334:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3611, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "5309:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3614, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3612, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "5318:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3613, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5318:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5309:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3615, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 3307, + "src": "5309: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": 3617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5309:32:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5286:55:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3619, + "nodeType": "ExpressionStatement", + "src": "5286:55:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3620, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "5351:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3622, + "indexExpression": { + "argumentTypes": null, + "id": 3621, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3600, + "src": "5360:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5351:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3627, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3602, + "src": "5383:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3623, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "5366:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3625, + "indexExpression": { + "argumentTypes": null, + "id": 3624, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3600, + "src": "5375:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5366:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 3285, + "src": "5366: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": 3628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5366:24:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5351:39:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3630, + "nodeType": "ExpressionStatement", + "src": "5351:39:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3632, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "5414:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3633, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5414:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3634, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3600, + "src": "5426:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3635, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3602, + "src": "5430: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": 3631, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3416, + "src": "5405:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5405:32:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3637, + "nodeType": "EmitStatement", + "src": "5400:37:25" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5454:4:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3606, + "id": 3639, + "nodeType": "Return", + "src": "5447:11:25" + } + ] + }, + "documentation": null, + "id": 3641, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3603, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3600, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3641, + "src": "5221:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3599, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5221:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3602, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3641, + "src": "5233:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3601, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5233:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5220:25:25" + }, + "payable": false, + "returnParameters": { + "id": 3606, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3605, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3641, + "src": "5262:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3604, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5262:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5261:14:25" + }, + "scope": 3813, + "src": "5203:262:25", + "stateMutability": "nonpayable", + "superFunction": 3388, + "visibility": "public" + }, + { + "body": { + "id": 3668, + "nodeType": "Block", + "src": "6048:127:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3650, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "6058:7:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3654, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3651, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "6066:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3652, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6066:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6058:19:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3655, + "indexExpression": { + "argumentTypes": null, + "id": 3653, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3643, + "src": "6078:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6058:28:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3656, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3645, + "src": "6089:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6058:37:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3658, + "nodeType": "ExpressionStatement", + "src": "6058:37:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3660, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "6119:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6119:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3662, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3643, + "src": "6131:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3663, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3645, + "src": "6140: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": 3659, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3424, + "src": "6110:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6110:37:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3665, + "nodeType": "EmitStatement", + "src": "6105:42:25" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6164:4:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3649, + "id": 3667, + "nodeType": "Return", + "src": "6157:11:25" + } + ] + }, + "documentation": null, + "id": 3669, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3646, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3643, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3669, + "src": "5988:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3642, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5988:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3645, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3669, + "src": "6005:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3644, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6005:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5987:30:25" + }, + "payable": false, + "returnParameters": { + "id": 3649, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3648, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3669, + "src": "6034:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3647, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6034:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6033:14:25" + }, + "scope": 3813, + "src": "5971:204:25", + "stateMutability": "nonpayable", + "superFunction": 3397, + "visibility": "public" + }, + { + "body": { + "id": 3727, + "nodeType": "Block", + "src": "6798:246:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3680, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "6808:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3682, + "indexExpression": { + "argumentTypes": null, + "id": 3681, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "6817:4:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6808:14:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3687, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3675, + "src": "6844:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3683, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "6825:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3685, + "indexExpression": { + "argumentTypes": null, + "id": 3684, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "6834:4:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6825:14:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 3307, + "src": "6825: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": 3688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6825:26:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6808:43:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3690, + "nodeType": "ExpressionStatement", + "src": "6808:43:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3706, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3691, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "6861:7:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3695, + "indexExpression": { + "argumentTypes": null, + "id": 3692, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "6869:4:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6861:13:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3696, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3693, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "6875:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6875:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6861:25:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3704, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3675, + "src": "6919: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": 3697, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "6889:7:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3699, + "indexExpression": { + "argumentTypes": null, + "id": 3698, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "6897:4:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6889:13:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3702, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3700, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "6903:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3701, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6903:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6889:25:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 3307, + "src": "6889: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": 3705, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6889:37:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6861:65:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3707, + "nodeType": "ExpressionStatement", + "src": "6861:65:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3708, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "6936:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3710, + "indexExpression": { + "argumentTypes": null, + "id": 3709, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3673, + "src": "6945:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6936:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3715, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3675, + "src": "6968:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3711, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "6951:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3713, + "indexExpression": { + "argumentTypes": null, + "id": 3712, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3673, + "src": "6960:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6951:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 3285, + "src": "6951: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": 3716, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6951:24:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6936:39:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3718, + "nodeType": "ExpressionStatement", + "src": "6936:39:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3720, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "6999:4:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3721, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3673, + "src": "7005:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3722, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3675, + "src": "7009: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": 3719, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3416, + "src": "6990:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6990:26:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3724, + "nodeType": "EmitStatement", + "src": "6985:31:25" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3725, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7033:4:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3679, + "id": 3726, + "nodeType": "Return", + "src": "7026:11:25" + } + ] + }, + "documentation": null, + "id": 3728, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3676, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3671, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3728, + "src": "6729:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3670, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6729:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3673, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3728, + "src": "6743:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3672, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6743:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3675, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3728, + "src": "6755:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3674, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6755:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6728:39:25" + }, + "payable": false, + "returnParameters": { + "id": 3679, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3678, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3728, + "src": "6784:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3677, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6784:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6783:14:25" + }, + "scope": 3813, + "src": "6707:337:25", + "stateMutability": "nonpayable", + "superFunction": 3408, + "visibility": "public" + }, + { + "body": { + "id": 3743, + "nodeType": "Block", + "src": "7418:52:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3737, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "7435:7:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3739, + "indexExpression": { + "argumentTypes": null, + "id": 3738, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3730, + "src": "7443:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7435:19:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3741, + "indexExpression": { + "argumentTypes": null, + "id": 3740, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3732, + "src": "7455:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7435:28:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3736, + "id": 3742, + "nodeType": "Return", + "src": "7428:35:25" + } + ] + }, + "documentation": null, + "id": 3744, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3733, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3730, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 3744, + "src": "7344:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3729, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7344:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3732, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3744, + "src": "7364:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3731, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7364:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7343:37:25" + }, + "payable": false, + "returnParameters": { + "id": 3736, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3735, + "name": "remaining", + "nodeType": "VariableDeclaration", + "scope": 3744, + "src": "7402:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3734, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7402:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7401:16:25" + }, + "scope": 3813, + "src": "7325:145:25", + "stateMutability": "view", + "superFunction": 3379, + "visibility": "public" + }, + { + "body": { + "id": 3784, + "nodeType": "Block", + "src": "7926:216:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3755, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "7936:7:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3759, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3756, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "7944:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7944:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7936:19:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3760, + "indexExpression": { + "argumentTypes": null, + "id": 3758, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3746, + "src": "7956:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7936:28:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3761, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3748, + "src": "7967:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7936:37:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3763, + "nodeType": "ExpressionStatement", + "src": "7936:37:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3765, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "7997:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7997:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3767, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3746, + "src": "8009:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3768, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3748, + "src": "8018: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": 3764, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3424, + "src": "7988:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7988:37:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3770, + "nodeType": "EmitStatement", + "src": "7983:42:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3775, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "8083:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8083:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3777, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3748, + "src": "8095:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3778, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3907, + "src": "8103:4:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TestToken_$3813", + "typeString": "contract TestToken" + } + }, + { + "argumentTypes": null, + "id": 3779, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3750, + "src": "8109: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$_TestToken_$3813", + "typeString": "contract TestToken" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3772, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3746, + "src": "8058:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3771, + "name": "ApproveAndCallFallBack", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3437, + "src": "8035:22:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3437_$", + "typeString": "type(contract ApproveAndCallFallBack)" + } + }, + "id": 3773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8035:31:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3437", + "typeString": "contract ApproveAndCallFallBack" + } + }, + "id": 3774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "receiveApproval", + "nodeType": "MemberAccess", + "referencedDeclaration": 3436, + "src": "8035: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": 3780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8035:79:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3781, + "nodeType": "ExpressionStatement", + "src": "8035:79:25" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3782, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8131:4:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3754, + "id": 3783, + "nodeType": "Return", + "src": "8124:11:25" + } + ] + }, + "documentation": null, + "id": 3785, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approveAndCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3751, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3746, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3785, + "src": "7854:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3745, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7854:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3748, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3785, + "src": "7871:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3747, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7871:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3750, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 3785, + "src": "7884:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3749, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7884:5:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7853:42:25" + }, + "payable": false, + "returnParameters": { + "id": 3754, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3753, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3785, + "src": "7912:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3752, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7912:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7911:14:25" + }, + "scope": 3813, + "src": "7830:312:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3791, + "nodeType": "Block", + "src": "8360:25:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3788, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3833, + 3834 + ], + "referencedDeclaration": 3833, + "src": "8370:6:25", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 3789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8370:8:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3790, + "nodeType": "ExpressionStatement", + "src": "8370:8:25" + } + ] + }, + "documentation": null, + "id": 3792, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3786, + "nodeType": "ParameterList", + "parameters": [], + "src": "8342:2:25" + }, + "payable": true, + "returnParameters": { + "id": 3787, + "nodeType": "ParameterList", + "parameters": [], + "src": "8360:0:25" + }, + "scope": 3813, + "src": "8333:52:25", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3811, + "nodeType": "Block", + "src": "8723:76:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3807, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "8778:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3808, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3796, + "src": "8785: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": 3804, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3794, + "src": "8755:12:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3803, + "name": "ERC20Interface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3425, + "src": "8740:14:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3425_$", + "typeString": "type(contract ERC20Interface)" + } + }, + "id": 3805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8740:28:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Interface_$3425", + "typeString": "contract ERC20Interface" + } + }, + "id": 3806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 3388, + "src": "8740:37:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 3809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8740:52:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3802, + "id": 3810, + "nodeType": "Return", + "src": "8733:59:25" + } + ] + }, + "documentation": null, + "id": 3812, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 3799, + "modifierName": { + "argumentTypes": null, + "id": 3798, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "8690:9:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "8690:9:25" + } + ], + "name": "transferAnyERC20Token", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3797, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3794, + "name": "tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 3812, + "src": "8648:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3793, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8648:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3796, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3812, + "src": "8670:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3795, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8670:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8647:35:25" + }, + "payable": false, + "returnParameters": { + "id": 3802, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3801, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3812, + "src": "8709:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3800, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8709:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8708:14:25" + }, + "scope": 3813, + "src": "8617:182:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 3814, + "src": "3506:5295:25" + } + ], + "src": "0:8801:25" + }, + "legacyAST": { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", + "exportedSymbols": { + "ApproveAndCallFallBack": [ + 3437 + ], + "ERC20Interface": [ + 3425 + ], + "Owned": [ + 3506 + ], + "SafeMath": [ + 3358 + ], + "TestToken": [ + 3813 + ] + }, + "id": 3814, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3263, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:25" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 3358, + "linearizedBaseContracts": [ + 3358 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 3284, + "nodeType": "Block", + "src": "719:51:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3272, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3270, + "src": "729:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3273, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3265, + "src": "733:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 3274, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3267, + "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": 3277, + "nodeType": "ExpressionStatement", + "src": "729:9:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3279, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3270, + "src": "756:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 3280, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3265, + "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": 3278, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "748:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "748:15:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3283, + "nodeType": "ExpressionStatement", + "src": "748:15:25" + } + ] + }, + "documentation": null, + "id": 3285, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3268, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3265, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 3285, + "src": "672:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3264, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "672:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3267, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3285, + "src": "680:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3266, + "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": 3271, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3270, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 3285, + "src": "711:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3269, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "711:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "710:8:25" + }, + "scope": 3358, + "src": "659:111:25", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3306, + "nodeType": "Block", + "src": "835:51:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3295, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3289, + "src": "853:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 3296, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3287, + "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": 3294, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "845:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "845:15:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3299, + "nodeType": "ExpressionStatement", + "src": "845:15:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3300, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3292, + "src": "870:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3301, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3287, + "src": "874:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 3302, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3289, + "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": 3305, + "nodeType": "ExpressionStatement", + "src": "870:9:25" + } + ] + }, + "documentation": null, + "id": 3307, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3290, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3287, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 3307, + "src": "788:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3286, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "788:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3289, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3307, + "src": "796:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3288, + "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": 3293, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3292, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 3307, + "src": "827:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3291, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "827:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "826:8:25" + }, + "scope": 3358, + "src": "775:111:25", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3334, + "nodeType": "Block", + "src": "951:65:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3316, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3314, + "src": "961:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3317, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3309, + "src": "965:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 3318, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3311, + "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": 3321, + "nodeType": "ExpressionStatement", + "src": "961:9:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3323, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3309, + "src": "988:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3324, + "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": 3330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3326, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3314, + "src": "998:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 3327, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3309, + "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": 3329, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3311, + "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": 3322, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "980:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "980:29:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3333, + "nodeType": "ExpressionStatement", + "src": "980:29:25" + } + ] + }, + "documentation": null, + "id": 3335, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3312, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3309, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 3335, + "src": "904:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3308, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "904:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3311, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3335, + "src": "912:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3310, + "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": 3315, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3314, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 3335, + "src": "943:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3313, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "943:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "942:8:25" + }, + "scope": 3358, + "src": "891:125:25", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3356, + "nodeType": "Block", + "src": "1081:50:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3345, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3339, + "src": "1099:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3346, + "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": 3344, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "1091:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1091:14:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3349, + "nodeType": "ExpressionStatement", + "src": "1091:14:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3350, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3342, + "src": "1115:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3351, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3337, + "src": "1119:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 3352, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3339, + "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": 3355, + "nodeType": "ExpressionStatement", + "src": "1115:9:25" + } + ] + }, + "documentation": null, + "id": 3357, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3340, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3337, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 3357, + "src": "1034:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3336, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1034:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3339, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3357, + "src": "1042:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3338, + "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": 3343, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3342, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 3357, + "src": "1073:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3341, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1073:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1072:8:25" + }, + "scope": 3358, + "src": "1021:110:25", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 3814, + "src": "636:497:25" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 3425, + "linearizedBaseContracts": [ + 3425 + ], + "name": "ERC20Interface", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 3363, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3359, + "nodeType": "ParameterList", + "parameters": [], + "src": "1445:2:25" + }, + "payable": false, + "returnParameters": { + "id": 3362, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3361, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3363, + "src": "1473:4:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3360, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1473:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1472:6:25" + }, + "scope": 3425, + "src": "1425:54:25", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 3370, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3366, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3365, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 3370, + "src": "1503:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3364, + "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": 3369, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3368, + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 3370, + "src": "1548:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3367, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1548:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1547:14:25" + }, + "scope": 3425, + "src": "1484:78:25", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 3379, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3375, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3372, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 3379, + "src": "1586:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3371, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1586:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3374, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3379, + "src": "1606:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3373, + "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": 3378, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3377, + "name": "remaining", + "nodeType": "VariableDeclaration", + "scope": 3379, + "src": "1648:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3376, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1648:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1647:16:25" + }, + "scope": 3425, + "src": "1567:97:25", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 3388, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3384, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3381, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3388, + "src": "1687:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3380, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1687:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3383, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3388, + "src": "1699:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3382, + "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": 3387, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3386, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3388, + "src": "1728:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3385, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1728:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1727:14:25" + }, + "scope": 3425, + "src": "1669:73:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 3397, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3393, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3390, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3397, + "src": "1764:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3389, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1764:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3392, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3397, + "src": "1781:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3391, + "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": 3396, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3395, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3397, + "src": "1810:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3394, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1810:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1809:14:25" + }, + "scope": 3425, + "src": "1747:77:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 3408, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3404, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3399, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3408, + "src": "1851:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3398, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1851:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3401, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3408, + "src": "1865:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3400, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1865:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3403, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3408, + "src": "1877:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3402, + "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": 3407, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3406, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3408, + "src": "1906:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3405, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1906:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1905:14:25" + }, + "scope": 3425, + "src": "1829:91:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 3416, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 3415, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3410, + "indexed": true, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3416, + "src": "1941:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3409, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1941:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3412, + "indexed": true, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3416, + "src": "1963:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3411, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1963:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3414, + "indexed": false, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3416, + "src": "1983:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3413, + "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": 3424, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 3423, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3418, + "indexed": true, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 3424, + "src": "2016:26:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3417, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2016:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3420, + "indexed": true, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3424, + "src": "2044:23:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3419, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2044:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3422, + "indexed": false, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3424, + "src": "2069:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3421, + "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": 3814, + "src": "1395:689:25" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 3437, + "linearizedBaseContracts": [ + 3437 + ], + "name": "ApproveAndCallFallBack", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 3436, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "receiveApproval", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3434, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3427, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3436, + "src": "2416:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3426, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2416:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3429, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3436, + "src": "2430:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3428, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2430:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3431, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 3436, + "src": "2446:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3430, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2446:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3433, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 3436, + "src": "2461:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3432, + "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": 3435, + "nodeType": "ParameterList", + "parameters": [], + "src": "2479:0:25" + }, + "scope": 3437, + "src": "2391:89:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 3814, + "src": "2353:129:25" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 3506, + "linearizedBaseContracts": [ + 3506 + ], + "name": "Owned", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 3439, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 3506, + "src": "2684:20:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3438, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2684:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3441, + "name": "newOwner", + "nodeType": "VariableDeclaration", + "scope": 3506, + "src": "2710:23:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3440, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2710:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 3447, + "name": "OwnershipTransferred", + "nodeType": "EventDefinition", + "parameters": { + "id": 3446, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3443, + "indexed": true, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 3447, + "src": "2767:21:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3442, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2767:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3445, + "indexed": true, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 3447, + "src": "2790:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3444, + "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": 3455, + "nodeType": "Block", + "src": "2838:35:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3450, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "2848:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3451, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "2856:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3452, + "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": 3454, + "nodeType": "ExpressionStatement", + "src": "2848:18:25" + } + ] + }, + "documentation": null, + "id": 3456, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3448, + "nodeType": "ParameterList", + "parameters": [], + "src": "2828:2:25" + }, + "payable": false, + "returnParameters": { + "id": 3449, + "nodeType": "ParameterList", + "parameters": [], + "src": "2838:0:25" + }, + "scope": 3506, + "src": "2817:56:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3466, + "nodeType": "Block", + "src": "2898:56:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3459, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "2916:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3460, + "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": 3461, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "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": 3458, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "2908:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2908:28:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3464, + "nodeType": "ExpressionStatement", + "src": "2908:28:25" + }, + { + "id": 3465, + "nodeType": "PlaceholderStatement", + "src": "2946:1:25" + } + ] + }, + "documentation": null, + "id": 3467, + "name": "onlyOwner", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 3457, + "nodeType": "ParameterList", + "parameters": [], + "src": "2898:0:25" + }, + "src": "2879:75:25", + "visibility": "internal" + }, + { + "body": { + "id": 3478, + "nodeType": "Block", + "src": "3023:37:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3474, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3441, + "src": "3033:8:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3475, + "name": "_newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3469, + "src": "3044:9:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3033:20:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3477, + "nodeType": "ExpressionStatement", + "src": "3033:20:25" + } + ] + }, + "documentation": null, + "id": 3479, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 3472, + "modifierName": { + "argumentTypes": null, + "id": 3471, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "3013:9:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3013:9:25" + } + ], + "name": "transferOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3470, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3469, + "name": "_newOwner", + "nodeType": "VariableDeclaration", + "scope": 3479, + "src": "2987:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3468, + "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": 3473, + "nodeType": "ParameterList", + "parameters": [], + "src": "3023:0:25" + }, + "scope": 3506, + "src": "2960:100:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3504, + "nodeType": "Block", + "src": "3099:157:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3483, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "3117:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3484, + "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": 3485, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3441, + "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": 3482, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "3109:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3109:31:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3488, + "nodeType": "ExpressionStatement", + "src": "3109:31:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3490, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "3176:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3491, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3441, + "src": "3183:8:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3489, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3447, + "src": "3155:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 3492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3155:37:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3493, + "nodeType": "EmitStatement", + "src": "3150:42:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3494, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "3202:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3495, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3441, + "src": "3210:8:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3202:16:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3497, + "nodeType": "ExpressionStatement", + "src": "3202:16:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3498, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3441, + "src": "3228:8:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3500, + "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": 3499, + "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": 3501, + "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": 3503, + "nodeType": "ExpressionStatement", + "src": "3228:21:25" + } + ] + }, + "documentation": null, + "id": 3505, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "acceptOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3480, + "nodeType": "ParameterList", + "parameters": [], + "src": "3089:2:25" + }, + "payable": false, + "returnParameters": { + "id": 3481, + "nodeType": "ParameterList", + "parameters": [], + "src": "3099:0:25" + }, + "scope": 3506, + "src": "3065:191:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 3814, + "src": "2663:595:25" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 3507, + "name": "ERC20Interface", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3425, + "src": "3528:14:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Interface_$3425", + "typeString": "contract ERC20Interface" + } + }, + "id": 3508, + "nodeType": "InheritanceSpecifier", + "src": "3528:14:25" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 3509, + "name": "Owned", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3506, + "src": "3544:5:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Owned_$3506", + "typeString": "contract Owned" + } + }, + "id": 3510, + "nodeType": "InheritanceSpecifier", + "src": "3544:5:25" + } + ], + "contractDependencies": [ + 3425, + 3506 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 3813, + "linearizedBaseContracts": [ + 3813, + 3506, + 3425 + ], + "name": "TestToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 3513, + "libraryName": { + "contractScope": null, + "id": 3511, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3358, + "src": "3562:8:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$3358", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "3556:24:25", + "typeName": { + "id": 3512, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3575:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 3515, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3586:20:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3514, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3586:6:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3517, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3612:19:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3516, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3612:6:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3519, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3637:21:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 3518, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3637:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3521, + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3664:17:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3520, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3664:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3525, + "name": "balances", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3688:33:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 3524, + "keyType": { + "id": 3522, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3696:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3688:24:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 3523, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3707:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3531, + "name": "allowed", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3727: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": 3530, + "keyType": { + "id": 3526, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3735:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3727:44:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 3529, + "keyType": { + "id": 3527, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3754:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3746:24:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 3528, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3765:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "body": { + "id": 3570, + "nodeType": "Block", + "src": "3987:235:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3534, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3515, + "src": "3997:6:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "544b4e", + "id": 3535, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4006:5:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66", + "typeString": "literal_string \"TKN\"" + }, + "value": "TKN" + }, + "src": "3997:14:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3537, + "nodeType": "ExpressionStatement", + "src": "3997:14:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3540, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3538, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3517, + "src": "4021:4:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "546f6b656e204578616d706c65", + "id": 3539, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4028:15:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a", + "typeString": "literal_string \"Token Example\"" + }, + "value": "Token Example" + }, + "src": "4021:22:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3541, + "nodeType": "ExpressionStatement", + "src": "4021:22:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3542, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3519, + "src": "4053:8:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "3138", + "id": 3543, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4064:2:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "src": "4053:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 3545, + "nodeType": "ExpressionStatement", + "src": "4053:13:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3546, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3521, + "src": "4076:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "31303030303030", + "id": 3547, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4091: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": 3552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 3548, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4101: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": 3550, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3519, + "src": "4110:8:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 3549, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4105:4:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" + }, + "id": 3551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4105:14:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4101:18:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4091:28:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4076:43:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3555, + "nodeType": "ExpressionStatement", + "src": "4076:43:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3556, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "4129:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3558, + "indexExpression": { + "argumentTypes": null, + "id": 3557, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "4138:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4129:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3559, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3521, + "src": "4147:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4129:30:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3561, + "nodeType": "ExpressionStatement", + "src": "4129:30:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3564, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4191: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": 3563, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4183:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4183:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3566, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "4195:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3567, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3521, + "src": "4202: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": 3562, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3416, + "src": "4174:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4174:41:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3569, + "nodeType": "EmitStatement", + "src": "4169:46:25" + } + ] + }, + "documentation": null, + "id": 3571, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3532, + "nodeType": "ParameterList", + "parameters": [], + "src": "3977:2:25" + }, + "payable": false, + "returnParameters": { + "id": 3533, + "nodeType": "ParameterList", + "parameters": [], + "src": "3987:0:25" + }, + "scope": 3813, + "src": "3966:256:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3585, + "nodeType": "Block", + "src": "4459:62:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3578, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "4493:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3582, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3580, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4510: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": 3579, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4502:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3581, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4502:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4493:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 3576, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3521, + "src": "4476:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3577, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 3307, + "src": "4476: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": 3583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4476:38:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3575, + "id": 3584, + "nodeType": "Return", + "src": "4469:45:25" + } + ] + }, + "documentation": null, + "id": 3586, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3572, + "nodeType": "ParameterList", + "parameters": [], + "src": "4429:2:25" + }, + "payable": false, + "returnParameters": { + "id": 3575, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3574, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3586, + "src": "4453:4:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3573, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4453:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4452:6:25" + }, + "scope": 3813, + "src": "4409:112:25", + "stateMutability": "view", + "superFunction": 3363, + "visibility": "public" + }, + { + "body": { + "id": 3597, + "nodeType": "Block", + "src": "4816:44:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3593, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "4833:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3595, + "indexExpression": { + "argumentTypes": null, + "id": 3594, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3588, + "src": "4842:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4833:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3592, + "id": 3596, + "nodeType": "Return", + "src": "4826:27:25" + } + ] + }, + "documentation": null, + "id": 3598, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3589, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3588, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 3598, + "src": "4761:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3587, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4761:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4760:20:25" + }, + "payable": false, + "returnParameters": { + "id": 3592, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3591, + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 3598, + "src": "4802:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3590, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4802:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4801:14:25" + }, + "scope": 3813, + "src": "4742:118:25", + "stateMutability": "view", + "superFunction": 3370, + "visibility": "public" + }, + { + "body": { + "id": 3640, + "nodeType": "Block", + "src": "5276:189:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3618, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3607, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "5286:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3610, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3608, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "5295:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5295:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5286:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3616, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3602, + "src": "5334:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3611, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "5309:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3614, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3612, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "5318:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3613, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5318:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5309:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3615, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 3307, + "src": "5309: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": 3617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5309:32:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5286:55:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3619, + "nodeType": "ExpressionStatement", + "src": "5286:55:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3620, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "5351:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3622, + "indexExpression": { + "argumentTypes": null, + "id": 3621, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3600, + "src": "5360:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5351:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3627, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3602, + "src": "5383:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3623, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "5366:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3625, + "indexExpression": { + "argumentTypes": null, + "id": 3624, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3600, + "src": "5375:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5366:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 3285, + "src": "5366: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": 3628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5366:24:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5351:39:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3630, + "nodeType": "ExpressionStatement", + "src": "5351:39:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3632, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "5414:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3633, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5414:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3634, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3600, + "src": "5426:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3635, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3602, + "src": "5430: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": 3631, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3416, + "src": "5405:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5405:32:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3637, + "nodeType": "EmitStatement", + "src": "5400:37:25" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5454:4:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3606, + "id": 3639, + "nodeType": "Return", + "src": "5447:11:25" + } + ] + }, + "documentation": null, + "id": 3641, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3603, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3600, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3641, + "src": "5221:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3599, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5221:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3602, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3641, + "src": "5233:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3601, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5233:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5220:25:25" + }, + "payable": false, + "returnParameters": { + "id": 3606, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3605, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3641, + "src": "5262:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3604, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5262:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5261:14:25" + }, + "scope": 3813, + "src": "5203:262:25", + "stateMutability": "nonpayable", + "superFunction": 3388, + "visibility": "public" + }, + { + "body": { + "id": 3668, + "nodeType": "Block", + "src": "6048:127:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3650, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "6058:7:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3654, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3651, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "6066:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3652, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6066:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6058:19:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3655, + "indexExpression": { + "argumentTypes": null, + "id": 3653, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3643, + "src": "6078:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6058:28:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3656, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3645, + "src": "6089:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6058:37:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3658, + "nodeType": "ExpressionStatement", + "src": "6058:37:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3660, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "6119:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6119:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3662, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3643, + "src": "6131:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3663, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3645, + "src": "6140: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": 3659, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3424, + "src": "6110:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6110:37:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3665, + "nodeType": "EmitStatement", + "src": "6105:42:25" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6164:4:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3649, + "id": 3667, + "nodeType": "Return", + "src": "6157:11:25" + } + ] + }, + "documentation": null, + "id": 3669, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3646, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3643, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3669, + "src": "5988:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3642, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5988:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3645, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3669, + "src": "6005:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3644, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6005:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5987:30:25" + }, + "payable": false, + "returnParameters": { + "id": 3649, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3648, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3669, + "src": "6034:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3647, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6034:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6033:14:25" + }, + "scope": 3813, + "src": "5971:204:25", + "stateMutability": "nonpayable", + "superFunction": 3397, + "visibility": "public" + }, + { + "body": { + "id": 3727, + "nodeType": "Block", + "src": "6798:246:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3680, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "6808:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3682, + "indexExpression": { + "argumentTypes": null, + "id": 3681, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "6817:4:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6808:14:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3687, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3675, + "src": "6844:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3683, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "6825:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3685, + "indexExpression": { + "argumentTypes": null, + "id": 3684, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "6834:4:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6825:14:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 3307, + "src": "6825: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": 3688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6825:26:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6808:43:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3690, + "nodeType": "ExpressionStatement", + "src": "6808:43:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3706, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3691, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "6861:7:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3695, + "indexExpression": { + "argumentTypes": null, + "id": 3692, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "6869:4:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6861:13:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3696, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3693, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "6875:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6875:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6861:25:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3704, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3675, + "src": "6919: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": 3697, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "6889:7:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3699, + "indexExpression": { + "argumentTypes": null, + "id": 3698, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "6897:4:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6889:13:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3702, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3700, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "6903:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3701, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6903:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6889:25:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 3307, + "src": "6889: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": 3705, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6889:37:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6861:65:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3707, + "nodeType": "ExpressionStatement", + "src": "6861:65:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3708, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "6936:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3710, + "indexExpression": { + "argumentTypes": null, + "id": 3709, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3673, + "src": "6945:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6936:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3715, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3675, + "src": "6968:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3711, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "6951:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3713, + "indexExpression": { + "argumentTypes": null, + "id": 3712, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3673, + "src": "6960:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6951:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 3285, + "src": "6951: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": 3716, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6951:24:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6936:39:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3718, + "nodeType": "ExpressionStatement", + "src": "6936:39:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3720, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "6999:4:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3721, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3673, + "src": "7005:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3722, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3675, + "src": "7009: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": 3719, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3416, + "src": "6990:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6990:26:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3724, + "nodeType": "EmitStatement", + "src": "6985:31:25" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3725, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7033:4:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3679, + "id": 3726, + "nodeType": "Return", + "src": "7026:11:25" + } + ] + }, + "documentation": null, + "id": 3728, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3676, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3671, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3728, + "src": "6729:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3670, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6729:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3673, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3728, + "src": "6743:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3672, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6743:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3675, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3728, + "src": "6755:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3674, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6755:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6728:39:25" + }, + "payable": false, + "returnParameters": { + "id": 3679, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3678, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3728, + "src": "6784:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3677, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6784:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6783:14:25" + }, + "scope": 3813, + "src": "6707:337:25", + "stateMutability": "nonpayable", + "superFunction": 3408, + "visibility": "public" + }, + { + "body": { + "id": 3743, + "nodeType": "Block", + "src": "7418:52:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3737, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "7435:7:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3739, + "indexExpression": { + "argumentTypes": null, + "id": 3738, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3730, + "src": "7443:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7435:19:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3741, + "indexExpression": { + "argumentTypes": null, + "id": 3740, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3732, + "src": "7455:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7435:28:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3736, + "id": 3742, + "nodeType": "Return", + "src": "7428:35:25" + } + ] + }, + "documentation": null, + "id": 3744, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3733, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3730, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 3744, + "src": "7344:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3729, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7344:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3732, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3744, + "src": "7364:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3731, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7364:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7343:37:25" + }, + "payable": false, + "returnParameters": { + "id": 3736, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3735, + "name": "remaining", + "nodeType": "VariableDeclaration", + "scope": 3744, + "src": "7402:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3734, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7402:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7401:16:25" + }, + "scope": 3813, + "src": "7325:145:25", + "stateMutability": "view", + "superFunction": 3379, + "visibility": "public" + }, + { + "body": { + "id": 3784, + "nodeType": "Block", + "src": "7926:216:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3755, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "7936:7:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3759, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3756, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "7944:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7944:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7936:19:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3760, + "indexExpression": { + "argumentTypes": null, + "id": 3758, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3746, + "src": "7956:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7936:28:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3761, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3748, + "src": "7967:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7936:37:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3763, + "nodeType": "ExpressionStatement", + "src": "7936:37:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3765, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "7997:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7997:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3767, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3746, + "src": "8009:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3768, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3748, + "src": "8018: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": 3764, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3424, + "src": "7988:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7988:37:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3770, + "nodeType": "EmitStatement", + "src": "7983:42:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3775, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "8083:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8083:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3777, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3748, + "src": "8095:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3778, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3907, + "src": "8103:4:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TestToken_$3813", + "typeString": "contract TestToken" + } + }, + { + "argumentTypes": null, + "id": 3779, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3750, + "src": "8109: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$_TestToken_$3813", + "typeString": "contract TestToken" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3772, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3746, + "src": "8058:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3771, + "name": "ApproveAndCallFallBack", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3437, + "src": "8035:22:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3437_$", + "typeString": "type(contract ApproveAndCallFallBack)" + } + }, + "id": 3773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8035:31:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3437", + "typeString": "contract ApproveAndCallFallBack" + } + }, + "id": 3774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "receiveApproval", + "nodeType": "MemberAccess", + "referencedDeclaration": 3436, + "src": "8035: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": 3780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8035:79:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3781, + "nodeType": "ExpressionStatement", + "src": "8035:79:25" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3782, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8131:4:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3754, + "id": 3783, + "nodeType": "Return", + "src": "8124:11:25" + } + ] + }, + "documentation": null, + "id": 3785, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approveAndCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3751, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3746, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3785, + "src": "7854:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3745, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7854:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3748, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3785, + "src": "7871:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3747, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7871:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3750, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 3785, + "src": "7884:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3749, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7884:5:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7853:42:25" + }, + "payable": false, + "returnParameters": { + "id": 3754, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3753, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3785, + "src": "7912:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3752, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7912:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7911:14:25" + }, + "scope": 3813, + "src": "7830:312:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3791, + "nodeType": "Block", + "src": "8360:25:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3788, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3833, + 3834 + ], + "referencedDeclaration": 3833, + "src": "8370:6:25", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 3789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8370:8:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3790, + "nodeType": "ExpressionStatement", + "src": "8370:8:25" + } + ] + }, + "documentation": null, + "id": 3792, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3786, + "nodeType": "ParameterList", + "parameters": [], + "src": "8342:2:25" + }, + "payable": true, + "returnParameters": { + "id": 3787, + "nodeType": "ParameterList", + "parameters": [], + "src": "8360:0:25" + }, + "scope": 3813, + "src": "8333:52:25", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3811, + "nodeType": "Block", + "src": "8723:76:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3807, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "8778:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3808, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3796, + "src": "8785: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": 3804, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3794, + "src": "8755:12:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3803, + "name": "ERC20Interface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3425, + "src": "8740:14:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3425_$", + "typeString": "type(contract ERC20Interface)" + } + }, + "id": 3805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8740:28:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Interface_$3425", + "typeString": "contract ERC20Interface" + } + }, + "id": 3806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 3388, + "src": "8740:37:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 3809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8740:52:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3802, + "id": 3810, + "nodeType": "Return", + "src": "8733:59:25" + } + ] + }, + "documentation": null, + "id": 3812, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 3799, + "modifierName": { + "argumentTypes": null, + "id": 3798, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "8690:9:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "8690:9:25" + } + ], + "name": "transferAnyERC20Token", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3797, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3794, + "name": "tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 3812, + "src": "8648:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3793, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8648:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3796, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3812, + "src": "8670:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3795, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8670:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8647:35:25" + }, + "payable": false, + "returnParameters": { + "id": 3802, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3801, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3812, + "src": "8709:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3800, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8709:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8708:14:25" + }, + "scope": 3813, + "src": "8617:182:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 3814, + "src": "3506:5295:25" + } + ], + "src": "0:8801:25" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-08-20T07:44:41.105Z" +} \ No newline at end of file diff --git a/safe-contracts/build/contracts/test/SafeMath.json b/safe-contracts/build/contracts/test/SafeMath.json new file mode 100644 index 0000000000..5046e62ad3 --- /dev/null +++ b/safe-contracts/build/contracts/test/SafeMath.json @@ -0,0 +1,14189 @@ +{ + "contractName": "SafeMath", + "abi": [], + "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058207b85988d9fca11f15e3ba4c2a2e5ad1c0debc1a24f938c9db30c754a373620960029", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058207b85988d9fca11f15e3ba4c2a2e5ad1c0debc1a24f938c9db30c754a373620960029", + "sourceMap": "636:497:25:-;;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:25:-;;;;;;;;", + "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": [ + 3437 + ], + "ERC20Interface": [ + 3425 + ], + "Owned": [ + 3506 + ], + "SafeMath": [ + 3358 + ], + "TestToken": [ + 3813 + ] + }, + "id": 3814, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3263, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:25" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 3358, + "linearizedBaseContracts": [ + 3358 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 3284, + "nodeType": "Block", + "src": "719:51:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3272, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3270, + "src": "729:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3273, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3265, + "src": "733:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 3274, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3267, + "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": 3277, + "nodeType": "ExpressionStatement", + "src": "729:9:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3279, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3270, + "src": "756:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 3280, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3265, + "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": 3278, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "748:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "748:15:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3283, + "nodeType": "ExpressionStatement", + "src": "748:15:25" + } + ] + }, + "documentation": null, + "id": 3285, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3268, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3265, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 3285, + "src": "672:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3264, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "672:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3267, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3285, + "src": "680:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3266, + "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": 3271, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3270, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 3285, + "src": "711:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3269, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "711:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "710:8:25" + }, + "scope": 3358, + "src": "659:111:25", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3306, + "nodeType": "Block", + "src": "835:51:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3295, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3289, + "src": "853:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 3296, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3287, + "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": 3294, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "845:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "845:15:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3299, + "nodeType": "ExpressionStatement", + "src": "845:15:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3300, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3292, + "src": "870:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3301, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3287, + "src": "874:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 3302, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3289, + "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": 3305, + "nodeType": "ExpressionStatement", + "src": "870:9:25" + } + ] + }, + "documentation": null, + "id": 3307, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3290, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3287, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 3307, + "src": "788:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3286, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "788:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3289, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3307, + "src": "796:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3288, + "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": 3293, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3292, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 3307, + "src": "827:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3291, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "827:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "826:8:25" + }, + "scope": 3358, + "src": "775:111:25", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3334, + "nodeType": "Block", + "src": "951:65:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3316, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3314, + "src": "961:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3317, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3309, + "src": "965:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 3318, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3311, + "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": 3321, + "nodeType": "ExpressionStatement", + "src": "961:9:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3323, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3309, + "src": "988:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3324, + "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": 3330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3326, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3314, + "src": "998:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 3327, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3309, + "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": 3329, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3311, + "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": 3322, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "980:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "980:29:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3333, + "nodeType": "ExpressionStatement", + "src": "980:29:25" + } + ] + }, + "documentation": null, + "id": 3335, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3312, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3309, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 3335, + "src": "904:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3308, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "904:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3311, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3335, + "src": "912:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3310, + "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": 3315, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3314, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 3335, + "src": "943:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3313, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "943:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "942:8:25" + }, + "scope": 3358, + "src": "891:125:25", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3356, + "nodeType": "Block", + "src": "1081:50:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3345, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3339, + "src": "1099:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3346, + "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": 3344, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "1091:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1091:14:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3349, + "nodeType": "ExpressionStatement", + "src": "1091:14:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3350, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3342, + "src": "1115:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3351, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3337, + "src": "1119:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 3352, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3339, + "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": 3355, + "nodeType": "ExpressionStatement", + "src": "1115:9:25" + } + ] + }, + "documentation": null, + "id": 3357, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3340, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3337, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 3357, + "src": "1034:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3336, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1034:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3339, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3357, + "src": "1042:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3338, + "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": 3343, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3342, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 3357, + "src": "1073:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3341, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1073:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1072:8:25" + }, + "scope": 3358, + "src": "1021:110:25", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 3814, + "src": "636:497:25" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 3425, + "linearizedBaseContracts": [ + 3425 + ], + "name": "ERC20Interface", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 3363, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3359, + "nodeType": "ParameterList", + "parameters": [], + "src": "1445:2:25" + }, + "payable": false, + "returnParameters": { + "id": 3362, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3361, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3363, + "src": "1473:4:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3360, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1473:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1472:6:25" + }, + "scope": 3425, + "src": "1425:54:25", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 3370, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3366, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3365, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 3370, + "src": "1503:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3364, + "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": 3369, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3368, + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 3370, + "src": "1548:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3367, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1548:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1547:14:25" + }, + "scope": 3425, + "src": "1484:78:25", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 3379, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3375, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3372, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 3379, + "src": "1586:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3371, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1586:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3374, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3379, + "src": "1606:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3373, + "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": 3378, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3377, + "name": "remaining", + "nodeType": "VariableDeclaration", + "scope": 3379, + "src": "1648:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3376, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1648:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1647:16:25" + }, + "scope": 3425, + "src": "1567:97:25", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 3388, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3384, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3381, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3388, + "src": "1687:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3380, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1687:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3383, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3388, + "src": "1699:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3382, + "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": 3387, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3386, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3388, + "src": "1728:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3385, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1728:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1727:14:25" + }, + "scope": 3425, + "src": "1669:73:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 3397, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3393, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3390, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3397, + "src": "1764:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3389, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1764:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3392, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3397, + "src": "1781:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3391, + "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": 3396, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3395, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3397, + "src": "1810:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3394, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1810:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1809:14:25" + }, + "scope": 3425, + "src": "1747:77:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 3408, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3404, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3399, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3408, + "src": "1851:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3398, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1851:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3401, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3408, + "src": "1865:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3400, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1865:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3403, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3408, + "src": "1877:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3402, + "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": 3407, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3406, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3408, + "src": "1906:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3405, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1906:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1905:14:25" + }, + "scope": 3425, + "src": "1829:91:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 3416, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 3415, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3410, + "indexed": true, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3416, + "src": "1941:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3409, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1941:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3412, + "indexed": true, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3416, + "src": "1963:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3411, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1963:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3414, + "indexed": false, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3416, + "src": "1983:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3413, + "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": 3424, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 3423, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3418, + "indexed": true, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 3424, + "src": "2016:26:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3417, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2016:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3420, + "indexed": true, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3424, + "src": "2044:23:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3419, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2044:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3422, + "indexed": false, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3424, + "src": "2069:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3421, + "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": 3814, + "src": "1395:689:25" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 3437, + "linearizedBaseContracts": [ + 3437 + ], + "name": "ApproveAndCallFallBack", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 3436, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "receiveApproval", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3434, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3427, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3436, + "src": "2416:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3426, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2416:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3429, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3436, + "src": "2430:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3428, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2430:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3431, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 3436, + "src": "2446:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3430, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2446:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3433, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 3436, + "src": "2461:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3432, + "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": 3435, + "nodeType": "ParameterList", + "parameters": [], + "src": "2479:0:25" + }, + "scope": 3437, + "src": "2391:89:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 3814, + "src": "2353:129:25" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 3506, + "linearizedBaseContracts": [ + 3506 + ], + "name": "Owned", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 3439, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 3506, + "src": "2684:20:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3438, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2684:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3441, + "name": "newOwner", + "nodeType": "VariableDeclaration", + "scope": 3506, + "src": "2710:23:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3440, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2710:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 3447, + "name": "OwnershipTransferred", + "nodeType": "EventDefinition", + "parameters": { + "id": 3446, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3443, + "indexed": true, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 3447, + "src": "2767:21:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3442, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2767:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3445, + "indexed": true, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 3447, + "src": "2790:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3444, + "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": 3455, + "nodeType": "Block", + "src": "2838:35:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3450, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "2848:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3451, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "2856:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3452, + "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": 3454, + "nodeType": "ExpressionStatement", + "src": "2848:18:25" + } + ] + }, + "documentation": null, + "id": 3456, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3448, + "nodeType": "ParameterList", + "parameters": [], + "src": "2828:2:25" + }, + "payable": false, + "returnParameters": { + "id": 3449, + "nodeType": "ParameterList", + "parameters": [], + "src": "2838:0:25" + }, + "scope": 3506, + "src": "2817:56:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3466, + "nodeType": "Block", + "src": "2898:56:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3459, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "2916:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3460, + "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": 3461, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "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": 3458, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "2908:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2908:28:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3464, + "nodeType": "ExpressionStatement", + "src": "2908:28:25" + }, + { + "id": 3465, + "nodeType": "PlaceholderStatement", + "src": "2946:1:25" + } + ] + }, + "documentation": null, + "id": 3467, + "name": "onlyOwner", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 3457, + "nodeType": "ParameterList", + "parameters": [], + "src": "2898:0:25" + }, + "src": "2879:75:25", + "visibility": "internal" + }, + { + "body": { + "id": 3478, + "nodeType": "Block", + "src": "3023:37:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3474, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3441, + "src": "3033:8:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3475, + "name": "_newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3469, + "src": "3044:9:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3033:20:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3477, + "nodeType": "ExpressionStatement", + "src": "3033:20:25" + } + ] + }, + "documentation": null, + "id": 3479, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 3472, + "modifierName": { + "argumentTypes": null, + "id": 3471, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "3013:9:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3013:9:25" + } + ], + "name": "transferOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3470, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3469, + "name": "_newOwner", + "nodeType": "VariableDeclaration", + "scope": 3479, + "src": "2987:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3468, + "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": 3473, + "nodeType": "ParameterList", + "parameters": [], + "src": "3023:0:25" + }, + "scope": 3506, + "src": "2960:100:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3504, + "nodeType": "Block", + "src": "3099:157:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3483, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "3117:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3484, + "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": 3485, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3441, + "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": 3482, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "3109:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3109:31:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3488, + "nodeType": "ExpressionStatement", + "src": "3109:31:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3490, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "3176:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3491, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3441, + "src": "3183:8:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3489, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3447, + "src": "3155:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 3492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3155:37:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3493, + "nodeType": "EmitStatement", + "src": "3150:42:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3494, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "3202:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3495, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3441, + "src": "3210:8:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3202:16:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3497, + "nodeType": "ExpressionStatement", + "src": "3202:16:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3498, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3441, + "src": "3228:8:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3500, + "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": 3499, + "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": 3501, + "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": 3503, + "nodeType": "ExpressionStatement", + "src": "3228:21:25" + } + ] + }, + "documentation": null, + "id": 3505, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "acceptOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3480, + "nodeType": "ParameterList", + "parameters": [], + "src": "3089:2:25" + }, + "payable": false, + "returnParameters": { + "id": 3481, + "nodeType": "ParameterList", + "parameters": [], + "src": "3099:0:25" + }, + "scope": 3506, + "src": "3065:191:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 3814, + "src": "2663:595:25" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 3507, + "name": "ERC20Interface", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3425, + "src": "3528:14:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Interface_$3425", + "typeString": "contract ERC20Interface" + } + }, + "id": 3508, + "nodeType": "InheritanceSpecifier", + "src": "3528:14:25" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 3509, + "name": "Owned", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3506, + "src": "3544:5:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Owned_$3506", + "typeString": "contract Owned" + } + }, + "id": 3510, + "nodeType": "InheritanceSpecifier", + "src": "3544:5:25" + } + ], + "contractDependencies": [ + 3425, + 3506 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 3813, + "linearizedBaseContracts": [ + 3813, + 3506, + 3425 + ], + "name": "TestToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 3513, + "libraryName": { + "contractScope": null, + "id": 3511, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3358, + "src": "3562:8:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$3358", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "3556:24:25", + "typeName": { + "id": 3512, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3575:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 3515, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3586:20:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3514, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3586:6:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3517, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3612:19:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3516, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3612:6:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3519, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3637:21:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 3518, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3637:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3521, + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3664:17:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3520, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3664:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3525, + "name": "balances", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3688:33:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 3524, + "keyType": { + "id": 3522, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3696:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3688:24:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 3523, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3707:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3531, + "name": "allowed", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3727: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": 3530, + "keyType": { + "id": 3526, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3735:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3727:44:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 3529, + "keyType": { + "id": 3527, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3754:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3746:24:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 3528, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3765:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "body": { + "id": 3570, + "nodeType": "Block", + "src": "3987:235:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3534, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3515, + "src": "3997:6:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "544b4e", + "id": 3535, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4006:5:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66", + "typeString": "literal_string \"TKN\"" + }, + "value": "TKN" + }, + "src": "3997:14:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3537, + "nodeType": "ExpressionStatement", + "src": "3997:14:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3540, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3538, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3517, + "src": "4021:4:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "546f6b656e204578616d706c65", + "id": 3539, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4028:15:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a", + "typeString": "literal_string \"Token Example\"" + }, + "value": "Token Example" + }, + "src": "4021:22:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3541, + "nodeType": "ExpressionStatement", + "src": "4021:22:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3542, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3519, + "src": "4053:8:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "3138", + "id": 3543, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4064:2:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "src": "4053:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 3545, + "nodeType": "ExpressionStatement", + "src": "4053:13:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3546, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3521, + "src": "4076:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "31303030303030", + "id": 3547, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4091: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": 3552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 3548, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4101: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": 3550, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3519, + "src": "4110:8:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 3549, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4105:4:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" + }, + "id": 3551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4105:14:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4101:18:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4091:28:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4076:43:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3555, + "nodeType": "ExpressionStatement", + "src": "4076:43:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3556, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "4129:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3558, + "indexExpression": { + "argumentTypes": null, + "id": 3557, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "4138:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4129:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3559, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3521, + "src": "4147:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4129:30:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3561, + "nodeType": "ExpressionStatement", + "src": "4129:30:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3564, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4191: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": 3563, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4183:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4183:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3566, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "4195:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3567, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3521, + "src": "4202: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": 3562, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3416, + "src": "4174:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4174:41:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3569, + "nodeType": "EmitStatement", + "src": "4169:46:25" + } + ] + }, + "documentation": null, + "id": 3571, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3532, + "nodeType": "ParameterList", + "parameters": [], + "src": "3977:2:25" + }, + "payable": false, + "returnParameters": { + "id": 3533, + "nodeType": "ParameterList", + "parameters": [], + "src": "3987:0:25" + }, + "scope": 3813, + "src": "3966:256:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3585, + "nodeType": "Block", + "src": "4459:62:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3578, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "4493:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3582, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3580, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4510: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": 3579, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4502:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3581, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4502:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4493:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 3576, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3521, + "src": "4476:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3577, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 3307, + "src": "4476: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": 3583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4476:38:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3575, + "id": 3584, + "nodeType": "Return", + "src": "4469:45:25" + } + ] + }, + "documentation": null, + "id": 3586, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3572, + "nodeType": "ParameterList", + "parameters": [], + "src": "4429:2:25" + }, + "payable": false, + "returnParameters": { + "id": 3575, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3574, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3586, + "src": "4453:4:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3573, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4453:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4452:6:25" + }, + "scope": 3813, + "src": "4409:112:25", + "stateMutability": "view", + "superFunction": 3363, + "visibility": "public" + }, + { + "body": { + "id": 3597, + "nodeType": "Block", + "src": "4816:44:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3593, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "4833:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3595, + "indexExpression": { + "argumentTypes": null, + "id": 3594, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3588, + "src": "4842:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4833:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3592, + "id": 3596, + "nodeType": "Return", + "src": "4826:27:25" + } + ] + }, + "documentation": null, + "id": 3598, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3589, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3588, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 3598, + "src": "4761:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3587, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4761:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4760:20:25" + }, + "payable": false, + "returnParameters": { + "id": 3592, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3591, + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 3598, + "src": "4802:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3590, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4802:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4801:14:25" + }, + "scope": 3813, + "src": "4742:118:25", + "stateMutability": "view", + "superFunction": 3370, + "visibility": "public" + }, + { + "body": { + "id": 3640, + "nodeType": "Block", + "src": "5276:189:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3618, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3607, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "5286:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3610, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3608, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "5295:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5295:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5286:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3616, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3602, + "src": "5334:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3611, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "5309:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3614, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3612, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "5318:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3613, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5318:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5309:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3615, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 3307, + "src": "5309: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": 3617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5309:32:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5286:55:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3619, + "nodeType": "ExpressionStatement", + "src": "5286:55:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3620, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "5351:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3622, + "indexExpression": { + "argumentTypes": null, + "id": 3621, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3600, + "src": "5360:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5351:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3627, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3602, + "src": "5383:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3623, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "5366:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3625, + "indexExpression": { + "argumentTypes": null, + "id": 3624, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3600, + "src": "5375:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5366:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 3285, + "src": "5366: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": 3628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5366:24:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5351:39:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3630, + "nodeType": "ExpressionStatement", + "src": "5351:39:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3632, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "5414:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3633, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5414:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3634, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3600, + "src": "5426:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3635, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3602, + "src": "5430: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": 3631, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3416, + "src": "5405:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5405:32:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3637, + "nodeType": "EmitStatement", + "src": "5400:37:25" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5454:4:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3606, + "id": 3639, + "nodeType": "Return", + "src": "5447:11:25" + } + ] + }, + "documentation": null, + "id": 3641, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3603, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3600, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3641, + "src": "5221:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3599, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5221:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3602, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3641, + "src": "5233:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3601, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5233:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5220:25:25" + }, + "payable": false, + "returnParameters": { + "id": 3606, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3605, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3641, + "src": "5262:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3604, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5262:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5261:14:25" + }, + "scope": 3813, + "src": "5203:262:25", + "stateMutability": "nonpayable", + "superFunction": 3388, + "visibility": "public" + }, + { + "body": { + "id": 3668, + "nodeType": "Block", + "src": "6048:127:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3650, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "6058:7:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3654, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3651, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "6066:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3652, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6066:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6058:19:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3655, + "indexExpression": { + "argumentTypes": null, + "id": 3653, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3643, + "src": "6078:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6058:28:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3656, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3645, + "src": "6089:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6058:37:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3658, + "nodeType": "ExpressionStatement", + "src": "6058:37:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3660, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "6119:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6119:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3662, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3643, + "src": "6131:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3663, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3645, + "src": "6140: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": 3659, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3424, + "src": "6110:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6110:37:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3665, + "nodeType": "EmitStatement", + "src": "6105:42:25" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6164:4:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3649, + "id": 3667, + "nodeType": "Return", + "src": "6157:11:25" + } + ] + }, + "documentation": null, + "id": 3669, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3646, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3643, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3669, + "src": "5988:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3642, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5988:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3645, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3669, + "src": "6005:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3644, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6005:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5987:30:25" + }, + "payable": false, + "returnParameters": { + "id": 3649, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3648, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3669, + "src": "6034:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3647, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6034:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6033:14:25" + }, + "scope": 3813, + "src": "5971:204:25", + "stateMutability": "nonpayable", + "superFunction": 3397, + "visibility": "public" + }, + { + "body": { + "id": 3727, + "nodeType": "Block", + "src": "6798:246:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3680, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "6808:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3682, + "indexExpression": { + "argumentTypes": null, + "id": 3681, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "6817:4:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6808:14:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3687, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3675, + "src": "6844:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3683, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "6825:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3685, + "indexExpression": { + "argumentTypes": null, + "id": 3684, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "6834:4:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6825:14:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 3307, + "src": "6825: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": 3688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6825:26:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6808:43:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3690, + "nodeType": "ExpressionStatement", + "src": "6808:43:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3706, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3691, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "6861:7:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3695, + "indexExpression": { + "argumentTypes": null, + "id": 3692, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "6869:4:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6861:13:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3696, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3693, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "6875:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6875:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6861:25:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3704, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3675, + "src": "6919: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": 3697, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "6889:7:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3699, + "indexExpression": { + "argumentTypes": null, + "id": 3698, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "6897:4:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6889:13:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3702, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3700, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "6903:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3701, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6903:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6889:25:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 3307, + "src": "6889: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": 3705, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6889:37:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6861:65:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3707, + "nodeType": "ExpressionStatement", + "src": "6861:65:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3708, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "6936:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3710, + "indexExpression": { + "argumentTypes": null, + "id": 3709, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3673, + "src": "6945:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6936:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3715, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3675, + "src": "6968:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3711, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "6951:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3713, + "indexExpression": { + "argumentTypes": null, + "id": 3712, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3673, + "src": "6960:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6951:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 3285, + "src": "6951: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": 3716, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6951:24:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6936:39:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3718, + "nodeType": "ExpressionStatement", + "src": "6936:39:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3720, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "6999:4:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3721, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3673, + "src": "7005:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3722, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3675, + "src": "7009: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": 3719, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3416, + "src": "6990:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6990:26:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3724, + "nodeType": "EmitStatement", + "src": "6985:31:25" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3725, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7033:4:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3679, + "id": 3726, + "nodeType": "Return", + "src": "7026:11:25" + } + ] + }, + "documentation": null, + "id": 3728, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3676, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3671, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3728, + "src": "6729:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3670, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6729:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3673, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3728, + "src": "6743:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3672, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6743:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3675, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3728, + "src": "6755:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3674, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6755:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6728:39:25" + }, + "payable": false, + "returnParameters": { + "id": 3679, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3678, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3728, + "src": "6784:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3677, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6784:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6783:14:25" + }, + "scope": 3813, + "src": "6707:337:25", + "stateMutability": "nonpayable", + "superFunction": 3408, + "visibility": "public" + }, + { + "body": { + "id": 3743, + "nodeType": "Block", + "src": "7418:52:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3737, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "7435:7:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3739, + "indexExpression": { + "argumentTypes": null, + "id": 3738, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3730, + "src": "7443:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7435:19:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3741, + "indexExpression": { + "argumentTypes": null, + "id": 3740, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3732, + "src": "7455:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7435:28:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3736, + "id": 3742, + "nodeType": "Return", + "src": "7428:35:25" + } + ] + }, + "documentation": null, + "id": 3744, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3733, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3730, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 3744, + "src": "7344:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3729, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7344:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3732, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3744, + "src": "7364:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3731, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7364:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7343:37:25" + }, + "payable": false, + "returnParameters": { + "id": 3736, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3735, + "name": "remaining", + "nodeType": "VariableDeclaration", + "scope": 3744, + "src": "7402:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3734, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7402:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7401:16:25" + }, + "scope": 3813, + "src": "7325:145:25", + "stateMutability": "view", + "superFunction": 3379, + "visibility": "public" + }, + { + "body": { + "id": 3784, + "nodeType": "Block", + "src": "7926:216:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3755, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "7936:7:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3759, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3756, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "7944:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7944:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7936:19:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3760, + "indexExpression": { + "argumentTypes": null, + "id": 3758, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3746, + "src": "7956:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7936:28:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3761, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3748, + "src": "7967:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7936:37:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3763, + "nodeType": "ExpressionStatement", + "src": "7936:37:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3765, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "7997:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7997:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3767, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3746, + "src": "8009:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3768, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3748, + "src": "8018: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": 3764, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3424, + "src": "7988:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7988:37:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3770, + "nodeType": "EmitStatement", + "src": "7983:42:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3775, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "8083:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8083:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3777, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3748, + "src": "8095:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3778, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3907, + "src": "8103:4:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TestToken_$3813", + "typeString": "contract TestToken" + } + }, + { + "argumentTypes": null, + "id": 3779, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3750, + "src": "8109: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$_TestToken_$3813", + "typeString": "contract TestToken" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3772, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3746, + "src": "8058:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3771, + "name": "ApproveAndCallFallBack", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3437, + "src": "8035:22:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3437_$", + "typeString": "type(contract ApproveAndCallFallBack)" + } + }, + "id": 3773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8035:31:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3437", + "typeString": "contract ApproveAndCallFallBack" + } + }, + "id": 3774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "receiveApproval", + "nodeType": "MemberAccess", + "referencedDeclaration": 3436, + "src": "8035: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": 3780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8035:79:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3781, + "nodeType": "ExpressionStatement", + "src": "8035:79:25" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3782, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8131:4:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3754, + "id": 3783, + "nodeType": "Return", + "src": "8124:11:25" + } + ] + }, + "documentation": null, + "id": 3785, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approveAndCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3751, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3746, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3785, + "src": "7854:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3745, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7854:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3748, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3785, + "src": "7871:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3747, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7871:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3750, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 3785, + "src": "7884:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3749, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7884:5:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7853:42:25" + }, + "payable": false, + "returnParameters": { + "id": 3754, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3753, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3785, + "src": "7912:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3752, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7912:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7911:14:25" + }, + "scope": 3813, + "src": "7830:312:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3791, + "nodeType": "Block", + "src": "8360:25:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3788, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3833, + 3834 + ], + "referencedDeclaration": 3833, + "src": "8370:6:25", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 3789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8370:8:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3790, + "nodeType": "ExpressionStatement", + "src": "8370:8:25" + } + ] + }, + "documentation": null, + "id": 3792, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3786, + "nodeType": "ParameterList", + "parameters": [], + "src": "8342:2:25" + }, + "payable": true, + "returnParameters": { + "id": 3787, + "nodeType": "ParameterList", + "parameters": [], + "src": "8360:0:25" + }, + "scope": 3813, + "src": "8333:52:25", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3811, + "nodeType": "Block", + "src": "8723:76:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3807, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "8778:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3808, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3796, + "src": "8785: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": 3804, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3794, + "src": "8755:12:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3803, + "name": "ERC20Interface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3425, + "src": "8740:14:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3425_$", + "typeString": "type(contract ERC20Interface)" + } + }, + "id": 3805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8740:28:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Interface_$3425", + "typeString": "contract ERC20Interface" + } + }, + "id": 3806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 3388, + "src": "8740:37:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 3809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8740:52:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3802, + "id": 3810, + "nodeType": "Return", + "src": "8733:59:25" + } + ] + }, + "documentation": null, + "id": 3812, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 3799, + "modifierName": { + "argumentTypes": null, + "id": 3798, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "8690:9:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "8690:9:25" + } + ], + "name": "transferAnyERC20Token", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3797, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3794, + "name": "tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 3812, + "src": "8648:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3793, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8648:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3796, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3812, + "src": "8670:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3795, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8670:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8647:35:25" + }, + "payable": false, + "returnParameters": { + "id": 3802, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3801, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3812, + "src": "8709:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3800, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8709:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8708:14:25" + }, + "scope": 3813, + "src": "8617:182:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 3814, + "src": "3506:5295:25" + } + ], + "src": "0:8801:25" + }, + "legacyAST": { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", + "exportedSymbols": { + "ApproveAndCallFallBack": [ + 3437 + ], + "ERC20Interface": [ + 3425 + ], + "Owned": [ + 3506 + ], + "SafeMath": [ + 3358 + ], + "TestToken": [ + 3813 + ] + }, + "id": 3814, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3263, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:25" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 3358, + "linearizedBaseContracts": [ + 3358 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 3284, + "nodeType": "Block", + "src": "719:51:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3272, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3270, + "src": "729:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3273, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3265, + "src": "733:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 3274, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3267, + "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": 3277, + "nodeType": "ExpressionStatement", + "src": "729:9:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3279, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3270, + "src": "756:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 3280, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3265, + "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": 3278, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "748:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "748:15:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3283, + "nodeType": "ExpressionStatement", + "src": "748:15:25" + } + ] + }, + "documentation": null, + "id": 3285, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3268, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3265, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 3285, + "src": "672:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3264, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "672:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3267, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3285, + "src": "680:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3266, + "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": 3271, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3270, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 3285, + "src": "711:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3269, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "711:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "710:8:25" + }, + "scope": 3358, + "src": "659:111:25", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3306, + "nodeType": "Block", + "src": "835:51:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3295, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3289, + "src": "853:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 3296, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3287, + "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": 3294, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "845:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "845:15:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3299, + "nodeType": "ExpressionStatement", + "src": "845:15:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3300, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3292, + "src": "870:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3301, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3287, + "src": "874:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 3302, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3289, + "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": 3305, + "nodeType": "ExpressionStatement", + "src": "870:9:25" + } + ] + }, + "documentation": null, + "id": 3307, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3290, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3287, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 3307, + "src": "788:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3286, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "788:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3289, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3307, + "src": "796:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3288, + "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": 3293, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3292, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 3307, + "src": "827:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3291, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "827:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "826:8:25" + }, + "scope": 3358, + "src": "775:111:25", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3334, + "nodeType": "Block", + "src": "951:65:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3316, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3314, + "src": "961:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3317, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3309, + "src": "965:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 3318, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3311, + "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": 3321, + "nodeType": "ExpressionStatement", + "src": "961:9:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3323, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3309, + "src": "988:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3324, + "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": 3330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3326, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3314, + "src": "998:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 3327, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3309, + "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": 3329, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3311, + "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": 3322, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "980:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "980:29:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3333, + "nodeType": "ExpressionStatement", + "src": "980:29:25" + } + ] + }, + "documentation": null, + "id": 3335, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3312, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3309, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 3335, + "src": "904:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3308, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "904:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3311, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3335, + "src": "912:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3310, + "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": 3315, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3314, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 3335, + "src": "943:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3313, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "943:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "942:8:25" + }, + "scope": 3358, + "src": "891:125:25", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3356, + "nodeType": "Block", + "src": "1081:50:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3345, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3339, + "src": "1099:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3346, + "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": 3344, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "1091:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1091:14:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3349, + "nodeType": "ExpressionStatement", + "src": "1091:14:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3350, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3342, + "src": "1115:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3351, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3337, + "src": "1119:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 3352, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3339, + "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": 3355, + "nodeType": "ExpressionStatement", + "src": "1115:9:25" + } + ] + }, + "documentation": null, + "id": 3357, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3340, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3337, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 3357, + "src": "1034:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3336, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1034:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3339, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3357, + "src": "1042:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3338, + "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": 3343, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3342, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 3357, + "src": "1073:6:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3341, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1073:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1072:8:25" + }, + "scope": 3358, + "src": "1021:110:25", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 3814, + "src": "636:497:25" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 3425, + "linearizedBaseContracts": [ + 3425 + ], + "name": "ERC20Interface", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 3363, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3359, + "nodeType": "ParameterList", + "parameters": [], + "src": "1445:2:25" + }, + "payable": false, + "returnParameters": { + "id": 3362, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3361, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3363, + "src": "1473:4:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3360, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1473:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1472:6:25" + }, + "scope": 3425, + "src": "1425:54:25", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 3370, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3366, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3365, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 3370, + "src": "1503:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3364, + "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": 3369, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3368, + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 3370, + "src": "1548:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3367, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1548:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1547:14:25" + }, + "scope": 3425, + "src": "1484:78:25", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 3379, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3375, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3372, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 3379, + "src": "1586:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3371, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1586:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3374, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3379, + "src": "1606:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3373, + "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": 3378, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3377, + "name": "remaining", + "nodeType": "VariableDeclaration", + "scope": 3379, + "src": "1648:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3376, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1648:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1647:16:25" + }, + "scope": 3425, + "src": "1567:97:25", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 3388, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3384, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3381, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3388, + "src": "1687:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3380, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1687:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3383, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3388, + "src": "1699:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3382, + "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": 3387, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3386, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3388, + "src": "1728:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3385, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1728:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1727:14:25" + }, + "scope": 3425, + "src": "1669:73:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 3397, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3393, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3390, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3397, + "src": "1764:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3389, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1764:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3392, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3397, + "src": "1781:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3391, + "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": 3396, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3395, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3397, + "src": "1810:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3394, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1810:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1809:14:25" + }, + "scope": 3425, + "src": "1747:77:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 3408, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3404, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3399, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3408, + "src": "1851:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3398, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1851:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3401, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3408, + "src": "1865:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3400, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1865:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3403, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3408, + "src": "1877:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3402, + "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": 3407, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3406, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3408, + "src": "1906:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3405, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1906:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1905:14:25" + }, + "scope": 3425, + "src": "1829:91:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 3416, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 3415, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3410, + "indexed": true, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3416, + "src": "1941:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3409, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1941:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3412, + "indexed": true, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3416, + "src": "1963:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3411, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1963:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3414, + "indexed": false, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3416, + "src": "1983:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3413, + "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": 3424, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 3423, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3418, + "indexed": true, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 3424, + "src": "2016:26:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3417, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2016:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3420, + "indexed": true, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3424, + "src": "2044:23:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3419, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2044:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3422, + "indexed": false, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3424, + "src": "2069:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3421, + "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": 3814, + "src": "1395:689:25" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 3437, + "linearizedBaseContracts": [ + 3437 + ], + "name": "ApproveAndCallFallBack", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 3436, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "receiveApproval", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3434, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3427, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3436, + "src": "2416:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3426, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2416:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3429, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3436, + "src": "2430:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3428, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2430:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3431, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 3436, + "src": "2446:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3430, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2446:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3433, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 3436, + "src": "2461:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3432, + "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": 3435, + "nodeType": "ParameterList", + "parameters": [], + "src": "2479:0:25" + }, + "scope": 3437, + "src": "2391:89:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 3814, + "src": "2353:129:25" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 3506, + "linearizedBaseContracts": [ + 3506 + ], + "name": "Owned", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 3439, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 3506, + "src": "2684:20:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3438, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2684:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3441, + "name": "newOwner", + "nodeType": "VariableDeclaration", + "scope": 3506, + "src": "2710:23:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3440, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2710:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 3447, + "name": "OwnershipTransferred", + "nodeType": "EventDefinition", + "parameters": { + "id": 3446, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3443, + "indexed": true, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 3447, + "src": "2767:21:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3442, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2767:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3445, + "indexed": true, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 3447, + "src": "2790:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3444, + "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": 3455, + "nodeType": "Block", + "src": "2838:35:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3450, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "2848:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3451, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "2856:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3452, + "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": 3454, + "nodeType": "ExpressionStatement", + "src": "2848:18:25" + } + ] + }, + "documentation": null, + "id": 3456, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3448, + "nodeType": "ParameterList", + "parameters": [], + "src": "2828:2:25" + }, + "payable": false, + "returnParameters": { + "id": 3449, + "nodeType": "ParameterList", + "parameters": [], + "src": "2838:0:25" + }, + "scope": 3506, + "src": "2817:56:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3466, + "nodeType": "Block", + "src": "2898:56:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3459, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "2916:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3460, + "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": 3461, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "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": 3458, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "2908:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2908:28:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3464, + "nodeType": "ExpressionStatement", + "src": "2908:28:25" + }, + { + "id": 3465, + "nodeType": "PlaceholderStatement", + "src": "2946:1:25" + } + ] + }, + "documentation": null, + "id": 3467, + "name": "onlyOwner", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 3457, + "nodeType": "ParameterList", + "parameters": [], + "src": "2898:0:25" + }, + "src": "2879:75:25", + "visibility": "internal" + }, + { + "body": { + "id": 3478, + "nodeType": "Block", + "src": "3023:37:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3474, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3441, + "src": "3033:8:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3475, + "name": "_newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3469, + "src": "3044:9:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3033:20:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3477, + "nodeType": "ExpressionStatement", + "src": "3033:20:25" + } + ] + }, + "documentation": null, + "id": 3479, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 3472, + "modifierName": { + "argumentTypes": null, + "id": 3471, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "3013:9:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3013:9:25" + } + ], + "name": "transferOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3470, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3469, + "name": "_newOwner", + "nodeType": "VariableDeclaration", + "scope": 3479, + "src": "2987:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3468, + "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": 3473, + "nodeType": "ParameterList", + "parameters": [], + "src": "3023:0:25" + }, + "scope": 3506, + "src": "2960:100:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3504, + "nodeType": "Block", + "src": "3099:157:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3483, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "3117:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3484, + "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": 3485, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3441, + "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": 3482, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3831, + 3832 + ], + "referencedDeclaration": 3831, + "src": "3109:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3109:31:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3488, + "nodeType": "ExpressionStatement", + "src": "3109:31:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3490, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "3176:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3491, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3441, + "src": "3183:8:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3489, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3447, + "src": "3155:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 3492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3155:37:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3493, + "nodeType": "EmitStatement", + "src": "3150:42:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3494, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "3202:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3495, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3441, + "src": "3210:8:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3202:16:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3497, + "nodeType": "ExpressionStatement", + "src": "3202:16:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3498, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3441, + "src": "3228:8:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3500, + "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": 3499, + "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": 3501, + "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": 3503, + "nodeType": "ExpressionStatement", + "src": "3228:21:25" + } + ] + }, + "documentation": null, + "id": 3505, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "acceptOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3480, + "nodeType": "ParameterList", + "parameters": [], + "src": "3089:2:25" + }, + "payable": false, + "returnParameters": { + "id": 3481, + "nodeType": "ParameterList", + "parameters": [], + "src": "3099:0:25" + }, + "scope": 3506, + "src": "3065:191:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 3814, + "src": "2663:595:25" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 3507, + "name": "ERC20Interface", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3425, + "src": "3528:14:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Interface_$3425", + "typeString": "contract ERC20Interface" + } + }, + "id": 3508, + "nodeType": "InheritanceSpecifier", + "src": "3528:14:25" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 3509, + "name": "Owned", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3506, + "src": "3544:5:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Owned_$3506", + "typeString": "contract Owned" + } + }, + "id": 3510, + "nodeType": "InheritanceSpecifier", + "src": "3544:5:25" + } + ], + "contractDependencies": [ + 3425, + 3506 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 3813, + "linearizedBaseContracts": [ + 3813, + 3506, + 3425 + ], + "name": "TestToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 3513, + "libraryName": { + "contractScope": null, + "id": 3511, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3358, + "src": "3562:8:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$3358", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "3556:24:25", + "typeName": { + "id": 3512, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3575:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 3515, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3586:20:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3514, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3586:6:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3517, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3612:19:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3516, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3612:6:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3519, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3637:21:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 3518, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3637:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3521, + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3664:17:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3520, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3664:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3525, + "name": "balances", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3688:33:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 3524, + "keyType": { + "id": 3522, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3696:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3688:24:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 3523, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3707:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3531, + "name": "allowed", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "3727: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": 3530, + "keyType": { + "id": 3526, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3735:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3727:44:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 3529, + "keyType": { + "id": 3527, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3754:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3746:24:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 3528, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3765:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "body": { + "id": 3570, + "nodeType": "Block", + "src": "3987:235:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3534, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3515, + "src": "3997:6:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "544b4e", + "id": 3535, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4006:5:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66", + "typeString": "literal_string \"TKN\"" + }, + "value": "TKN" + }, + "src": "3997:14:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3537, + "nodeType": "ExpressionStatement", + "src": "3997:14:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3540, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3538, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3517, + "src": "4021:4:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "546f6b656e204578616d706c65", + "id": 3539, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4028:15:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a", + "typeString": "literal_string \"Token Example\"" + }, + "value": "Token Example" + }, + "src": "4021:22:25", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3541, + "nodeType": "ExpressionStatement", + "src": "4021:22:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3542, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3519, + "src": "4053:8:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "3138", + "id": 3543, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4064:2:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "src": "4053:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 3545, + "nodeType": "ExpressionStatement", + "src": "4053:13:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3546, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3521, + "src": "4076:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "31303030303030", + "id": 3547, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4091: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": 3552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 3548, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4101: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": 3550, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3519, + "src": "4110:8:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 3549, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4105:4:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" + }, + "id": 3551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4105:14:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4101:18:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4091:28:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4076:43:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3555, + "nodeType": "ExpressionStatement", + "src": "4076:43:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3556, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "4129:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3558, + "indexExpression": { + "argumentTypes": null, + "id": 3557, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "4138:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4129:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3559, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3521, + "src": "4147:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4129:30:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3561, + "nodeType": "ExpressionStatement", + "src": "4129:30:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3564, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4191: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": 3563, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4183:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4183:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3566, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "4195:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3567, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3521, + "src": "4202: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": 3562, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3416, + "src": "4174:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4174:41:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3569, + "nodeType": "EmitStatement", + "src": "4169:46:25" + } + ] + }, + "documentation": null, + "id": 3571, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3532, + "nodeType": "ParameterList", + "parameters": [], + "src": "3977:2:25" + }, + "payable": false, + "returnParameters": { + "id": 3533, + "nodeType": "ParameterList", + "parameters": [], + "src": "3987:0:25" + }, + "scope": 3813, + "src": "3966:256:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3585, + "nodeType": "Block", + "src": "4459:62:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3578, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "4493:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3582, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3580, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4510: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": 3579, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4502:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3581, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4502:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4493:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 3576, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3521, + "src": "4476:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3577, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 3307, + "src": "4476: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": 3583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4476:38:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3575, + "id": 3584, + "nodeType": "Return", + "src": "4469:45:25" + } + ] + }, + "documentation": null, + "id": 3586, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3572, + "nodeType": "ParameterList", + "parameters": [], + "src": "4429:2:25" + }, + "payable": false, + "returnParameters": { + "id": 3575, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3574, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3586, + "src": "4453:4:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3573, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4453:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4452:6:25" + }, + "scope": 3813, + "src": "4409:112:25", + "stateMutability": "view", + "superFunction": 3363, + "visibility": "public" + }, + { + "body": { + "id": 3597, + "nodeType": "Block", + "src": "4816:44:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3593, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "4833:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3595, + "indexExpression": { + "argumentTypes": null, + "id": 3594, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3588, + "src": "4842:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4833:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3592, + "id": 3596, + "nodeType": "Return", + "src": "4826:27:25" + } + ] + }, + "documentation": null, + "id": 3598, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3589, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3588, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 3598, + "src": "4761:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3587, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4761:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4760:20:25" + }, + "payable": false, + "returnParameters": { + "id": 3592, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3591, + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 3598, + "src": "4802:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3590, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4802:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4801:14:25" + }, + "scope": 3813, + "src": "4742:118:25", + "stateMutability": "view", + "superFunction": 3370, + "visibility": "public" + }, + { + "body": { + "id": 3640, + "nodeType": "Block", + "src": "5276:189:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3618, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3607, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "5286:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3610, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3608, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "5295:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5295:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5286:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3616, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3602, + "src": "5334:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3611, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "5309:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3614, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3612, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "5318:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3613, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5318:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5309:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3615, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 3307, + "src": "5309: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": 3617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5309:32:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5286:55:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3619, + "nodeType": "ExpressionStatement", + "src": "5286:55:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3620, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "5351:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3622, + "indexExpression": { + "argumentTypes": null, + "id": 3621, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3600, + "src": "5360:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5351:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3627, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3602, + "src": "5383:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3623, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "5366:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3625, + "indexExpression": { + "argumentTypes": null, + "id": 3624, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3600, + "src": "5375:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5366:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 3285, + "src": "5366: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": 3628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5366:24:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5351:39:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3630, + "nodeType": "ExpressionStatement", + "src": "5351:39:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3632, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "5414:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3633, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5414:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3634, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3600, + "src": "5426:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3635, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3602, + "src": "5430: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": 3631, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3416, + "src": "5405:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5405:32:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3637, + "nodeType": "EmitStatement", + "src": "5400:37:25" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5454:4:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3606, + "id": 3639, + "nodeType": "Return", + "src": "5447:11:25" + } + ] + }, + "documentation": null, + "id": 3641, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3603, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3600, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3641, + "src": "5221:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3599, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5221:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3602, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3641, + "src": "5233:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3601, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5233:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5220:25:25" + }, + "payable": false, + "returnParameters": { + "id": 3606, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3605, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3641, + "src": "5262:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3604, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5262:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5261:14:25" + }, + "scope": 3813, + "src": "5203:262:25", + "stateMutability": "nonpayable", + "superFunction": 3388, + "visibility": "public" + }, + { + "body": { + "id": 3668, + "nodeType": "Block", + "src": "6048:127:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3650, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "6058:7:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3654, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3651, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "6066:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3652, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6066:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6058:19:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3655, + "indexExpression": { + "argumentTypes": null, + "id": 3653, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3643, + "src": "6078:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6058:28:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3656, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3645, + "src": "6089:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6058:37:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3658, + "nodeType": "ExpressionStatement", + "src": "6058:37:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3660, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "6119:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6119:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3662, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3643, + "src": "6131:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3663, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3645, + "src": "6140: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": 3659, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3424, + "src": "6110:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6110:37:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3665, + "nodeType": "EmitStatement", + "src": "6105:42:25" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6164:4:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3649, + "id": 3667, + "nodeType": "Return", + "src": "6157:11:25" + } + ] + }, + "documentation": null, + "id": 3669, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3646, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3643, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3669, + "src": "5988:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3642, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5988:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3645, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3669, + "src": "6005:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3644, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6005:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5987:30:25" + }, + "payable": false, + "returnParameters": { + "id": 3649, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3648, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3669, + "src": "6034:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3647, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6034:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6033:14:25" + }, + "scope": 3813, + "src": "5971:204:25", + "stateMutability": "nonpayable", + "superFunction": 3397, + "visibility": "public" + }, + { + "body": { + "id": 3727, + "nodeType": "Block", + "src": "6798:246:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3680, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "6808:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3682, + "indexExpression": { + "argumentTypes": null, + "id": 3681, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "6817:4:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6808:14:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3687, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3675, + "src": "6844:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3683, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "6825:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3685, + "indexExpression": { + "argumentTypes": null, + "id": 3684, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "6834:4:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6825:14:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 3307, + "src": "6825: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": 3688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6825:26:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6808:43:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3690, + "nodeType": "ExpressionStatement", + "src": "6808:43:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3706, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3691, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "6861:7:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3695, + "indexExpression": { + "argumentTypes": null, + "id": 3692, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "6869:4:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6861:13:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3696, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3693, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "6875:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6875:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6861:25:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3704, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3675, + "src": "6919: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": 3697, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "6889:7:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3699, + "indexExpression": { + "argumentTypes": null, + "id": 3698, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "6897:4:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6889:13:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3702, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3700, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "6903:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3701, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6903:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6889:25:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 3307, + "src": "6889: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": 3705, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6889:37:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6861:65:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3707, + "nodeType": "ExpressionStatement", + "src": "6861:65:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 3717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3708, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "6936:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3710, + "indexExpression": { + "argumentTypes": null, + "id": 3709, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3673, + "src": "6945:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6936:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3715, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3675, + "src": "6968:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3711, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "6951:8:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3713, + "indexExpression": { + "argumentTypes": null, + "id": 3712, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3673, + "src": "6960:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6951:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 3285, + "src": "6951: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": 3716, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6951:24:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6936:39:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3718, + "nodeType": "ExpressionStatement", + "src": "6936:39:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3720, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "6999:4:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3721, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3673, + "src": "7005:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3722, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3675, + "src": "7009: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": 3719, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3416, + "src": "6990:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6990:26:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3724, + "nodeType": "EmitStatement", + "src": "6985:31:25" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3725, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7033:4:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3679, + "id": 3726, + "nodeType": "Return", + "src": "7026:11:25" + } + ] + }, + "documentation": null, + "id": 3728, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3676, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3671, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3728, + "src": "6729:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3670, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6729:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3673, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3728, + "src": "6743:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3672, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6743:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3675, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3728, + "src": "6755:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3674, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6755:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6728:39:25" + }, + "payable": false, + "returnParameters": { + "id": 3679, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3678, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3728, + "src": "6784:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3677, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6784:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6783:14:25" + }, + "scope": 3813, + "src": "6707:337:25", + "stateMutability": "nonpayable", + "superFunction": 3408, + "visibility": "public" + }, + { + "body": { + "id": 3743, + "nodeType": "Block", + "src": "7418:52:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3737, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "7435:7:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3739, + "indexExpression": { + "argumentTypes": null, + "id": 3738, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3730, + "src": "7443:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7435:19:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3741, + "indexExpression": { + "argumentTypes": null, + "id": 3740, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3732, + "src": "7455:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7435:28:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3736, + "id": 3742, + "nodeType": "Return", + "src": "7428:35:25" + } + ] + }, + "documentation": null, + "id": 3744, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3733, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3730, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 3744, + "src": "7344:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3729, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7344:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3732, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3744, + "src": "7364:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3731, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7364:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7343:37:25" + }, + "payable": false, + "returnParameters": { + "id": 3736, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3735, + "name": "remaining", + "nodeType": "VariableDeclaration", + "scope": 3744, + "src": "7402:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3734, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7402:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7401:16:25" + }, + "scope": 3813, + "src": "7325:145:25", + "stateMutability": "view", + "superFunction": 3379, + "visibility": "public" + }, + { + "body": { + "id": 3784, + "nodeType": "Block", + "src": "7926:216:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3755, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "7936:7:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3759, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3756, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "7944:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7944:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7936:19:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3760, + "indexExpression": { + "argumentTypes": null, + "id": 3758, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3746, + "src": "7956:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7936:28:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3761, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3748, + "src": "7967:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7936:37:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3763, + "nodeType": "ExpressionStatement", + "src": "7936:37:25" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3765, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "7997:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7997:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3767, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3746, + "src": "8009:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3768, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3748, + "src": "8018: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": 3764, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3424, + "src": "7988:8:25", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7988:37:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3770, + "nodeType": "EmitStatement", + "src": "7983:42:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3775, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "8083:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8083:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3777, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3748, + "src": "8095:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3778, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3907, + "src": "8103:4:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TestToken_$3813", + "typeString": "contract TestToken" + } + }, + { + "argumentTypes": null, + "id": 3779, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3750, + "src": "8109: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$_TestToken_$3813", + "typeString": "contract TestToken" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3772, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3746, + "src": "8058:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3771, + "name": "ApproveAndCallFallBack", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3437, + "src": "8035:22:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3437_$", + "typeString": "type(contract ApproveAndCallFallBack)" + } + }, + "id": 3773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8035:31:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3437", + "typeString": "contract ApproveAndCallFallBack" + } + }, + "id": 3774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "receiveApproval", + "nodeType": "MemberAccess", + "referencedDeclaration": 3436, + "src": "8035: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": 3780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8035:79:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3781, + "nodeType": "ExpressionStatement", + "src": "8035:79:25" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3782, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8131:4:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3754, + "id": 3783, + "nodeType": "Return", + "src": "8124:11:25" + } + ] + }, + "documentation": null, + "id": 3785, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approveAndCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3751, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3746, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3785, + "src": "7854:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3745, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7854:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3748, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3785, + "src": "7871:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3747, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7871:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3750, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 3785, + "src": "7884:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3749, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7884:5:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7853:42:25" + }, + "payable": false, + "returnParameters": { + "id": 3754, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3753, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3785, + "src": "7912:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3752, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7912:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7911:14:25" + }, + "scope": 3813, + "src": "7830:312:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3791, + "nodeType": "Block", + "src": "8360:25:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3788, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3833, + 3834 + ], + "referencedDeclaration": 3833, + "src": "8370:6:25", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 3789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8370:8:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3790, + "nodeType": "ExpressionStatement", + "src": "8370:8:25" + } + ] + }, + "documentation": null, + "id": 3792, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3786, + "nodeType": "ParameterList", + "parameters": [], + "src": "8342:2:25" + }, + "payable": true, + "returnParameters": { + "id": 3787, + "nodeType": "ParameterList", + "parameters": [], + "src": "8360:0:25" + }, + "scope": 3813, + "src": "8333:52:25", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3811, + "nodeType": "Block", + "src": "8723:76:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3807, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3439, + "src": "8778:5:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3808, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3796, + "src": "8785: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": 3804, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3794, + "src": "8755:12:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3803, + "name": "ERC20Interface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3425, + "src": "8740:14:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3425_$", + "typeString": "type(contract ERC20Interface)" + } + }, + "id": 3805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8740:28:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Interface_$3425", + "typeString": "contract ERC20Interface" + } + }, + "id": 3806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 3388, + "src": "8740:37:25", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 3809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8740:52:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3802, + "id": 3810, + "nodeType": "Return", + "src": "8733:59:25" + } + ] + }, + "documentation": null, + "id": 3812, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 3799, + "modifierName": { + "argumentTypes": null, + "id": 3798, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "8690:9:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "8690:9:25" + } + ], + "name": "transferAnyERC20Token", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3797, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3794, + "name": "tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 3812, + "src": "8648:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3793, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8648:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3796, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 3812, + "src": "8670:11:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3795, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8670:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8647:35:25" + }, + "payable": false, + "returnParameters": { + "id": 3802, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3801, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 3812, + "src": "8709:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3800, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8709:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8708:14:25" + }, + "scope": 3813, + "src": "8617:182:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 3814, + "src": "3506:5295:25" + } + ], + "src": "0:8801:25" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-08-20T07:44:41.107Z" +} \ No newline at end of file diff --git a/safe-contracts/build/contracts/test/TestToken.json b/safe-contracts/build/contracts/test/TestToken.json index 948f0b79c2..11d47144dd 100644 --- a/safe-contracts/build/contracts/test/TestToken.json +++ b/safe-contracts/build/contracts/test/TestToken.json @@ -348,34 +348,34 @@ ], "bytecode": "0x60806040523480156200001157600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040805190810160405280600381526020017f544b4e0000000000000000000000000000000000000000000000000000000000815250600290805190602001906200009f92919062000221565b506040805190810160405280600d81526020017f546f6b656e204578616d706c650000000000000000000000000000000000000081525060039080519060200190620000ed92919062000221565b506012600460006101000a81548160ff021916908360ff160217905550600460009054906101000a900460ff1660ff16600a0a620f424002600581905550600554600660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6005546040518082815260200191505060405180910390a3620002d0565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200026457805160ff191683800117855562000295565b8280016001018555821562000295579182015b828111156200029457825182559160200191906001019062000277565b5b509050620002a49190620002a8565b5090565b620002cd91905b80821115620002c9576000816000905550600101620002af565b5090565b90565b6114e380620002e06000396000f3006080604052600436106100db576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100e0578063095ea7b31461017057806318160ddd146101d557806323b872dd14610200578063313ce5671461028557806370a08231146102b657806379ba50971461030d5780638da5cb5b1461032457806395d89b411461037b578063a9059cbb1461040b578063cae9ca5114610470578063d4ee1d901461051b578063dc39d06d14610572578063dd62ed3e146105d7578063f2fde38b1461064e575b600080fd5b3480156100ec57600080fd5b506100f5610691565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561013557808201518184015260208101905061011a565b50505050905090810190601f1680156101625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561017c57600080fd5b506101bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061072f565b604051808215151515815260200191505060405180910390f35b3480156101e157600080fd5b506101ea610821565b6040518082815260200191505060405180910390f35b34801561020c57600080fd5b5061026b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061087c565b604051808215151515815260200191505060405180910390f35b34801561029157600080fd5b5061029a610b27565b604051808260ff1660ff16815260200191505060405180910390f35b3480156102c257600080fd5b506102f7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b3a565b6040518082815260200191505060405180910390f35b34801561031957600080fd5b50610322610b83565b005b34801561033057600080fd5b50610339610d22565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561038757600080fd5b50610390610d47565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103d05780820151818401526020810190506103b5565b50505050905090810190601f1680156103fd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561041757600080fd5b50610456600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610de5565b604051808215151515815260200191505060405180910390f35b34801561047c57600080fd5b50610501600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610f80565b604051808215151515815260200191505060405180910390f35b34801561052757600080fd5b506105306111cf565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561057e57600080fd5b506105bd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111f5565b604051808215151515815260200191505060405180910390f35b3480156105e357600080fd5b50610638600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611359565b6040518082815260200191505060405180910390f35b34801561065a57600080fd5b5061068f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113e0565b005b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107275780601f106106fc57610100808354040283529160200191610727565b820191906000526020600020905b81548152906001019060200180831161070a57829003601f168201915b505050505081565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000610877600660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460055461147f90919063ffffffff16565b905090565b60006108d082600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461147f90919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109a282600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461147f90919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a7482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461149b90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600460009054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bdf57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ddd5780601f10610db257610100808354040283529160200191610ddd565b820191906000526020600020905b815481529060010190602001808311610dc057829003601f168201915b505050505081565b6000610e3982600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461147f90919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ece82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461149b90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600082600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561115d578082015181840152602081019050611142565b50505050905090810190601f16801561118a5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156111ac57600080fd5b505af11580156111c0573d6000803e3d6000fd5b50505050600190509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561125257600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561131657600080fd5b505af115801561132a573d6000803e3d6000fd5b505050506040513d602081101561134057600080fd5b8101908080519060200190929190505050905092915050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561143b57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600082821115151561149057600080fd5b818303905092915050565b600081830190508281101515156114b157600080fd5b929150505600a165627a7a72305820e93a82d67ce3df799c1bfea59d7f6b269216cff0ed6e6c3d0c4b551065d3f5aa0029", "deployedBytecode": "0x6080604052600436106100db576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100e0578063095ea7b31461017057806318160ddd146101d557806323b872dd14610200578063313ce5671461028557806370a08231146102b657806379ba50971461030d5780638da5cb5b1461032457806395d89b411461037b578063a9059cbb1461040b578063cae9ca5114610470578063d4ee1d901461051b578063dc39d06d14610572578063dd62ed3e146105d7578063f2fde38b1461064e575b600080fd5b3480156100ec57600080fd5b506100f5610691565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561013557808201518184015260208101905061011a565b50505050905090810190601f1680156101625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561017c57600080fd5b506101bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061072f565b604051808215151515815260200191505060405180910390f35b3480156101e157600080fd5b506101ea610821565b6040518082815260200191505060405180910390f35b34801561020c57600080fd5b5061026b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061087c565b604051808215151515815260200191505060405180910390f35b34801561029157600080fd5b5061029a610b27565b604051808260ff1660ff16815260200191505060405180910390f35b3480156102c257600080fd5b506102f7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b3a565b6040518082815260200191505060405180910390f35b34801561031957600080fd5b50610322610b83565b005b34801561033057600080fd5b50610339610d22565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561038757600080fd5b50610390610d47565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103d05780820151818401526020810190506103b5565b50505050905090810190601f1680156103fd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561041757600080fd5b50610456600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610de5565b604051808215151515815260200191505060405180910390f35b34801561047c57600080fd5b50610501600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610f80565b604051808215151515815260200191505060405180910390f35b34801561052757600080fd5b506105306111cf565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561057e57600080fd5b506105bd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111f5565b604051808215151515815260200191505060405180910390f35b3480156105e357600080fd5b50610638600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611359565b6040518082815260200191505060405180910390f35b34801561065a57600080fd5b5061068f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113e0565b005b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107275780601f106106fc57610100808354040283529160200191610727565b820191906000526020600020905b81548152906001019060200180831161070a57829003601f168201915b505050505081565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000610877600660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460055461147f90919063ffffffff16565b905090565b60006108d082600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461147f90919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109a282600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461147f90919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a7482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461149b90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600460009054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bdf57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ddd5780601f10610db257610100808354040283529160200191610ddd565b820191906000526020600020905b815481529060010190602001808311610dc057829003601f168201915b505050505081565b6000610e3982600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461147f90919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ece82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461149b90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600082600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561115d578082015181840152602081019050611142565b50505050905090810190601f16801561118a5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156111ac57600080fd5b505af11580156111c0573d6000803e3d6000fd5b50505050600190509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561125257600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561131657600080fd5b505af115801561132a573d6000803e3d6000fd5b505050506040513d602081101561134057600080fd5b8101908080519060200190929190505050905092915050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561143b57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600082821115151561149057600080fd5b818303905092915050565b600081830190508281101515156114b157600080fd5b929150505600a165627a7a72305820e93a82d67ce3df799c1bfea59d7f6b269216cff0ed6e6c3d0c4b551065d3f5aa0029", - "sourceMap": "3506:5295:1:-;;;3966:256;8:9:-1;5:2;;;30:1;27;20:12;5:2;3966:256:1;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:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8370:8;;;3612:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3612:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5971:204;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5971:204:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4409:112;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4409:112:1;;;;;;;;;;;;;;;;;;;;;;;6707:337;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6707:337:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3637:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3637:21:1;;;;;;;;;;;;;;;;;;;;;;;;;;;4742:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4742:118:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3065:191;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3065:191:1;;;;;;2684:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2684:20:1;;;;;;;;;;;;;;;;;;;;;;;;;;;3586;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3586:20:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5203:262;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5203:262:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7830:312;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7830:312:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2710:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2710:23:1;;;;;;;;;;;;;;;;;;;;;;;;;;;8617:182;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8617:182:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7325:145;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7325:145:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2960:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2960:100:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8035:79:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8035:79:1;;;;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:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8740:52:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8740:52:1;;;;;;;;;;;;;;;;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", + "sourceMap": "3506:5295:25:-;;;3966:256;8:9:-1;5:2;;;30:1;27;20:12;5:2;3966:256:25;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:25:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8370:8;;;3612:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3612:19: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;3612:19:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5971:204;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5971:204:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4409:112;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4409:112:25;;;;;;;;;;;;;;;;;;;;;;;6707:337;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6707:337:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3637:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3637:21:25;;;;;;;;;;;;;;;;;;;;;;;;;;;4742:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4742: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;;;;;;;;;;;;;;;;;;;;;;;;;;;3586;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3586:20: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;3586:20:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5203:262;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5203:262:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7830:312;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7830:312:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2710:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2710:23:25;;;;;;;;;;;;;;;;;;;;;;;;;;;8617:182;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8617:182:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7325:145;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7325:145:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2960:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2960:100:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8035:79:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8035:79:25;;;;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:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8740:52:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8740:52:25;;;;;;;;;;;;;;;;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": [ - 715 + 3437 ], "ERC20Interface": [ - 703 + 3425 ], "Owned": [ - 784 + 3506 ], "SafeMath": [ - 636 + 3358 ], "TestToken": [ - 1091 + 3813 ] }, - "id": 1092, + "id": 3814, "nodeType": "SourceUnit", "nodes": [ { - "id": 541, + "id": 3263, "literals": [ "solidity", "^", @@ -383,7 +383,7 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:1" + "src": "0:24:25" }, { "baseContracts": [], @@ -391,35 +391,35 @@ "contractKind": "library", "documentation": null, "fullyImplemented": true, - "id": 636, + "id": 3358, "linearizedBaseContracts": [ - 636 + 3358 ], "name": "SafeMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 562, + "id": 3284, "nodeType": "Block", - "src": "719:51:1", + "src": "719:51:25", "statements": [ { "expression": { "argumentTypes": null, - "id": 554, + "id": 3276, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 550, + "id": 3272, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "729:1:1", + "referencedDeclaration": 3270, + "src": "729:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -433,19 +433,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 553, + "id": 3275, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 551, + "id": 3273, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 543, - "src": "733:1:1", + "referencedDeclaration": 3265, + "src": "733:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -455,32 +455,32 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 552, + "id": 3274, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 545, - "src": "737:1:1", + "referencedDeclaration": 3267, + "src": "737:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "733:5:1", + "src": "733:5:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "729:9:1", + "src": "729:9:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 555, + "id": 3277, "nodeType": "ExpressionStatement", - "src": "729:9:1" + "src": "729:9:25" }, { "expression": { @@ -492,19 +492,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 559, + "id": 3281, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 557, + "id": 3279, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "756:1:1", + "referencedDeclaration": 3270, + "src": "756:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -514,18 +514,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 558, + "id": 3280, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 543, - "src": "761:1:1", + "referencedDeclaration": 3265, + "src": "761:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "756:6:1", + "src": "756:6:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -539,21 +539,21 @@ "typeString": "bool" } ], - "id": 556, + "id": 3278, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1109, - 1110 + 3831, + 3832 ], - "referencedDeclaration": 1109, - "src": "748:7:1", + "referencedDeclaration": 3831, + "src": "748:7:25", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 560, + "id": 3282, "isConstant": false, "isLValue": false, "isPure": false, @@ -561,20 +561,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "748:15:1", + "src": "748:15:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 561, + "id": 3283, "nodeType": "ExpressionStatement", - "src": "748:15:1" + "src": "748:15:25" } ] }, "documentation": null, - "id": 563, + "id": 3285, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -582,16 +582,16 @@ "name": "add", "nodeType": "FunctionDefinition", "parameters": { - "id": 546, + "id": 3268, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 543, + "id": 3265, "name": "a", "nodeType": "VariableDeclaration", - "scope": 563, - "src": "672:6:1", + "scope": 3285, + "src": "672:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -599,10 +599,10 @@ "typeString": "uint256" }, "typeName": { - "id": 542, + "id": 3264, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "672:4:1", + "src": "672:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -613,11 +613,11 @@ }, { "constant": false, - "id": 545, + "id": 3267, "name": "b", "nodeType": "VariableDeclaration", - "scope": 563, - "src": "680:6:1", + "scope": 3285, + "src": "680:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -625,10 +625,10 @@ "typeString": "uint256" }, "typeName": { - "id": 544, + "id": 3266, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "680:4:1", + "src": "680:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -638,20 +638,20 @@ "visibility": "internal" } ], - "src": "671:16:1" + "src": "671:16:25" }, "payable": false, "returnParameters": { - "id": 549, + "id": 3271, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 548, + "id": 3270, "name": "c", "nodeType": "VariableDeclaration", - "scope": 563, - "src": "711:6:1", + "scope": 3285, + "src": "711:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -659,10 +659,10 @@ "typeString": "uint256" }, "typeName": { - "id": 547, + "id": 3269, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "711:4:1", + "src": "711:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -672,19 +672,19 @@ "visibility": "internal" } ], - "src": "710:8:1" + "src": "710:8:25" }, - "scope": 636, - "src": "659:111:1", + "scope": 3358, + "src": "659:111:25", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 584, + "id": 3306, "nodeType": "Block", - "src": "835:51:1", + "src": "835:51:25", "statements": [ { "expression": { @@ -696,19 +696,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 575, + "id": 3297, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 573, + "id": 3295, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 567, - "src": "853:1:1", + "referencedDeclaration": 3289, + "src": "853:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -718,18 +718,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 574, + "id": 3296, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 565, - "src": "858:1:1", + "referencedDeclaration": 3287, + "src": "858:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "853:6:1", + "src": "853:6:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -743,21 +743,21 @@ "typeString": "bool" } ], - "id": 572, + "id": 3294, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1109, - 1110 + 3831, + 3832 ], - "referencedDeclaration": 1109, - "src": "845:7:1", + "referencedDeclaration": 3831, + "src": "845:7:25", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 576, + "id": 3298, "isConstant": false, "isLValue": false, "isPure": false, @@ -765,32 +765,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "845:15:1", + "src": "845:15:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 577, + "id": 3299, "nodeType": "ExpressionStatement", - "src": "845:15:1" + "src": "845:15:25" }, { "expression": { "argumentTypes": null, - "id": 582, + "id": 3304, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 578, + "id": 3300, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 570, - "src": "870:1:1", + "referencedDeclaration": 3292, + "src": "870:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -804,19 +804,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 581, + "id": 3303, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 579, + "id": 3301, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 565, - "src": "874:1:1", + "referencedDeclaration": 3287, + "src": "874:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -826,37 +826,37 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 580, + "id": 3302, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 567, - "src": "878:1:1", + "referencedDeclaration": 3289, + "src": "878:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "874:5:1", + "src": "874:5:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "870:9:1", + "src": "870:9:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 583, + "id": 3305, "nodeType": "ExpressionStatement", - "src": "870:9:1" + "src": "870:9:25" } ] }, "documentation": null, - "id": 585, + "id": 3307, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -864,16 +864,16 @@ "name": "sub", "nodeType": "FunctionDefinition", "parameters": { - "id": 568, + "id": 3290, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 565, + "id": 3287, "name": "a", "nodeType": "VariableDeclaration", - "scope": 585, - "src": "788:6:1", + "scope": 3307, + "src": "788:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -881,10 +881,10 @@ "typeString": "uint256" }, "typeName": { - "id": 564, + "id": 3286, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "788:4:1", + "src": "788:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -895,11 +895,11 @@ }, { "constant": false, - "id": 567, + "id": 3289, "name": "b", "nodeType": "VariableDeclaration", - "scope": 585, - "src": "796:6:1", + "scope": 3307, + "src": "796:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -907,10 +907,10 @@ "typeString": "uint256" }, "typeName": { - "id": 566, + "id": 3288, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "796:4:1", + "src": "796:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -920,20 +920,20 @@ "visibility": "internal" } ], - "src": "787:16:1" + "src": "787:16:25" }, "payable": false, "returnParameters": { - "id": 571, + "id": 3293, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 570, + "id": 3292, "name": "c", "nodeType": "VariableDeclaration", - "scope": 585, - "src": "827:6:1", + "scope": 3307, + "src": "827:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -941,10 +941,10 @@ "typeString": "uint256" }, "typeName": { - "id": 569, + "id": 3291, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "827:4:1", + "src": "827:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -954,36 +954,36 @@ "visibility": "internal" } ], - "src": "826:8:1" + "src": "826:8:25" }, - "scope": 636, - "src": "775:111:1", + "scope": 3358, + "src": "775:111:25", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 612, + "id": 3334, "nodeType": "Block", - "src": "951:65:1", + "src": "951:65:25", "statements": [ { "expression": { "argumentTypes": null, - "id": 598, + "id": 3320, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 594, + "id": 3316, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 592, - "src": "961:1:1", + "referencedDeclaration": 3314, + "src": "961:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -997,19 +997,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 597, + "id": 3319, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 595, + "id": 3317, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 587, - "src": "965:1:1", + "referencedDeclaration": 3309, + "src": "965:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1019,32 +1019,32 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 596, + "id": 3318, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 589, - "src": "969:1:1", + "referencedDeclaration": 3311, + "src": "969:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "965:5:1", + "src": "965:5:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "961:9:1", + "src": "961:9:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 599, + "id": 3321, "nodeType": "ExpressionStatement", - "src": "961:9:1" + "src": "961:9:25" }, { "expression": { @@ -1056,7 +1056,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 609, + "id": 3331, "isConstant": false, "isLValue": false, "isPure": false, @@ -1067,19 +1067,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 603, + "id": 3325, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 601, + "id": 3323, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 587, - "src": "988:1:1", + "referencedDeclaration": 3309, + "src": "988:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1090,14 +1090,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 602, + "id": 3324, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "993:1:1", + "src": "993:1:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1105,7 +1105,7 @@ }, "value": "0" }, - "src": "988:6:1", + "src": "988:6:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1119,7 +1119,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 608, + "id": 3330, "isConstant": false, "isLValue": false, "isPure": false, @@ -1130,19 +1130,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 606, + "id": 3328, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 604, + "id": 3326, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 592, - "src": "998:1:1", + "referencedDeclaration": 3314, + "src": "998:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1152,18 +1152,18 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 605, + "id": 3327, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 587, - "src": "1002:1:1", + "referencedDeclaration": 3309, + "src": "1002:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "998:5:1", + "src": "998:5:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1173,24 +1173,24 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 607, + "id": 3329, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 589, - "src": "1007:1:1", + "referencedDeclaration": 3311, + "src": "1007:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "998:10:1", + "src": "998:10:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "988:20:1", + "src": "988:20:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1204,21 +1204,21 @@ "typeString": "bool" } ], - "id": 600, + "id": 3322, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1109, - 1110 + 3831, + 3832 ], - "referencedDeclaration": 1109, - "src": "980:7:1", + "referencedDeclaration": 3831, + "src": "980:7:25", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 610, + "id": 3332, "isConstant": false, "isLValue": false, "isPure": false, @@ -1226,20 +1226,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "980:29:1", + "src": "980:29:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 611, + "id": 3333, "nodeType": "ExpressionStatement", - "src": "980:29:1" + "src": "980:29:25" } ] }, "documentation": null, - "id": 613, + "id": 3335, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1247,16 +1247,16 @@ "name": "mul", "nodeType": "FunctionDefinition", "parameters": { - "id": 590, + "id": 3312, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 587, + "id": 3309, "name": "a", "nodeType": "VariableDeclaration", - "scope": 613, - "src": "904:6:1", + "scope": 3335, + "src": "904:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1264,10 +1264,10 @@ "typeString": "uint256" }, "typeName": { - "id": 586, + "id": 3308, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "904:4:1", + "src": "904:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1278,11 +1278,11 @@ }, { "constant": false, - "id": 589, + "id": 3311, "name": "b", "nodeType": "VariableDeclaration", - "scope": 613, - "src": "912:6:1", + "scope": 3335, + "src": "912:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1290,10 +1290,10 @@ "typeString": "uint256" }, "typeName": { - "id": 588, + "id": 3310, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "912:4:1", + "src": "912:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1303,20 +1303,20 @@ "visibility": "internal" } ], - "src": "903:16:1" + "src": "903:16:25" }, "payable": false, "returnParameters": { - "id": 593, + "id": 3315, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 592, + "id": 3314, "name": "c", "nodeType": "VariableDeclaration", - "scope": 613, - "src": "943:6:1", + "scope": 3335, + "src": "943:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1324,10 +1324,10 @@ "typeString": "uint256" }, "typeName": { - "id": 591, + "id": 3313, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "943:4:1", + "src": "943:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1337,19 +1337,19 @@ "visibility": "internal" } ], - "src": "942:8:1" + "src": "942:8:25" }, - "scope": 636, - "src": "891:125:1", + "scope": 3358, + "src": "891:125:25", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 634, + "id": 3356, "nodeType": "Block", - "src": "1081:50:1", + "src": "1081:50:25", "statements": [ { "expression": { @@ -1361,19 +1361,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 625, + "id": 3347, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 623, + "id": 3345, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 617, - "src": "1099:1:1", + "referencedDeclaration": 3339, + "src": "1099:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1384,14 +1384,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 624, + "id": 3346, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1103:1:1", + "src": "1103:1:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1399,7 +1399,7 @@ }, "value": "0" }, - "src": "1099:5:1", + "src": "1099:5:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1413,21 +1413,21 @@ "typeString": "bool" } ], - "id": 622, + "id": 3344, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1109, - 1110 + 3831, + 3832 ], - "referencedDeclaration": 1109, - "src": "1091:7:1", + "referencedDeclaration": 3831, + "src": "1091:7:25", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 626, + "id": 3348, "isConstant": false, "isLValue": false, "isPure": false, @@ -1435,32 +1435,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1091:14:1", + "src": "1091:14:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 627, + "id": 3349, "nodeType": "ExpressionStatement", - "src": "1091:14:1" + "src": "1091:14:25" }, { "expression": { "argumentTypes": null, - "id": 632, + "id": 3354, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 628, + "id": 3350, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 620, - "src": "1115:1:1", + "referencedDeclaration": 3342, + "src": "1115:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1474,19 +1474,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 631, + "id": 3353, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 629, + "id": 3351, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 615, - "src": "1119:1:1", + "referencedDeclaration": 3337, + "src": "1119:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1496,37 +1496,37 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 630, + "id": 3352, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 617, - "src": "1123:1:1", + "referencedDeclaration": 3339, + "src": "1123:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1119:5:1", + "src": "1119:5:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1115:9:1", + "src": "1115:9:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 633, + "id": 3355, "nodeType": "ExpressionStatement", - "src": "1115:9:1" + "src": "1115:9:25" } ] }, "documentation": null, - "id": 635, + "id": 3357, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1534,16 +1534,16 @@ "name": "div", "nodeType": "FunctionDefinition", "parameters": { - "id": 618, + "id": 3340, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 615, + "id": 3337, "name": "a", "nodeType": "VariableDeclaration", - "scope": 635, - "src": "1034:6:1", + "scope": 3357, + "src": "1034:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1551,10 +1551,10 @@ "typeString": "uint256" }, "typeName": { - "id": 614, + "id": 3336, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1034:4:1", + "src": "1034:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1565,11 +1565,11 @@ }, { "constant": false, - "id": 617, + "id": 3339, "name": "b", "nodeType": "VariableDeclaration", - "scope": 635, - "src": "1042:6:1", + "scope": 3357, + "src": "1042:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1577,10 +1577,10 @@ "typeString": "uint256" }, "typeName": { - "id": 616, + "id": 3338, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1042:4:1", + "src": "1042:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1590,20 +1590,20 @@ "visibility": "internal" } ], - "src": "1033:16:1" + "src": "1033:16:25" }, "payable": false, "returnParameters": { - "id": 621, + "id": 3343, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 620, + "id": 3342, "name": "c", "nodeType": "VariableDeclaration", - "scope": 635, - "src": "1073:6:1", + "scope": 3357, + "src": "1073:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1611,10 +1611,10 @@ "typeString": "uint256" }, "typeName": { - "id": 619, + "id": 3341, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1073:4:1", + "src": "1073:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1624,17 +1624,17 @@ "visibility": "internal" } ], - "src": "1072:8:1" + "src": "1072:8:25" }, - "scope": 636, - "src": "1021:110:1", + "scope": 3358, + "src": "1021:110:25", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], - "scope": 1092, - "src": "636:497:1" + "scope": 3814, + "src": "636:497:25" }, { "baseContracts": [], @@ -1642,9 +1642,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 703, + "id": 3425, "linearizedBaseContracts": [ - 703 + 3425 ], "name": "ERC20Interface", "nodeType": "ContractDefinition", @@ -1652,7 +1652,7 @@ { "body": null, "documentation": null, - "id": 641, + "id": 3363, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1660,23 +1660,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 637, + "id": 3359, "nodeType": "ParameterList", "parameters": [], - "src": "1445:2:1" + "src": "1445:2:25" }, "payable": false, "returnParameters": { - "id": 640, + "id": 3362, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 639, + "id": 3361, "name": "", "nodeType": "VariableDeclaration", - "scope": 641, - "src": "1473:4:1", + "scope": 3363, + "src": "1473:4:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1684,10 +1684,10 @@ "typeString": "uint256" }, "typeName": { - "id": 638, + "id": 3360, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1473:4:1", + "src": "1473:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1697,10 +1697,10 @@ "visibility": "internal" } ], - "src": "1472:6:1" + "src": "1472:6:25" }, - "scope": 703, - "src": "1425:54:1", + "scope": 3425, + "src": "1425:54:25", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -1708,7 +1708,7 @@ { "body": null, "documentation": null, - "id": 648, + "id": 3370, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1716,16 +1716,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 644, + "id": 3366, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 643, + "id": 3365, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 648, - "src": "1503:18:1", + "scope": 3370, + "src": "1503:18:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1733,10 +1733,10 @@ "typeString": "address" }, "typeName": { - "id": 642, + "id": 3364, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1503:7:1", + "src": "1503:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1746,20 +1746,20 @@ "visibility": "internal" } ], - "src": "1502:20:1" + "src": "1502:20:25" }, "payable": false, "returnParameters": { - "id": 647, + "id": 3369, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 646, + "id": 3368, "name": "balance", "nodeType": "VariableDeclaration", - "scope": 648, - "src": "1548:12:1", + "scope": 3370, + "src": "1548:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1767,10 +1767,10 @@ "typeString": "uint256" }, "typeName": { - "id": 645, + "id": 3367, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1548:4:1", + "src": "1548:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1780,10 +1780,10 @@ "visibility": "internal" } ], - "src": "1547:14:1" + "src": "1547:14:25" }, - "scope": 703, - "src": "1484:78:1", + "scope": 3425, + "src": "1484:78:25", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -1791,7 +1791,7 @@ { "body": null, "documentation": null, - "id": 657, + "id": 3379, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1799,16 +1799,16 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 653, + "id": 3375, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 650, + "id": 3372, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 657, - "src": "1586:18:1", + "scope": 3379, + "src": "1586:18:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1816,10 +1816,10 @@ "typeString": "address" }, "typeName": { - "id": 649, + "id": 3371, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1586:7:1", + "src": "1586:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1830,11 +1830,11 @@ }, { "constant": false, - "id": 652, + "id": 3374, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 657, - "src": "1606:15:1", + "scope": 3379, + "src": "1606:15:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1842,10 +1842,10 @@ "typeString": "address" }, "typeName": { - "id": 651, + "id": 3373, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1606:7:1", + "src": "1606:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1855,20 +1855,20 @@ "visibility": "internal" } ], - "src": "1585:37:1" + "src": "1585:37:25" }, "payable": false, "returnParameters": { - "id": 656, + "id": 3378, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 655, + "id": 3377, "name": "remaining", "nodeType": "VariableDeclaration", - "scope": 657, - "src": "1648:14:1", + "scope": 3379, + "src": "1648:14:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1876,10 +1876,10 @@ "typeString": "uint256" }, "typeName": { - "id": 654, + "id": 3376, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1648:4:1", + "src": "1648:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1889,10 +1889,10 @@ "visibility": "internal" } ], - "src": "1647:16:1" + "src": "1647:16:25" }, - "scope": 703, - "src": "1567:97:1", + "scope": 3425, + "src": "1567:97:25", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -1900,7 +1900,7 @@ { "body": null, "documentation": null, - "id": 666, + "id": 3388, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -1908,16 +1908,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 662, + "id": 3384, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 659, + "id": 3381, "name": "to", "nodeType": "VariableDeclaration", - "scope": 666, - "src": "1687:10:1", + "scope": 3388, + "src": "1687:10:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1925,10 +1925,10 @@ "typeString": "address" }, "typeName": { - "id": 658, + "id": 3380, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1687:7:1", + "src": "1687:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1939,11 +1939,11 @@ }, { "constant": false, - "id": 661, + "id": 3383, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 666, - "src": "1699:11:1", + "scope": 3388, + "src": "1699:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1951,10 +1951,10 @@ "typeString": "uint256" }, "typeName": { - "id": 660, + "id": 3382, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1699:4:1", + "src": "1699:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1964,20 +1964,20 @@ "visibility": "internal" } ], - "src": "1686:25:1" + "src": "1686:25:25" }, "payable": false, "returnParameters": { - "id": 665, + "id": 3387, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 664, + "id": 3386, "name": "success", "nodeType": "VariableDeclaration", - "scope": 666, - "src": "1728:12:1", + "scope": 3388, + "src": "1728:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1985,10 +1985,10 @@ "typeString": "bool" }, "typeName": { - "id": 663, + "id": 3385, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1728:4:1", + "src": "1728:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1998,10 +1998,10 @@ "visibility": "internal" } ], - "src": "1727:14:1" + "src": "1727:14:25" }, - "scope": 703, - "src": "1669:73:1", + "scope": 3425, + "src": "1669:73:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -2009,7 +2009,7 @@ { "body": null, "documentation": null, - "id": 675, + "id": 3397, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -2017,16 +2017,16 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 671, + "id": 3393, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 668, + "id": 3390, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 675, - "src": "1764:15:1", + "scope": 3397, + "src": "1764:15:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2034,10 +2034,10 @@ "typeString": "address" }, "typeName": { - "id": 667, + "id": 3389, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1764:7:1", + "src": "1764:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2048,11 +2048,11 @@ }, { "constant": false, - "id": 670, + "id": 3392, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 675, - "src": "1781:11:1", + "scope": 3397, + "src": "1781:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2060,10 +2060,10 @@ "typeString": "uint256" }, "typeName": { - "id": 669, + "id": 3391, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1781:4:1", + "src": "1781:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2073,20 +2073,20 @@ "visibility": "internal" } ], - "src": "1763:30:1" + "src": "1763:30:25" }, "payable": false, "returnParameters": { - "id": 674, + "id": 3396, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 673, + "id": 3395, "name": "success", "nodeType": "VariableDeclaration", - "scope": 675, - "src": "1810:12:1", + "scope": 3397, + "src": "1810:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2094,10 +2094,10 @@ "typeString": "bool" }, "typeName": { - "id": 672, + "id": 3394, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1810:4:1", + "src": "1810:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2107,10 +2107,10 @@ "visibility": "internal" } ], - "src": "1809:14:1" + "src": "1809:14:25" }, - "scope": 703, - "src": "1747:77:1", + "scope": 3425, + "src": "1747:77:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -2118,7 +2118,7 @@ { "body": null, "documentation": null, - "id": 686, + "id": 3408, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -2126,16 +2126,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 682, + "id": 3404, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 677, + "id": 3399, "name": "from", "nodeType": "VariableDeclaration", - "scope": 686, - "src": "1851:12:1", + "scope": 3408, + "src": "1851:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2143,10 +2143,10 @@ "typeString": "address" }, "typeName": { - "id": 676, + "id": 3398, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1851:7:1", + "src": "1851:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2157,11 +2157,11 @@ }, { "constant": false, - "id": 679, + "id": 3401, "name": "to", "nodeType": "VariableDeclaration", - "scope": 686, - "src": "1865:10:1", + "scope": 3408, + "src": "1865:10:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2169,10 +2169,10 @@ "typeString": "address" }, "typeName": { - "id": 678, + "id": 3400, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1865:7:1", + "src": "1865:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2183,11 +2183,11 @@ }, { "constant": false, - "id": 681, + "id": 3403, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 686, - "src": "1877:11:1", + "scope": 3408, + "src": "1877:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2195,10 +2195,10 @@ "typeString": "uint256" }, "typeName": { - "id": 680, + "id": 3402, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1877:4:1", + "src": "1877:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2208,20 +2208,20 @@ "visibility": "internal" } ], - "src": "1850:39:1" + "src": "1850:39:25" }, "payable": false, "returnParameters": { - "id": 685, + "id": 3407, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 684, + "id": 3406, "name": "success", "nodeType": "VariableDeclaration", - "scope": 686, - "src": "1906:12:1", + "scope": 3408, + "src": "1906:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2229,10 +2229,10 @@ "typeString": "bool" }, "typeName": { - "id": 683, + "id": 3405, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1906:4:1", + "src": "1906:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2242,10 +2242,10 @@ "visibility": "internal" } ], - "src": "1905:14:1" + "src": "1905:14:25" }, - "scope": 703, - "src": "1829:91:1", + "scope": 3425, + "src": "1829:91:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -2253,21 +2253,21 @@ { "anonymous": false, "documentation": null, - "id": 694, + "id": 3416, "name": "Transfer", "nodeType": "EventDefinition", "parameters": { - "id": 693, + "id": 3415, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 688, + "id": 3410, "indexed": true, "name": "from", "nodeType": "VariableDeclaration", - "scope": 694, - "src": "1941:20:1", + "scope": 3416, + "src": "1941:20:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2275,10 +2275,10 @@ "typeString": "address" }, "typeName": { - "id": 687, + "id": 3409, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1941:7:1", + "src": "1941:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2289,12 +2289,12 @@ }, { "constant": false, - "id": 690, + "id": 3412, "indexed": true, "name": "to", "nodeType": "VariableDeclaration", - "scope": 694, - "src": "1963:18:1", + "scope": 3416, + "src": "1963:18:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2302,10 +2302,10 @@ "typeString": "address" }, "typeName": { - "id": 689, + "id": 3411, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1963:7:1", + "src": "1963:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2316,12 +2316,12 @@ }, { "constant": false, - "id": 692, + "id": 3414, "indexed": false, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 694, - "src": "1983:11:1", + "scope": 3416, + "src": "1983:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2329,10 +2329,10 @@ "typeString": "uint256" }, "typeName": { - "id": 691, + "id": 3413, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1983:4:1", + "src": "1983:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2342,28 +2342,28 @@ "visibility": "internal" } ], - "src": "1940:55:1" + "src": "1940:55:25" }, - "src": "1926:70:1" + "src": "1926:70:25" }, { "anonymous": false, "documentation": null, - "id": 702, + "id": 3424, "name": "Approval", "nodeType": "EventDefinition", "parameters": { - "id": 701, + "id": 3423, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 696, + "id": 3418, "indexed": true, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 702, - "src": "2016:26:1", + "scope": 3424, + "src": "2016:26:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2371,10 +2371,10 @@ "typeString": "address" }, "typeName": { - "id": 695, + "id": 3417, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2016:7:1", + "src": "2016:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2385,12 +2385,12 @@ }, { "constant": false, - "id": 698, + "id": 3420, "indexed": true, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 702, - "src": "2044:23:1", + "scope": 3424, + "src": "2044:23:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2398,10 +2398,10 @@ "typeString": "address" }, "typeName": { - "id": 697, + "id": 3419, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2044:7:1", + "src": "2044:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2412,12 +2412,12 @@ }, { "constant": false, - "id": 700, + "id": 3422, "indexed": false, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 702, - "src": "2069:11:1", + "scope": 3424, + "src": "2069:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2425,10 +2425,10 @@ "typeString": "uint256" }, "typeName": { - "id": 699, + "id": 3421, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2069:4:1", + "src": "2069:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2438,13 +2438,13 @@ "visibility": "internal" } ], - "src": "2015:66:1" + "src": "2015:66:25" }, - "src": "2001:81:1" + "src": "2001:81:25" } ], - "scope": 1092, - "src": "1395:689:1" + "scope": 3814, + "src": "1395:689:25" }, { "baseContracts": [], @@ -2452,9 +2452,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 715, + "id": 3437, "linearizedBaseContracts": [ - 715 + 3437 ], "name": "ApproveAndCallFallBack", "nodeType": "ContractDefinition", @@ -2462,7 +2462,7 @@ { "body": null, "documentation": null, - "id": 714, + "id": 3436, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -2470,16 +2470,16 @@ "name": "receiveApproval", "nodeType": "FunctionDefinition", "parameters": { - "id": 712, + "id": 3434, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 705, + "id": 3427, "name": "from", "nodeType": "VariableDeclaration", - "scope": 714, - "src": "2416:12:1", + "scope": 3436, + "src": "2416:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2487,10 +2487,10 @@ "typeString": "address" }, "typeName": { - "id": 704, + "id": 3426, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2416:7:1", + "src": "2416:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2501,11 +2501,11 @@ }, { "constant": false, - "id": 707, + "id": 3429, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 714, - "src": "2430:14:1", + "scope": 3436, + "src": "2430:14:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2513,10 +2513,10 @@ "typeString": "uint256" }, "typeName": { - "id": 706, + "id": 3428, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2430:7:1", + "src": "2430:7:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2527,11 +2527,11 @@ }, { "constant": false, - "id": 709, + "id": 3431, "name": "token", "nodeType": "VariableDeclaration", - "scope": 714, - "src": "2446:13:1", + "scope": 3436, + "src": "2446:13:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2539,10 +2539,10 @@ "typeString": "address" }, "typeName": { - "id": 708, + "id": 3430, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2446:7:1", + "src": "2446:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2553,11 +2553,11 @@ }, { "constant": false, - "id": 711, + "id": 3433, "name": "data", "nodeType": "VariableDeclaration", - "scope": 714, - "src": "2461:10:1", + "scope": 3436, + "src": "2461:10:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2565,10 +2565,10 @@ "typeString": "bytes" }, "typeName": { - "id": 710, + "id": 3432, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2461:5:1", + "src": "2461:5:25", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2578,24 +2578,24 @@ "visibility": "internal" } ], - "src": "2415:57:1" + "src": "2415:57:25" }, "payable": false, "returnParameters": { - "id": 713, + "id": 3435, "nodeType": "ParameterList", "parameters": [], - "src": "2479:0:1" + "src": "2479:0:25" }, - "scope": 715, - "src": "2391:89:1", + "scope": 3437, + "src": "2391:89:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1092, - "src": "2353:129:1" + "scope": 3814, + "src": "2353:129:25" }, { "baseContracts": [], @@ -2603,20 +2603,20 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 784, + "id": 3506, "linearizedBaseContracts": [ - 784 + 3506 ], "name": "Owned", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 717, + "id": 3439, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 784, - "src": "2684:20:1", + "scope": 3506, + "src": "2684:20:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2624,10 +2624,10 @@ "typeString": "address" }, "typeName": { - "id": 716, + "id": 3438, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2684:7:1", + "src": "2684:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2638,11 +2638,11 @@ }, { "constant": false, - "id": 719, + "id": 3441, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 784, - "src": "2710:23:1", + "scope": 3506, + "src": "2710:23:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2650,10 +2650,10 @@ "typeString": "address" }, "typeName": { - "id": 718, + "id": 3440, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2710:7:1", + "src": "2710:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2665,21 +2665,21 @@ { "anonymous": false, "documentation": null, - "id": 725, + "id": 3447, "name": "OwnershipTransferred", "nodeType": "EventDefinition", "parameters": { - "id": 724, + "id": 3446, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 721, + "id": 3443, "indexed": true, "name": "_from", "nodeType": "VariableDeclaration", - "scope": 725, - "src": "2767:21:1", + "scope": 3447, + "src": "2767:21:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2687,10 +2687,10 @@ "typeString": "address" }, "typeName": { - "id": 720, + "id": 3442, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2767:7:1", + "src": "2767:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2701,12 +2701,12 @@ }, { "constant": false, - "id": 723, + "id": 3445, "indexed": true, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 725, - "src": "2790:19:1", + "scope": 3447, + "src": "2790:19:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2714,10 +2714,10 @@ "typeString": "address" }, "typeName": { - "id": 722, + "id": 3444, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2790:7:1", + "src": "2790:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2727,32 +2727,32 @@ "visibility": "internal" } ], - "src": "2766:44:1" + "src": "2766:44:25" }, - "src": "2740:71:1" + "src": "2740:71:25" }, { "body": { - "id": 733, + "id": 3455, "nodeType": "Block", - "src": "2838:35:1", + "src": "2838:35:25", "statements": [ { "expression": { "argumentTypes": null, - "id": 731, + "id": 3453, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 728, + "id": 3450, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 717, - "src": "2848:5:1", + "referencedDeclaration": 3439, + "src": "2848:5:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2764,18 +2764,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 729, + "id": 3451, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "2856:3:1", + "referencedDeclaration": 3828, + "src": "2856:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 730, + "id": 3452, "isConstant": false, "isLValue": false, "isPure": false, @@ -2783,26 +2783,26 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2856:10:1", + "src": "2856:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2848:18:1", + "src": "2848:18:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 732, + "id": 3454, "nodeType": "ExpressionStatement", - "src": "2848:18:1" + "src": "2848:18:25" } ] }, "documentation": null, - "id": 734, + "id": 3456, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -2810,29 +2810,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 726, + "id": 3448, "nodeType": "ParameterList", "parameters": [], - "src": "2828:2:1" + "src": "2828:2:25" }, "payable": false, "returnParameters": { - "id": 727, + "id": 3449, "nodeType": "ParameterList", "parameters": [], - "src": "2838:0:1" + "src": "2838:0:25" }, - "scope": 784, - "src": "2817:56:1", + "scope": 3506, + "src": "2817:56:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 744, + "id": 3466, "nodeType": "Block", - "src": "2898:56:1", + "src": "2898:56:25", "statements": [ { "expression": { @@ -2844,7 +2844,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 740, + "id": 3462, "isConstant": false, "isLValue": false, "isPure": false, @@ -2853,18 +2853,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 737, + "id": 3459, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "2916:3:1", + "referencedDeclaration": 3828, + "src": "2916:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 738, + "id": 3460, "isConstant": false, "isLValue": false, "isPure": false, @@ -2872,7 +2872,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2916:10:1", + "src": "2916:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2882,18 +2882,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 739, + "id": 3461, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 717, - "src": "2930:5:1", + "referencedDeclaration": 3439, + "src": "2930:5:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2916:19:1", + "src": "2916:19:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2907,21 +2907,21 @@ "typeString": "bool" } ], - "id": 736, + "id": 3458, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1109, - 1110 + 3831, + 3832 ], - "referencedDeclaration": 1109, - "src": "2908:7:1", + "referencedDeclaration": 3831, + "src": "2908:7:25", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 741, + "id": 3463, "isConstant": false, "isLValue": false, "isPure": false, @@ -2929,58 +2929,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2908:28:1", + "src": "2908:28:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 742, + "id": 3464, "nodeType": "ExpressionStatement", - "src": "2908:28:1" + "src": "2908:28:25" }, { - "id": 743, + "id": 3465, "nodeType": "PlaceholderStatement", - "src": "2946:1:1" + "src": "2946:1:25" } ] }, "documentation": null, - "id": 745, + "id": 3467, "name": "onlyOwner", "nodeType": "ModifierDefinition", "parameters": { - "id": 735, + "id": 3457, "nodeType": "ParameterList", "parameters": [], - "src": "2898:0:1" + "src": "2898:0:25" }, - "src": "2879:75:1", + "src": "2879:75:25", "visibility": "internal" }, { "body": { - "id": 756, + "id": 3478, "nodeType": "Block", - "src": "3023:37:1", + "src": "3023:37:25", "statements": [ { "expression": { "argumentTypes": null, - "id": 754, + "id": 3476, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 752, + "id": 3474, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 719, - "src": "3033:8:1", + "referencedDeclaration": 3441, + "src": "3033:8:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2990,68 +2990,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 753, + "id": 3475, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 747, - "src": "3044:9:1", + "referencedDeclaration": 3469, + "src": "3044:9:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3033:20:1", + "src": "3033:20:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 755, + "id": 3477, "nodeType": "ExpressionStatement", - "src": "3033:20:1" + "src": "3033:20:25" } ] }, "documentation": null, - "id": 757, + "id": 3479, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 750, + "id": 3472, "modifierName": { "argumentTypes": null, - "id": 749, + "id": 3471, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 745, - "src": "3013:9:1", + "referencedDeclaration": 3467, + "src": "3013:9:25", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3013:9:1" + "src": "3013:9:25" } ], "name": "transferOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 748, + "id": 3470, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 747, + "id": 3469, "name": "_newOwner", "nodeType": "VariableDeclaration", - "scope": 757, - "src": "2987:17:1", + "scope": 3479, + "src": "2987:17:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3059,10 +3059,10 @@ "typeString": "address" }, "typeName": { - "id": 746, + "id": 3468, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2987:7:1", + "src": "2987:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3072,26 +3072,26 @@ "visibility": "internal" } ], - "src": "2986:19:1" + "src": "2986:19:25" }, "payable": false, "returnParameters": { - "id": 751, + "id": 3473, "nodeType": "ParameterList", "parameters": [], - "src": "3023:0:1" + "src": "3023:0:25" }, - "scope": 784, - "src": "2960:100:1", + "scope": 3506, + "src": "2960:100:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 782, + "id": 3504, "nodeType": "Block", - "src": "3099:157:1", + "src": "3099:157:25", "statements": [ { "expression": { @@ -3103,7 +3103,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 764, + "id": 3486, "isConstant": false, "isLValue": false, "isPure": false, @@ -3112,18 +3112,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 761, + "id": 3483, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "3117:3:1", + "referencedDeclaration": 3828, + "src": "3117:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 762, + "id": 3484, "isConstant": false, "isLValue": false, "isPure": false, @@ -3131,7 +3131,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3117:10:1", + "src": "3117:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3141,18 +3141,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 763, + "id": 3485, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 719, - "src": "3131:8:1", + "referencedDeclaration": 3441, + "src": "3131:8:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3117:22:1", + "src": "3117:22:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3166,21 +3166,21 @@ "typeString": "bool" } ], - "id": 760, + "id": 3482, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1109, - 1110 + 3831, + 3832 ], - "referencedDeclaration": 1109, - "src": "3109:7:1", + "referencedDeclaration": 3831, + "src": "3109:7:25", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 765, + "id": 3487, "isConstant": false, "isLValue": false, "isPure": false, @@ -3188,15 +3188,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3109:31:1", + "src": "3109:31:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 766, + "id": 3488, "nodeType": "ExpressionStatement", - "src": "3109:31:1" + "src": "3109:31:25" }, { "eventCall": { @@ -3204,12 +3204,12 @@ "arguments": [ { "argumentTypes": null, - "id": 768, + "id": 3490, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 717, - "src": "3176:5:1", + "referencedDeclaration": 3439, + "src": "3176:5:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3217,12 +3217,12 @@ }, { "argumentTypes": null, - "id": 769, + "id": 3491, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 719, - "src": "3183:8:1", + "referencedDeclaration": 3441, + "src": "3183:8:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3240,18 +3240,18 @@ "typeString": "address" } ], - "id": 767, + "id": 3489, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "3155:20:1", + "referencedDeclaration": 3447, + "src": "3155:20:25", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 770, + "id": 3492, "isConstant": false, "isLValue": false, "isPure": false, @@ -3259,32 +3259,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3155:37:1", + "src": "3155:37:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 771, + "id": 3493, "nodeType": "EmitStatement", - "src": "3150:42:1" + "src": "3150:42:25" }, { "expression": { "argumentTypes": null, - "id": 774, + "id": 3496, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 772, + "id": 3494, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 717, - "src": "3202:5:1", + "referencedDeclaration": 3439, + "src": "3202:5:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3294,43 +3294,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 773, + "id": 3495, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 719, - "src": "3210:8:1", + "referencedDeclaration": 3441, + "src": "3210:8:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3202:16:1", + "src": "3202:16:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 775, + "id": 3497, "nodeType": "ExpressionStatement", - "src": "3202:16:1" + "src": "3202:16:25" }, { "expression": { "argumentTypes": null, - "id": 780, + "id": 3502, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 776, + "id": 3498, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 719, - "src": "3228:8:1", + "referencedDeclaration": 3441, + "src": "3228:8:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3344,14 +3344,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 778, + "id": 3500, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3247:1:1", + "src": "3247:1:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3367,20 +3367,20 @@ "typeString": "int_const 0" } ], - "id": 777, + "id": 3499, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3239:7:1", + "src": "3239:7:25", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 779, + "id": 3501, "isConstant": false, "isLValue": false, "isPure": true, @@ -3388,26 +3388,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3239:10:1", + "src": "3239:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3228:21:1", + "src": "3228:21:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 781, + "id": 3503, "nodeType": "ExpressionStatement", - "src": "3228:21:1" + "src": "3228:21:25" } ] }, "documentation": null, - "id": 783, + "id": 3505, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3415,27 +3415,27 @@ "name": "acceptOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 758, + "id": 3480, "nodeType": "ParameterList", "parameters": [], - "src": "3089:2:1" + "src": "3089:2:25" }, "payable": false, "returnParameters": { - "id": 759, + "id": 3481, "nodeType": "ParameterList", "parameters": [], - "src": "3099:0:1" + "src": "3099:0:25" }, - "scope": 784, - "src": "3065:191:1", + "scope": 3506, + "src": "3065:191:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1092, - "src": "2663:595:1" + "scope": 3814, + "src": "2663:595:25" }, { "baseContracts": [ @@ -3443,76 +3443,76 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 785, + "id": 3507, "name": "ERC20Interface", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 703, - "src": "3528:14:1", + "referencedDeclaration": 3425, + "src": "3528:14:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$703", + "typeIdentifier": "t_contract$_ERC20Interface_$3425", "typeString": "contract ERC20Interface" } }, - "id": 786, + "id": 3508, "nodeType": "InheritanceSpecifier", - "src": "3528:14:1" + "src": "3528:14:25" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 787, + "id": 3509, "name": "Owned", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 784, - "src": "3544:5:1", + "referencedDeclaration": 3506, + "src": "3544:5:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$784", + "typeIdentifier": "t_contract$_Owned_$3506", "typeString": "contract Owned" } }, - "id": 788, + "id": 3510, "nodeType": "InheritanceSpecifier", - "src": "3544:5:1" + "src": "3544:5:25" } ], "contractDependencies": [ - 703, - 784 + 3425, + 3506 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1091, + "id": 3813, "linearizedBaseContracts": [ - 1091, - 784, - 703 + 3813, + 3506, + 3425 ], "name": "TestToken", "nodeType": "ContractDefinition", "nodes": [ { - "id": 791, + "id": 3513, "libraryName": { "contractScope": null, - "id": 789, + "id": 3511, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 636, - "src": "3562:8:1", + "referencedDeclaration": 3358, + "src": "3562:8:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$636", + "typeIdentifier": "t_contract$_SafeMath_$3358", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "3556:24:1", + "src": "3556:24:25", "typeName": { - "id": 790, + "id": 3512, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3575:4:1", + "src": "3575:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3521,11 +3521,11 @@ }, { "constant": false, - "id": 793, + "id": 3515, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 1091, - "src": "3586:20:1", + "scope": 3813, + "src": "3586:20:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3533,10 +3533,10 @@ "typeString": "string" }, "typeName": { - "id": 792, + "id": 3514, "name": "string", "nodeType": "ElementaryTypeName", - "src": "3586:6:1", + "src": "3586:6:25", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3547,11 +3547,11 @@ }, { "constant": false, - "id": 795, + "id": 3517, "name": "name", "nodeType": "VariableDeclaration", - "scope": 1091, - "src": "3612:19:1", + "scope": 3813, + "src": "3612:19:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3559,10 +3559,10 @@ "typeString": "string" }, "typeName": { - "id": 794, + "id": 3516, "name": "string", "nodeType": "ElementaryTypeName", - "src": "3612:6:1", + "src": "3612:6:25", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3573,11 +3573,11 @@ }, { "constant": false, - "id": 797, + "id": 3519, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 1091, - "src": "3637:21:1", + "scope": 3813, + "src": "3637:21:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3585,10 +3585,10 @@ "typeString": "uint8" }, "typeName": { - "id": 796, + "id": 3518, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "3637:5:1", + "src": "3637:5:25", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3599,11 +3599,11 @@ }, { "constant": false, - "id": 799, + "id": 3521, "name": "_totalSupply", "nodeType": "VariableDeclaration", - "scope": 1091, - "src": "3664:17:1", + "scope": 3813, + "src": "3664:17:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3611,10 +3611,10 @@ "typeString": "uint256" }, "typeName": { - "id": 798, + "id": 3520, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3664:4:1", + "src": "3664:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3625,11 +3625,11 @@ }, { "constant": false, - "id": 803, + "id": 3525, "name": "balances", "nodeType": "VariableDeclaration", - "scope": 1091, - "src": "3688:33:1", + "scope": 3813, + "src": "3688:33:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3637,28 +3637,28 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 802, + "id": 3524, "keyType": { - "id": 800, + "id": 3522, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3696:7:1", + "src": "3696:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3688:24:1", + "src": "3688:24:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 801, + "id": 3523, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3707:4:1", + "src": "3707:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3670,11 +3670,11 @@ }, { "constant": false, - "id": 809, + "id": 3531, "name": "allowed", "nodeType": "VariableDeclaration", - "scope": 1091, - "src": "3727:52:1", + "scope": 3813, + "src": "3727:52:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3682,46 +3682,46 @@ "typeString": "mapping(address => mapping(address => uint256))" }, "typeName": { - "id": 808, + "id": 3530, "keyType": { - "id": 804, + "id": 3526, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3735:7:1", + "src": "3735:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3727:44:1", + "src": "3727:44:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" }, "valueType": { - "id": 807, + "id": 3529, "keyType": { - "id": 805, + "id": 3527, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3754:7:1", + "src": "3754:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3746:24:1", + "src": "3746:24:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 806, + "id": 3528, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3765:4:1", + "src": "3765:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3734,26 +3734,26 @@ }, { "body": { - "id": 848, + "id": 3570, "nodeType": "Block", - "src": "3987:235:1", + "src": "3987:235:25", "statements": [ { "expression": { "argumentTypes": null, - "id": 814, + "id": 3536, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 812, + "id": 3534, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 793, - "src": "3997:6:1", + "referencedDeclaration": 3515, + "src": "3997:6:25", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -3764,14 +3764,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "544b4e", - "id": 813, + "id": 3535, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4006:5:1", + "src": "4006:5:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66", @@ -3779,32 +3779,32 @@ }, "value": "TKN" }, - "src": "3997:14:1", + "src": "3997:14:25", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 815, + "id": 3537, "nodeType": "ExpressionStatement", - "src": "3997:14:1" + "src": "3997:14:25" }, { "expression": { "argumentTypes": null, - "id": 818, + "id": 3540, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 816, + "id": 3538, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 795, - "src": "4021:4:1", + "referencedDeclaration": 3517, + "src": "4021:4:25", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -3815,14 +3815,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "546f6b656e204578616d706c65", - "id": 817, + "id": 3539, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4028:15:1", + "src": "4028:15:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a", @@ -3830,32 +3830,32 @@ }, "value": "Token Example" }, - "src": "4021:22:1", + "src": "4021:22:25", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 819, + "id": 3541, "nodeType": "ExpressionStatement", - "src": "4021:22:1" + "src": "4021:22:25" }, { "expression": { "argumentTypes": null, - "id": 822, + "id": 3544, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 820, + "id": 3542, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 797, - "src": "4053:8:1", + "referencedDeclaration": 3519, + "src": "4053:8:25", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3866,14 +3866,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "3138", - "id": 821, + "id": 3543, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4064:2:1", + "src": "4064:2:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", @@ -3881,32 +3881,32 @@ }, "value": "18" }, - "src": "4053:13:1", + "src": "4053:13:25", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 823, + "id": 3545, "nodeType": "ExpressionStatement", - "src": "4053:13:1" + "src": "4053:13:25" }, { "expression": { "argumentTypes": null, - "id": 832, + "id": 3554, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 824, + "id": 3546, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 799, - "src": "4076:12:1", + "referencedDeclaration": 3521, + "src": "4076:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3920,7 +3920,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 831, + "id": 3553, "isConstant": false, "isLValue": false, "isPure": false, @@ -3928,14 +3928,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "31303030303030", - "id": 825, + "id": 3547, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4091:7:1", + "src": "4091:7:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1000000_by_1", @@ -3951,7 +3951,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 830, + "id": 3552, "isConstant": false, "isLValue": false, "isPure": false, @@ -3959,14 +3959,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 826, + "id": 3548, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4101:2:1", + "src": "4101:2:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -3981,12 +3981,12 @@ "arguments": [ { "argumentTypes": null, - "id": 828, + "id": 3550, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 797, - "src": "4110:8:1", + "referencedDeclaration": 3519, + "src": "4110:8:25", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -4000,20 +4000,20 @@ "typeString": "uint8" } ], - "id": 827, + "id": 3549, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4105:4:1", + "src": "4105:4:25", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 829, + "id": 3551, "isConstant": false, "isLValue": false, "isPure": false, @@ -4021,38 +4021,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4105:14:1", + "src": "4105:14:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4101:18:1", + "src": "4101:18:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4091:28:1", + "src": "4091:28:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4076:43:1", + "src": "4076:43:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 833, + "id": 3555, "nodeType": "ExpressionStatement", - "src": "4076:43:1" + "src": "4076:43:25" }, { "expression": { "argumentTypes": null, - "id": 838, + "id": 3560, "isConstant": false, "isLValue": false, "isPure": false, @@ -4061,26 +4061,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 834, + "id": 3556, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 803, - "src": "4129:8:1", + "referencedDeclaration": 3525, + "src": "4129:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 836, + "id": 3558, "indexExpression": { "argumentTypes": null, - "id": 835, + "id": 3557, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 717, - "src": "4138:5:1", + "referencedDeclaration": 3439, + "src": "4138:5:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4091,7 +4091,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4129:15:1", + "src": "4129:15:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4101,26 +4101,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 837, + "id": 3559, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 799, - "src": "4147:12:1", + "referencedDeclaration": 3521, + "src": "4147:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4129:30:1", + "src": "4129:30:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 839, + "id": 3561, "nodeType": "ExpressionStatement", - "src": "4129:30:1" + "src": "4129:30:25" }, { "eventCall": { @@ -4132,14 +4132,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 842, + "id": 3564, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4191:1:1", + "src": "4191:1:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4155,20 +4155,20 @@ "typeString": "int_const 0" } ], - "id": 841, + "id": 3563, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4183:7:1", + "src": "4183:7:25", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 843, + "id": 3565, "isConstant": false, "isLValue": false, "isPure": true, @@ -4176,7 +4176,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4183:10:1", + "src": "4183:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4184,12 +4184,12 @@ }, { "argumentTypes": null, - "id": 844, + "id": 3566, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 717, - "src": "4195:5:1", + "referencedDeclaration": 3439, + "src": "4195:5:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4197,12 +4197,12 @@ }, { "argumentTypes": null, - "id": 845, + "id": 3567, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 799, - "src": "4202:12:1", + "referencedDeclaration": 3521, + "src": "4202:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4224,18 +4224,18 @@ "typeString": "uint256" } ], - "id": 840, + "id": 3562, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 694, - "src": "4174:8:1", + "referencedDeclaration": 3416, + "src": "4174:8:25", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 846, + "id": 3568, "isConstant": false, "isLValue": false, "isPure": false, @@ -4243,20 +4243,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4174:41:1", + "src": "4174:41:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 847, + "id": 3569, "nodeType": "EmitStatement", - "src": "4169:46:1" + "src": "4169:46:25" } ] }, "documentation": null, - "id": 849, + "id": 3571, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -4264,29 +4264,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 810, + "id": 3532, "nodeType": "ParameterList", "parameters": [], - "src": "3977:2:1" + "src": "3977:2:25" }, "payable": false, "returnParameters": { - "id": 811, + "id": 3533, "nodeType": "ParameterList", "parameters": [], - "src": "3987:0:1" + "src": "3987:0:25" }, - "scope": 1091, - "src": "3966:256:1", + "scope": 3813, + "src": "3966:256:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 863, + "id": 3585, "nodeType": "Block", - "src": "4459:62:1", + "src": "4459:62:25", "statements": [ { "expression": { @@ -4296,32 +4296,32 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 856, + "id": 3578, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 803, - "src": "4493:8:1", + "referencedDeclaration": 3525, + "src": "4493:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 860, + "id": 3582, "indexExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 858, + "id": 3580, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4510:1:1", + "src": "4510:1:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4337,20 +4337,20 @@ "typeString": "int_const 0" } ], - "id": 857, + "id": 3579, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4502:7:1", + "src": "4502:7:25", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 859, + "id": 3581, "isConstant": false, "isLValue": false, "isPure": true, @@ -4358,7 +4358,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4502:10:1", + "src": "4502:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4369,7 +4369,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4493:20:1", + "src": "4493:20:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4385,32 +4385,32 @@ ], "expression": { "argumentTypes": null, - "id": 854, + "id": 3576, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 799, - "src": "4476:12:1", + "referencedDeclaration": 3521, + "src": "4476:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 855, + "id": 3577, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 585, - "src": "4476:16:1", + "referencedDeclaration": 3307, + "src": "4476: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": 861, + "id": 3583, "isConstant": false, "isLValue": false, "isPure": false, @@ -4418,21 +4418,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4476:38:1", + "src": "4476:38:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 853, - "id": 862, + "functionReturnParameters": 3575, + "id": 3584, "nodeType": "Return", - "src": "4469:45:1" + "src": "4469:45:25" } ] }, "documentation": null, - "id": 864, + "id": 3586, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4440,23 +4440,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 850, + "id": 3572, "nodeType": "ParameterList", "parameters": [], - "src": "4429:2:1" + "src": "4429:2:25" }, "payable": false, "returnParameters": { - "id": 853, + "id": 3575, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 852, + "id": 3574, "name": "", "nodeType": "VariableDeclaration", - "scope": 864, - "src": "4453:4:1", + "scope": 3586, + "src": "4453:4:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4464,10 +4464,10 @@ "typeString": "uint256" }, "typeName": { - "id": 851, + "id": 3573, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4453:4:1", + "src": "4453:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4477,45 +4477,45 @@ "visibility": "internal" } ], - "src": "4452:6:1" + "src": "4452:6:25" }, - "scope": 1091, - "src": "4409:112:1", + "scope": 3813, + "src": "4409:112:25", "stateMutability": "view", - "superFunction": 641, + "superFunction": 3363, "visibility": "public" }, { "body": { - "id": 875, + "id": 3597, "nodeType": "Block", - "src": "4816:44:1", + "src": "4816:44:25", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 871, + "id": 3593, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 803, - "src": "4833:8:1", + "referencedDeclaration": 3525, + "src": "4833:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 873, + "id": 3595, "indexExpression": { "argumentTypes": null, - "id": 872, + "id": 3594, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 866, - "src": "4842:10:1", + "referencedDeclaration": 3588, + "src": "4842:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4526,21 +4526,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4833:20:1", + "src": "4833:20:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 870, - "id": 874, + "functionReturnParameters": 3592, + "id": 3596, "nodeType": "Return", - "src": "4826:27:1" + "src": "4826:27:25" } ] }, "documentation": null, - "id": 876, + "id": 3598, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4548,16 +4548,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 867, + "id": 3589, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 866, + "id": 3588, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 876, - "src": "4761:18:1", + "scope": 3598, + "src": "4761:18:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4565,10 +4565,10 @@ "typeString": "address" }, "typeName": { - "id": 865, + "id": 3587, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4761:7:1", + "src": "4761:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4578,20 +4578,20 @@ "visibility": "internal" } ], - "src": "4760:20:1" + "src": "4760:20:25" }, "payable": false, "returnParameters": { - "id": 870, + "id": 3592, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 869, + "id": 3591, "name": "balance", "nodeType": "VariableDeclaration", - "scope": 876, - "src": "4802:12:1", + "scope": 3598, + "src": "4802:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4599,10 +4599,10 @@ "typeString": "uint256" }, "typeName": { - "id": 868, + "id": 3590, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4802:4:1", + "src": "4802:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4612,24 +4612,24 @@ "visibility": "internal" } ], - "src": "4801:14:1" + "src": "4801:14:25" }, - "scope": 1091, - "src": "4742:118:1", + "scope": 3813, + "src": "4742:118:25", "stateMutability": "view", - "superFunction": 648, + "superFunction": 3370, "visibility": "public" }, { "body": { - "id": 918, + "id": 3640, "nodeType": "Block", - "src": "5276:189:1", + "src": "5276:189:25", "statements": [ { "expression": { "argumentTypes": null, - "id": 896, + "id": 3618, "isConstant": false, "isLValue": false, "isPure": false, @@ -4638,34 +4638,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 885, + "id": 3607, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 803, - "src": "5286:8:1", + "referencedDeclaration": 3525, + "src": "5286:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 888, + "id": 3610, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 886, + "id": 3608, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "5295:3:1", + "referencedDeclaration": 3828, + "src": "5295:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 887, + "id": 3609, "isConstant": false, "isLValue": false, "isPure": false, @@ -4673,7 +4673,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5295:10:1", + "src": "5295:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4684,7 +4684,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5286:20:1", + "src": "5286:20:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4697,12 +4697,12 @@ "arguments": [ { "argumentTypes": null, - "id": 894, + "id": 3616, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 880, - "src": "5334:6:1", + "referencedDeclaration": 3602, + "src": "5334:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4720,34 +4720,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 889, + "id": 3611, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 803, - "src": "5309:8:1", + "referencedDeclaration": 3525, + "src": "5309:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 892, + "id": 3614, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 890, + "id": 3612, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "5318:3:1", + "referencedDeclaration": 3828, + "src": "5318:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 891, + "id": 3613, "isConstant": false, "isLValue": false, "isPure": false, @@ -4755,7 +4755,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5318:10:1", + "src": "5318:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4766,27 +4766,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5309:20:1", + "src": "5309:20:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 893, + "id": 3615, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 585, - "src": "5309:24:1", + "referencedDeclaration": 3307, + "src": "5309: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": 895, + "id": 3617, "isConstant": false, "isLValue": false, "isPure": false, @@ -4794,26 +4794,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5309:32:1", + "src": "5309:32:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5286:55:1", + "src": "5286:55:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 897, + "id": 3619, "nodeType": "ExpressionStatement", - "src": "5286:55:1" + "src": "5286:55:25" }, { "expression": { "argumentTypes": null, - "id": 907, + "id": 3629, "isConstant": false, "isLValue": false, "isPure": false, @@ -4822,26 +4822,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 898, + "id": 3620, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 803, - "src": "5351:8:1", + "referencedDeclaration": 3525, + "src": "5351:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 900, + "id": 3622, "indexExpression": { "argumentTypes": null, - "id": 899, + "id": 3621, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 878, - "src": "5360:2:1", + "referencedDeclaration": 3600, + "src": "5360:2:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4852,7 +4852,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5351:12:1", + "src": "5351:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4865,12 +4865,12 @@ "arguments": [ { "argumentTypes": null, - "id": 905, + "id": 3627, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 880, - "src": "5383:6:1", + "referencedDeclaration": 3602, + "src": "5383:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4888,26 +4888,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 901, + "id": 3623, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 803, - "src": "5366:8:1", + "referencedDeclaration": 3525, + "src": "5366:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 903, + "id": 3625, "indexExpression": { "argumentTypes": null, - "id": 902, + "id": 3624, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 878, - "src": "5375:2:1", + "referencedDeclaration": 3600, + "src": "5375:2:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4918,27 +4918,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5366:12:1", + "src": "5366:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 904, + "id": 3626, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 563, - "src": "5366:16:1", + "referencedDeclaration": 3285, + "src": "5366: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": 906, + "id": 3628, "isConstant": false, "isLValue": false, "isPure": false, @@ -4946,21 +4946,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5366:24:1", + "src": "5366:24:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5351:39:1", + "src": "5351:39:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 908, + "id": 3630, "nodeType": "ExpressionStatement", - "src": "5351:39:1" + "src": "5351:39:25" }, { "eventCall": { @@ -4970,18 +4970,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 910, + "id": 3632, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "5414:3:1", + "referencedDeclaration": 3828, + "src": "5414:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 911, + "id": 3633, "isConstant": false, "isLValue": false, "isPure": false, @@ -4989,7 +4989,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5414:10:1", + "src": "5414:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4997,12 +4997,12 @@ }, { "argumentTypes": null, - "id": 912, + "id": 3634, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 878, - "src": "5426:2:1", + "referencedDeclaration": 3600, + "src": "5426:2:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5010,12 +5010,12 @@ }, { "argumentTypes": null, - "id": 913, + "id": 3635, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 880, - "src": "5430:6:1", + "referencedDeclaration": 3602, + "src": "5430:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5037,18 +5037,18 @@ "typeString": "uint256" } ], - "id": 909, + "id": 3631, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 694, - "src": "5405:8:1", + "referencedDeclaration": 3416, + "src": "5405:8:25", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 914, + "id": 3636, "isConstant": false, "isLValue": false, "isPure": false, @@ -5056,28 +5056,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5405:32:1", + "src": "5405:32:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 915, + "id": 3637, "nodeType": "EmitStatement", - "src": "5400:37:1" + "src": "5400:37:25" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 916, + "id": 3638, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5454:4:1", + "src": "5454:4:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5085,15 +5085,15 @@ }, "value": "true" }, - "functionReturnParameters": 884, - "id": 917, + "functionReturnParameters": 3606, + "id": 3639, "nodeType": "Return", - "src": "5447:11:1" + "src": "5447:11:25" } ] }, "documentation": null, - "id": 919, + "id": 3641, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -5101,16 +5101,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 881, + "id": 3603, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 878, + "id": 3600, "name": "to", "nodeType": "VariableDeclaration", - "scope": 919, - "src": "5221:10:1", + "scope": 3641, + "src": "5221:10:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5118,10 +5118,10 @@ "typeString": "address" }, "typeName": { - "id": 877, + "id": 3599, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5221:7:1", + "src": "5221:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5132,11 +5132,11 @@ }, { "constant": false, - "id": 880, + "id": 3602, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 919, - "src": "5233:11:1", + "scope": 3641, + "src": "5233:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5144,10 +5144,10 @@ "typeString": "uint256" }, "typeName": { - "id": 879, + "id": 3601, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5233:4:1", + "src": "5233:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5157,20 +5157,20 @@ "visibility": "internal" } ], - "src": "5220:25:1" + "src": "5220:25:25" }, "payable": false, "returnParameters": { - "id": 884, + "id": 3606, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 883, + "id": 3605, "name": "success", "nodeType": "VariableDeclaration", - "scope": 919, - "src": "5262:12:1", + "scope": 3641, + "src": "5262:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5178,10 +5178,10 @@ "typeString": "bool" }, "typeName": { - "id": 882, + "id": 3604, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5262:4:1", + "src": "5262:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5191,24 +5191,24 @@ "visibility": "internal" } ], - "src": "5261:14:1" + "src": "5261:14:25" }, - "scope": 1091, - "src": "5203:262:1", + "scope": 3813, + "src": "5203:262:25", "stateMutability": "nonpayable", - "superFunction": 666, + "superFunction": 3388, "visibility": "public" }, { "body": { - "id": 946, + "id": 3668, "nodeType": "Block", - "src": "6048:127:1", + "src": "6048:127:25", "statements": [ { "expression": { "argumentTypes": null, - "id": 935, + "id": 3657, "isConstant": false, "isLValue": false, "isPure": false, @@ -5219,34 +5219,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 928, + "id": 3650, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 809, - "src": "6058:7:1", + "referencedDeclaration": 3531, + "src": "6058:7:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 932, + "id": 3654, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 929, + "id": 3651, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "6066:3:1", + "referencedDeclaration": 3828, + "src": "6066:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 930, + "id": 3652, "isConstant": false, "isLValue": false, "isPure": false, @@ -5254,7 +5254,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6066:10:1", + "src": "6066:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5265,21 +5265,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6058:19:1", + "src": "6058:19:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 933, + "id": 3655, "indexExpression": { "argumentTypes": null, - "id": 931, + "id": 3653, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 921, - "src": "6078:7:1", + "referencedDeclaration": 3643, + "src": "6078:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5290,7 +5290,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6058:28:1", + "src": "6058:28:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5300,26 +5300,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 934, + "id": 3656, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 923, - "src": "6089:6:1", + "referencedDeclaration": 3645, + "src": "6089:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6058:37:1", + "src": "6058:37:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 936, + "id": 3658, "nodeType": "ExpressionStatement", - "src": "6058:37:1" + "src": "6058:37:25" }, { "eventCall": { @@ -5329,18 +5329,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 938, + "id": 3660, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "6119:3:1", + "referencedDeclaration": 3828, + "src": "6119:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 939, + "id": 3661, "isConstant": false, "isLValue": false, "isPure": false, @@ -5348,7 +5348,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6119:10:1", + "src": "6119:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5356,12 +5356,12 @@ }, { "argumentTypes": null, - "id": 940, + "id": 3662, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 921, - "src": "6131:7:1", + "referencedDeclaration": 3643, + "src": "6131:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5369,12 +5369,12 @@ }, { "argumentTypes": null, - "id": 941, + "id": 3663, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 923, - "src": "6140:6:1", + "referencedDeclaration": 3645, + "src": "6140:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5396,18 +5396,18 @@ "typeString": "uint256" } ], - "id": 937, + "id": 3659, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 702, - "src": "6110:8:1", + "referencedDeclaration": 3424, + "src": "6110:8:25", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 942, + "id": 3664, "isConstant": false, "isLValue": false, "isPure": false, @@ -5415,28 +5415,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6110:37:1", + "src": "6110:37:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 943, + "id": 3665, "nodeType": "EmitStatement", - "src": "6105:42:1" + "src": "6105:42:25" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 944, + "id": 3666, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "6164:4:1", + "src": "6164:4:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5444,15 +5444,15 @@ }, "value": "true" }, - "functionReturnParameters": 927, - "id": 945, + "functionReturnParameters": 3649, + "id": 3667, "nodeType": "Return", - "src": "6157:11:1" + "src": "6157:11:25" } ] }, "documentation": null, - "id": 947, + "id": 3669, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -5460,16 +5460,16 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 924, + "id": 3646, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 921, + "id": 3643, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 947, - "src": "5988:15:1", + "scope": 3669, + "src": "5988:15:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5477,10 +5477,10 @@ "typeString": "address" }, "typeName": { - "id": 920, + "id": 3642, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5988:7:1", + "src": "5988:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5491,11 +5491,11 @@ }, { "constant": false, - "id": 923, + "id": 3645, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 947, - "src": "6005:11:1", + "scope": 3669, + "src": "6005:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5503,10 +5503,10 @@ "typeString": "uint256" }, "typeName": { - "id": 922, + "id": 3644, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6005:4:1", + "src": "6005:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5516,20 +5516,20 @@ "visibility": "internal" } ], - "src": "5987:30:1" + "src": "5987:30:25" }, "payable": false, "returnParameters": { - "id": 927, + "id": 3649, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 926, + "id": 3648, "name": "success", "nodeType": "VariableDeclaration", - "scope": 947, - "src": "6034:12:1", + "scope": 3669, + "src": "6034:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5537,10 +5537,10 @@ "typeString": "bool" }, "typeName": { - "id": 925, + "id": 3647, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6034:4:1", + "src": "6034:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5550,24 +5550,24 @@ "visibility": "internal" } ], - "src": "6033:14:1" + "src": "6033:14:25" }, - "scope": 1091, - "src": "5971:204:1", + "scope": 3813, + "src": "5971:204:25", "stateMutability": "nonpayable", - "superFunction": 675, + "superFunction": 3397, "visibility": "public" }, { "body": { - "id": 1005, + "id": 3727, "nodeType": "Block", - "src": "6798:246:1", + "src": "6798:246:25", "statements": [ { "expression": { "argumentTypes": null, - "id": 967, + "id": 3689, "isConstant": false, "isLValue": false, "isPure": false, @@ -5576,26 +5576,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 958, + "id": 3680, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 803, - "src": "6808:8:1", + "referencedDeclaration": 3525, + "src": "6808:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 960, + "id": 3682, "indexExpression": { "argumentTypes": null, - "id": 959, + "id": 3681, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 949, - "src": "6817:4:1", + "referencedDeclaration": 3671, + "src": "6817:4:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5606,7 +5606,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6808:14:1", + "src": "6808:14:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5619,12 +5619,12 @@ "arguments": [ { "argumentTypes": null, - "id": 965, + "id": 3687, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 953, - "src": "6844:6:1", + "referencedDeclaration": 3675, + "src": "6844:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5642,26 +5642,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 961, + "id": 3683, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 803, - "src": "6825:8:1", + "referencedDeclaration": 3525, + "src": "6825:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 963, + "id": 3685, "indexExpression": { "argumentTypes": null, - "id": 962, + "id": 3684, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 949, - "src": "6834:4:1", + "referencedDeclaration": 3671, + "src": "6834:4:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5672,27 +5672,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6825:14:1", + "src": "6825:14:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 964, + "id": 3686, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 585, - "src": "6825:18:1", + "referencedDeclaration": 3307, + "src": "6825: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": 966, + "id": 3688, "isConstant": false, "isLValue": false, "isPure": false, @@ -5700,26 +5700,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6825:26:1", + "src": "6825:26:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6808:43:1", + "src": "6808:43:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 968, + "id": 3690, "nodeType": "ExpressionStatement", - "src": "6808:43:1" + "src": "6808:43:25" }, { "expression": { "argumentTypes": null, - "id": 984, + "id": 3706, "isConstant": false, "isLValue": false, "isPure": false, @@ -5730,26 +5730,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 969, + "id": 3691, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 809, - "src": "6861:7:1", + "referencedDeclaration": 3531, + "src": "6861:7:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 973, + "id": 3695, "indexExpression": { "argumentTypes": null, - "id": 970, + "id": 3692, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 949, - "src": "6869:4:1", + "referencedDeclaration": 3671, + "src": "6869:4:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5760,29 +5760,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6861:13:1", + "src": "6861:13:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 974, + "id": 3696, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 971, + "id": 3693, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "6875:3:1", + "referencedDeclaration": 3828, + "src": "6875:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 972, + "id": 3694, "isConstant": false, "isLValue": false, "isPure": false, @@ -5790,7 +5790,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6875:10:1", + "src": "6875:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5801,7 +5801,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6861:25:1", + "src": "6861:25:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5814,12 +5814,12 @@ "arguments": [ { "argumentTypes": null, - "id": 982, + "id": 3704, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 953, - "src": "6919:6:1", + "referencedDeclaration": 3675, + "src": "6919:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5839,26 +5839,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 975, + "id": 3697, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 809, - "src": "6889:7:1", + "referencedDeclaration": 3531, + "src": "6889:7:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 977, + "id": 3699, "indexExpression": { "argumentTypes": null, - "id": 976, + "id": 3698, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 949, - "src": "6897:4:1", + "referencedDeclaration": 3671, + "src": "6897:4:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5869,29 +5869,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6889:13:1", + "src": "6889:13:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 980, + "id": 3702, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 978, + "id": 3700, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "6903:3:1", + "referencedDeclaration": 3828, + "src": "6903:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 979, + "id": 3701, "isConstant": false, "isLValue": false, "isPure": false, @@ -5899,7 +5899,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6903:10:1", + "src": "6903:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5910,27 +5910,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6889:25:1", + "src": "6889:25:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 981, + "id": 3703, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 585, - "src": "6889:29:1", + "referencedDeclaration": 3307, + "src": "6889: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": 983, + "id": 3705, "isConstant": false, "isLValue": false, "isPure": false, @@ -5938,26 +5938,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6889:37:1", + "src": "6889:37:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6861:65:1", + "src": "6861:65:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 985, + "id": 3707, "nodeType": "ExpressionStatement", - "src": "6861:65:1" + "src": "6861:65:25" }, { "expression": { "argumentTypes": null, - "id": 995, + "id": 3717, "isConstant": false, "isLValue": false, "isPure": false, @@ -5966,26 +5966,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 986, + "id": 3708, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 803, - "src": "6936:8:1", + "referencedDeclaration": 3525, + "src": "6936:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 988, + "id": 3710, "indexExpression": { "argumentTypes": null, - "id": 987, + "id": 3709, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 951, - "src": "6945:2:1", + "referencedDeclaration": 3673, + "src": "6945:2:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5996,7 +5996,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6936:12:1", + "src": "6936:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6009,12 +6009,12 @@ "arguments": [ { "argumentTypes": null, - "id": 993, + "id": 3715, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 953, - "src": "6968:6:1", + "referencedDeclaration": 3675, + "src": "6968:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6032,26 +6032,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 989, + "id": 3711, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 803, - "src": "6951:8:1", + "referencedDeclaration": 3525, + "src": "6951:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 991, + "id": 3713, "indexExpression": { "argumentTypes": null, - "id": 990, + "id": 3712, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 951, - "src": "6960:2:1", + "referencedDeclaration": 3673, + "src": "6960:2:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6062,27 +6062,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6951:12:1", + "src": "6951:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 992, + "id": 3714, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 563, - "src": "6951:16:1", + "referencedDeclaration": 3285, + "src": "6951: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": 994, + "id": 3716, "isConstant": false, "isLValue": false, "isPure": false, @@ -6090,21 +6090,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6951:24:1", + "src": "6951:24:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6936:39:1", + "src": "6936:39:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 996, + "id": 3718, "nodeType": "ExpressionStatement", - "src": "6936:39:1" + "src": "6936:39:25" }, { "eventCall": { @@ -6112,12 +6112,12 @@ "arguments": [ { "argumentTypes": null, - "id": 998, + "id": 3720, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 949, - "src": "6999:4:1", + "referencedDeclaration": 3671, + "src": "6999:4:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6125,12 +6125,12 @@ }, { "argumentTypes": null, - "id": 999, + "id": 3721, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 951, - "src": "7005:2:1", + "referencedDeclaration": 3673, + "src": "7005:2:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6138,12 +6138,12 @@ }, { "argumentTypes": null, - "id": 1000, + "id": 3722, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 953, - "src": "7009:6:1", + "referencedDeclaration": 3675, + "src": "7009:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6165,18 +6165,18 @@ "typeString": "uint256" } ], - "id": 997, + "id": 3719, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 694, - "src": "6990:8:1", + "referencedDeclaration": 3416, + "src": "6990:8:25", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 1001, + "id": 3723, "isConstant": false, "isLValue": false, "isPure": false, @@ -6184,28 +6184,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6990:26:1", + "src": "6990:26:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1002, + "id": 3724, "nodeType": "EmitStatement", - "src": "6985:31:1" + "src": "6985:31:25" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 1003, + "id": 3725, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "7033:4:1", + "src": "7033:4:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6213,15 +6213,15 @@ }, "value": "true" }, - "functionReturnParameters": 957, - "id": 1004, + "functionReturnParameters": 3679, + "id": 3726, "nodeType": "Return", - "src": "7026:11:1" + "src": "7026:11:25" } ] }, "documentation": null, - "id": 1006, + "id": 3728, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -6229,16 +6229,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 954, + "id": 3676, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 949, + "id": 3671, "name": "from", "nodeType": "VariableDeclaration", - "scope": 1006, - "src": "6729:12:1", + "scope": 3728, + "src": "6729:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6246,10 +6246,10 @@ "typeString": "address" }, "typeName": { - "id": 948, + "id": 3670, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6729:7:1", + "src": "6729:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6260,11 +6260,11 @@ }, { "constant": false, - "id": 951, + "id": 3673, "name": "to", "nodeType": "VariableDeclaration", - "scope": 1006, - "src": "6743:10:1", + "scope": 3728, + "src": "6743:10:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6272,10 +6272,10 @@ "typeString": "address" }, "typeName": { - "id": 950, + "id": 3672, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6743:7:1", + "src": "6743:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6286,11 +6286,11 @@ }, { "constant": false, - "id": 953, + "id": 3675, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 1006, - "src": "6755:11:1", + "scope": 3728, + "src": "6755:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6298,10 +6298,10 @@ "typeString": "uint256" }, "typeName": { - "id": 952, + "id": 3674, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6755:4:1", + "src": "6755:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6311,20 +6311,20 @@ "visibility": "internal" } ], - "src": "6728:39:1" + "src": "6728:39:25" }, "payable": false, "returnParameters": { - "id": 957, + "id": 3679, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 956, + "id": 3678, "name": "success", "nodeType": "VariableDeclaration", - "scope": 1006, - "src": "6784:12:1", + "scope": 3728, + "src": "6784:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6332,10 +6332,10 @@ "typeString": "bool" }, "typeName": { - "id": 955, + "id": 3677, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6784:4:1", + "src": "6784:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6345,19 +6345,19 @@ "visibility": "internal" } ], - "src": "6783:14:1" + "src": "6783:14:25" }, - "scope": 1091, - "src": "6707:337:1", + "scope": 3813, + "src": "6707:337:25", "stateMutability": "nonpayable", - "superFunction": 686, + "superFunction": 3408, "visibility": "public" }, { "body": { - "id": 1021, + "id": 3743, "nodeType": "Block", - "src": "7418:52:1", + "src": "7418:52:25", "statements": [ { "expression": { @@ -6366,26 +6366,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1015, + "id": 3737, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 809, - "src": "7435:7:1", + "referencedDeclaration": 3531, + "src": "7435:7:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 1017, + "id": 3739, "indexExpression": { "argumentTypes": null, - "id": 1016, + "id": 3738, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1008, - "src": "7443:10:1", + "referencedDeclaration": 3730, + "src": "7443:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6396,21 +6396,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7435:19:1", + "src": "7435:19:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1019, + "id": 3741, "indexExpression": { "argumentTypes": null, - "id": 1018, + "id": 3740, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1010, - "src": "7455:7:1", + "referencedDeclaration": 3732, + "src": "7455:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6421,21 +6421,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7435:28:1", + "src": "7435:28:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1014, - "id": 1020, + "functionReturnParameters": 3736, + "id": 3742, "nodeType": "Return", - "src": "7428:35:1" + "src": "7428:35:25" } ] }, "documentation": null, - "id": 1022, + "id": 3744, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -6443,16 +6443,16 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 1011, + "id": 3733, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1008, + "id": 3730, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 1022, - "src": "7344:18:1", + "scope": 3744, + "src": "7344:18:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6460,10 +6460,10 @@ "typeString": "address" }, "typeName": { - "id": 1007, + "id": 3729, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7344:7:1", + "src": "7344:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6474,11 +6474,11 @@ }, { "constant": false, - "id": 1010, + "id": 3732, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 1022, - "src": "7364:15:1", + "scope": 3744, + "src": "7364:15:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6486,10 +6486,10 @@ "typeString": "address" }, "typeName": { - "id": 1009, + "id": 3731, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7364:7:1", + "src": "7364:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6499,20 +6499,20 @@ "visibility": "internal" } ], - "src": "7343:37:1" + "src": "7343:37:25" }, "payable": false, "returnParameters": { - "id": 1014, + "id": 3736, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1013, + "id": 3735, "name": "remaining", "nodeType": "VariableDeclaration", - "scope": 1022, - "src": "7402:14:1", + "scope": 3744, + "src": "7402:14:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6520,10 +6520,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1012, + "id": 3734, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7402:4:1", + "src": "7402:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6533,24 +6533,24 @@ "visibility": "internal" } ], - "src": "7401:16:1" + "src": "7401:16:25" }, - "scope": 1091, - "src": "7325:145:1", + "scope": 3813, + "src": "7325:145:25", "stateMutability": "view", - "superFunction": 657, + "superFunction": 3379, "visibility": "public" }, { "body": { - "id": 1062, + "id": 3784, "nodeType": "Block", - "src": "7926:216:1", + "src": "7926:216:25", "statements": [ { "expression": { "argumentTypes": null, - "id": 1040, + "id": 3762, "isConstant": false, "isLValue": false, "isPure": false, @@ -6561,34 +6561,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1033, + "id": 3755, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 809, - "src": "7936:7:1", + "referencedDeclaration": 3531, + "src": "7936:7:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 1037, + "id": 3759, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1034, + "id": 3756, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "7944:3:1", + "referencedDeclaration": 3828, + "src": "7944:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1035, + "id": 3757, "isConstant": false, "isLValue": false, "isPure": false, @@ -6596,7 +6596,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7944:10:1", + "src": "7944:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6607,21 +6607,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7936:19:1", + "src": "7936:19:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1038, + "id": 3760, "indexExpression": { "argumentTypes": null, - "id": 1036, + "id": 3758, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1024, - "src": "7956:7:1", + "referencedDeclaration": 3746, + "src": "7956:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6632,7 +6632,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7936:28:1", + "src": "7936:28:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6642,26 +6642,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1039, + "id": 3761, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1026, - "src": "7967:6:1", + "referencedDeclaration": 3748, + "src": "7967:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7936:37:1", + "src": "7936:37:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1041, + "id": 3763, "nodeType": "ExpressionStatement", - "src": "7936:37:1" + "src": "7936:37:25" }, { "eventCall": { @@ -6671,18 +6671,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1043, + "id": 3765, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "7997:3:1", + "referencedDeclaration": 3828, + "src": "7997:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1044, + "id": 3766, "isConstant": false, "isLValue": false, "isPure": false, @@ -6690,7 +6690,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7997:10:1", + "src": "7997:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6698,12 +6698,12 @@ }, { "argumentTypes": null, - "id": 1045, + "id": 3767, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1024, - "src": "8009:7:1", + "referencedDeclaration": 3746, + "src": "8009:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6711,12 +6711,12 @@ }, { "argumentTypes": null, - "id": 1046, + "id": 3768, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1026, - "src": "8018:6:1", + "referencedDeclaration": 3748, + "src": "8018:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6738,18 +6738,18 @@ "typeString": "uint256" } ], - "id": 1042, + "id": 3764, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 702, - "src": "7988:8:1", + "referencedDeclaration": 3424, + "src": "7988:8:25", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 1047, + "id": 3769, "isConstant": false, "isLValue": false, "isPure": false, @@ -6757,15 +6757,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7988:37:1", + "src": "7988:37:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1048, + "id": 3770, "nodeType": "EmitStatement", - "src": "7983:42:1" + "src": "7983:42:25" }, { "expression": { @@ -6775,18 +6775,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1053, + "id": 3775, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "8083:3:1", + "referencedDeclaration": 3828, + "src": "8083:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1054, + "id": 3776, "isConstant": false, "isLValue": false, "isPure": false, @@ -6794,7 +6794,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8083:10:1", + "src": "8083:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6802,12 +6802,12 @@ }, { "argumentTypes": null, - "id": 1055, + "id": 3777, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1026, - "src": "8095:6:1", + "referencedDeclaration": 3748, + "src": "8095:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6815,25 +6815,25 @@ }, { "argumentTypes": null, - "id": 1056, + "id": 3778, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1137, - "src": "8103:4:1", + "referencedDeclaration": 3907, + "src": "8103:4:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_TestToken_$1091", + "typeIdentifier": "t_contract$_TestToken_$3813", "typeString": "contract TestToken" } }, { "argumentTypes": null, - "id": 1057, + "id": 3779, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1028, - "src": "8109:4:1", + "referencedDeclaration": 3750, + "src": "8109:4:25", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -6851,7 +6851,7 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_contract$_TestToken_$1091", + "typeIdentifier": "t_contract$_TestToken_$3813", "typeString": "contract TestToken" }, { @@ -6864,12 +6864,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1050, + "id": 3772, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1024, - "src": "8058:7:1", + "referencedDeclaration": 3746, + "src": "8058:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6883,18 +6883,18 @@ "typeString": "address" } ], - "id": 1049, + "id": 3771, "name": "ApproveAndCallFallBack", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 715, - "src": "8035:22:1", + "referencedDeclaration": 3437, + "src": "8035:22:25", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$715_$", + "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3437_$", "typeString": "type(contract ApproveAndCallFallBack)" } }, - "id": 1051, + "id": 3773, "isConstant": false, "isLValue": false, "isPure": false, @@ -6902,27 +6902,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8035:31:1", + "src": "8035:31:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$715", + "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3437", "typeString": "contract ApproveAndCallFallBack" } }, - "id": 1052, + "id": 3774, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "receiveApproval", "nodeType": "MemberAccess", - "referencedDeclaration": 714, - "src": "8035:47:1", + "referencedDeclaration": 3436, + "src": "8035: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": 1058, + "id": 3780, "isConstant": false, "isLValue": false, "isPure": false, @@ -6930,28 +6930,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8035:79:1", + "src": "8035:79:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1059, + "id": 3781, "nodeType": "ExpressionStatement", - "src": "8035:79:1" + "src": "8035:79:25" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 1060, + "id": 3782, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "8131:4:1", + "src": "8131:4:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6959,15 +6959,15 @@ }, "value": "true" }, - "functionReturnParameters": 1032, - "id": 1061, + "functionReturnParameters": 3754, + "id": 3783, "nodeType": "Return", - "src": "8124:11:1" + "src": "8124:11:25" } ] }, "documentation": null, - "id": 1063, + "id": 3785, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -6975,16 +6975,16 @@ "name": "approveAndCall", "nodeType": "FunctionDefinition", "parameters": { - "id": 1029, + "id": 3751, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1024, + "id": 3746, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 1063, - "src": "7854:15:1", + "scope": 3785, + "src": "7854:15:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6992,10 +6992,10 @@ "typeString": "address" }, "typeName": { - "id": 1023, + "id": 3745, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7854:7:1", + "src": "7854:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7006,11 +7006,11 @@ }, { "constant": false, - "id": 1026, + "id": 3748, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 1063, - "src": "7871:11:1", + "scope": 3785, + "src": "7871:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7018,10 +7018,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1025, + "id": 3747, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7871:4:1", + "src": "7871:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7032,11 +7032,11 @@ }, { "constant": false, - "id": 1028, + "id": 3750, "name": "data", "nodeType": "VariableDeclaration", - "scope": 1063, - "src": "7884:10:1", + "scope": 3785, + "src": "7884:10:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7044,10 +7044,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1027, + "id": 3749, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "7884:5:1", + "src": "7884:5:25", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -7057,20 +7057,20 @@ "visibility": "internal" } ], - "src": "7853:42:1" + "src": "7853:42:25" }, "payable": false, "returnParameters": { - "id": 1032, + "id": 3754, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1031, + "id": 3753, "name": "success", "nodeType": "VariableDeclaration", - "scope": 1063, - "src": "7912:12:1", + "scope": 3785, + "src": "7912:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7078,10 +7078,10 @@ "typeString": "bool" }, "typeName": { - "id": 1030, + "id": 3752, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7912:4:1", + "src": "7912:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7091,19 +7091,19 @@ "visibility": "internal" } ], - "src": "7911:14:1" + "src": "7911:14:25" }, - "scope": 1091, - "src": "7830:312:1", + "scope": 3813, + "src": "7830:312:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1069, + "id": 3791, "nodeType": "Block", - "src": "8360:25:1", + "src": "8360:25:25", "statements": [ { "expression": { @@ -7111,21 +7111,21 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1066, + "id": 3788, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 1111, - 1112 + 3833, + 3834 ], - "referencedDeclaration": 1111, - "src": "8370:6:1", + "referencedDeclaration": 3833, + "src": "8370:6:25", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 1067, + "id": 3789, "isConstant": false, "isLValue": false, "isPure": false, @@ -7133,20 +7133,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8370:8:1", + "src": "8370:8:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1068, + "id": 3790, "nodeType": "ExpressionStatement", - "src": "8370:8:1" + "src": "8370:8:25" } ] }, "documentation": null, - "id": 1070, + "id": 3792, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -7154,29 +7154,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 1064, + "id": 3786, "nodeType": "ParameterList", "parameters": [], - "src": "8342:2:1" + "src": "8342:2:25" }, "payable": true, "returnParameters": { - "id": 1065, + "id": 3787, "nodeType": "ParameterList", "parameters": [], - "src": "8360:0:1" + "src": "8360:0:25" }, - "scope": 1091, - "src": "8333:52:1", + "scope": 3813, + "src": "8333:52:25", "stateMutability": "payable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1089, + "id": 3811, "nodeType": "Block", - "src": "8723:76:1", + "src": "8723:76:25", "statements": [ { "expression": { @@ -7184,12 +7184,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1085, + "id": 3807, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 717, - "src": "8778:5:1", + "referencedDeclaration": 3439, + "src": "8778:5:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7197,12 +7197,12 @@ }, { "argumentTypes": null, - "id": 1086, + "id": 3808, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1074, - "src": "8785:6:1", + "referencedDeclaration": 3796, + "src": "8785:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7225,12 +7225,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1082, + "id": 3804, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1072, - "src": "8755:12:1", + "referencedDeclaration": 3794, + "src": "8755:12:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7244,18 +7244,18 @@ "typeString": "address" } ], - "id": 1081, + "id": 3803, "name": "ERC20Interface", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 703, - "src": "8740:14:1", + "referencedDeclaration": 3425, + "src": "8740:14:25", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$703_$", + "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3425_$", "typeString": "type(contract ERC20Interface)" } }, - "id": 1083, + "id": 3805, "isConstant": false, "isLValue": false, "isPure": false, @@ -7263,27 +7263,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8740:28:1", + "src": "8740:28:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$703", + "typeIdentifier": "t_contract$_ERC20Interface_$3425", "typeString": "contract ERC20Interface" } }, - "id": 1084, + "id": 3806, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 666, - "src": "8740:37:1", + "referencedDeclaration": 3388, + "src": "8740:37:25", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 1087, + "id": 3809, "isConstant": false, "isLValue": false, "isPure": false, @@ -7291,58 +7291,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8740:52:1", + "src": "8740:52:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1080, - "id": 1088, + "functionReturnParameters": 3802, + "id": 3810, "nodeType": "Return", - "src": "8733:59:1" + "src": "8733:59:25" } ] }, "documentation": null, - "id": 1090, + "id": 3812, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1077, + "id": 3799, "modifierName": { "argumentTypes": null, - "id": 1076, + "id": 3798, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 745, - "src": "8690:9:1", + "referencedDeclaration": 3467, + "src": "8690:9:25", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "8690:9:1" + "src": "8690:9:25" } ], "name": "transferAnyERC20Token", "nodeType": "FunctionDefinition", "parameters": { - "id": 1075, + "id": 3797, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1072, + "id": 3794, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 1090, - "src": "8648:20:1", + "scope": 3812, + "src": "8648:20:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7350,10 +7350,10 @@ "typeString": "address" }, "typeName": { - "id": 1071, + "id": 3793, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8648:7:1", + "src": "8648:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7364,11 +7364,11 @@ }, { "constant": false, - "id": 1074, + "id": 3796, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 1090, - "src": "8670:11:1", + "scope": 3812, + "src": "8670:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7376,10 +7376,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1073, + "id": 3795, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8670:4:1", + "src": "8670:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7389,20 +7389,20 @@ "visibility": "internal" } ], - "src": "8647:35:1" + "src": "8647:35:25" }, "payable": false, "returnParameters": { - "id": 1080, + "id": 3802, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1079, + "id": 3801, "name": "success", "nodeType": "VariableDeclaration", - "scope": 1090, - "src": "8709:12:1", + "scope": 3812, + "src": "8709:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7410,10 +7410,10 @@ "typeString": "bool" }, "typeName": { - "id": 1078, + "id": 3800, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "8709:4:1", + "src": "8709:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7423,45 +7423,45 @@ "visibility": "internal" } ], - "src": "8708:14:1" + "src": "8708:14:25" }, - "scope": 1091, - "src": "8617:182:1", + "scope": 3813, + "src": "8617:182:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1092, - "src": "3506:5295:1" + "scope": 3814, + "src": "3506:5295:25" } ], - "src": "0:8801:1" + "src": "0:8801:25" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", "exportedSymbols": { "ApproveAndCallFallBack": [ - 715 + 3437 ], "ERC20Interface": [ - 703 + 3425 ], "Owned": [ - 784 + 3506 ], "SafeMath": [ - 636 + 3358 ], "TestToken": [ - 1091 + 3813 ] }, - "id": 1092, + "id": 3814, "nodeType": "SourceUnit", "nodes": [ { - "id": 541, + "id": 3263, "literals": [ "solidity", "^", @@ -7469,7 +7469,7 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:1" + "src": "0:24:25" }, { "baseContracts": [], @@ -7477,35 +7477,35 @@ "contractKind": "library", "documentation": null, "fullyImplemented": true, - "id": 636, + "id": 3358, "linearizedBaseContracts": [ - 636 + 3358 ], "name": "SafeMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 562, + "id": 3284, "nodeType": "Block", - "src": "719:51:1", + "src": "719:51:25", "statements": [ { "expression": { "argumentTypes": null, - "id": 554, + "id": 3276, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 550, + "id": 3272, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "729:1:1", + "referencedDeclaration": 3270, + "src": "729:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7519,19 +7519,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 553, + "id": 3275, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 551, + "id": 3273, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 543, - "src": "733:1:1", + "referencedDeclaration": 3265, + "src": "733:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7541,32 +7541,32 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 552, + "id": 3274, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 545, - "src": "737:1:1", + "referencedDeclaration": 3267, + "src": "737:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "733:5:1", + "src": "733:5:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "729:9:1", + "src": "729:9:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 555, + "id": 3277, "nodeType": "ExpressionStatement", - "src": "729:9:1" + "src": "729:9:25" }, { "expression": { @@ -7578,19 +7578,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 559, + "id": 3281, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 557, + "id": 3279, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "756:1:1", + "referencedDeclaration": 3270, + "src": "756:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7600,18 +7600,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 558, + "id": 3280, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 543, - "src": "761:1:1", + "referencedDeclaration": 3265, + "src": "761:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "756:6:1", + "src": "756:6:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7625,21 +7625,21 @@ "typeString": "bool" } ], - "id": 556, + "id": 3278, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1109, - 1110 + 3831, + 3832 ], - "referencedDeclaration": 1109, - "src": "748:7:1", + "referencedDeclaration": 3831, + "src": "748:7:25", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 560, + "id": 3282, "isConstant": false, "isLValue": false, "isPure": false, @@ -7647,20 +7647,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "748:15:1", + "src": "748:15:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 561, + "id": 3283, "nodeType": "ExpressionStatement", - "src": "748:15:1" + "src": "748:15:25" } ] }, "documentation": null, - "id": 563, + "id": 3285, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -7668,16 +7668,16 @@ "name": "add", "nodeType": "FunctionDefinition", "parameters": { - "id": 546, + "id": 3268, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 543, + "id": 3265, "name": "a", "nodeType": "VariableDeclaration", - "scope": 563, - "src": "672:6:1", + "scope": 3285, + "src": "672:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7685,10 +7685,10 @@ "typeString": "uint256" }, "typeName": { - "id": 542, + "id": 3264, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "672:4:1", + "src": "672:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7699,11 +7699,11 @@ }, { "constant": false, - "id": 545, + "id": 3267, "name": "b", "nodeType": "VariableDeclaration", - "scope": 563, - "src": "680:6:1", + "scope": 3285, + "src": "680:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7711,10 +7711,10 @@ "typeString": "uint256" }, "typeName": { - "id": 544, + "id": 3266, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "680:4:1", + "src": "680:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7724,20 +7724,20 @@ "visibility": "internal" } ], - "src": "671:16:1" + "src": "671:16:25" }, "payable": false, "returnParameters": { - "id": 549, + "id": 3271, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 548, + "id": 3270, "name": "c", "nodeType": "VariableDeclaration", - "scope": 563, - "src": "711:6:1", + "scope": 3285, + "src": "711:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7745,10 +7745,10 @@ "typeString": "uint256" }, "typeName": { - "id": 547, + "id": 3269, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "711:4:1", + "src": "711:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7758,19 +7758,19 @@ "visibility": "internal" } ], - "src": "710:8:1" + "src": "710:8:25" }, - "scope": 636, - "src": "659:111:1", + "scope": 3358, + "src": "659:111:25", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 584, + "id": 3306, "nodeType": "Block", - "src": "835:51:1", + "src": "835:51:25", "statements": [ { "expression": { @@ -7782,19 +7782,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 575, + "id": 3297, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 573, + "id": 3295, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 567, - "src": "853:1:1", + "referencedDeclaration": 3289, + "src": "853:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7804,18 +7804,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 574, + "id": 3296, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 565, - "src": "858:1:1", + "referencedDeclaration": 3287, + "src": "858:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "853:6:1", + "src": "853:6:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7829,21 +7829,21 @@ "typeString": "bool" } ], - "id": 572, + "id": 3294, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1109, - 1110 + 3831, + 3832 ], - "referencedDeclaration": 1109, - "src": "845:7:1", + "referencedDeclaration": 3831, + "src": "845:7:25", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 576, + "id": 3298, "isConstant": false, "isLValue": false, "isPure": false, @@ -7851,32 +7851,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "845:15:1", + "src": "845:15:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 577, + "id": 3299, "nodeType": "ExpressionStatement", - "src": "845:15:1" + "src": "845:15:25" }, { "expression": { "argumentTypes": null, - "id": 582, + "id": 3304, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 578, + "id": 3300, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 570, - "src": "870:1:1", + "referencedDeclaration": 3292, + "src": "870:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7890,19 +7890,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 581, + "id": 3303, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 579, + "id": 3301, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 565, - "src": "874:1:1", + "referencedDeclaration": 3287, + "src": "874:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7912,37 +7912,37 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 580, + "id": 3302, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 567, - "src": "878:1:1", + "referencedDeclaration": 3289, + "src": "878:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "874:5:1", + "src": "874:5:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "870:9:1", + "src": "870:9:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 583, + "id": 3305, "nodeType": "ExpressionStatement", - "src": "870:9:1" + "src": "870:9:25" } ] }, "documentation": null, - "id": 585, + "id": 3307, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -7950,16 +7950,16 @@ "name": "sub", "nodeType": "FunctionDefinition", "parameters": { - "id": 568, + "id": 3290, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 565, + "id": 3287, "name": "a", "nodeType": "VariableDeclaration", - "scope": 585, - "src": "788:6:1", + "scope": 3307, + "src": "788:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7967,10 +7967,10 @@ "typeString": "uint256" }, "typeName": { - "id": 564, + "id": 3286, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "788:4:1", + "src": "788:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7981,11 +7981,11 @@ }, { "constant": false, - "id": 567, + "id": 3289, "name": "b", "nodeType": "VariableDeclaration", - "scope": 585, - "src": "796:6:1", + "scope": 3307, + "src": "796:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7993,10 +7993,10 @@ "typeString": "uint256" }, "typeName": { - "id": 566, + "id": 3288, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "796:4:1", + "src": "796:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8006,20 +8006,20 @@ "visibility": "internal" } ], - "src": "787:16:1" + "src": "787:16:25" }, "payable": false, "returnParameters": { - "id": 571, + "id": 3293, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 570, + "id": 3292, "name": "c", "nodeType": "VariableDeclaration", - "scope": 585, - "src": "827:6:1", + "scope": 3307, + "src": "827:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8027,10 +8027,10 @@ "typeString": "uint256" }, "typeName": { - "id": 569, + "id": 3291, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "827:4:1", + "src": "827:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8040,36 +8040,36 @@ "visibility": "internal" } ], - "src": "826:8:1" + "src": "826:8:25" }, - "scope": 636, - "src": "775:111:1", + "scope": 3358, + "src": "775:111:25", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 612, + "id": 3334, "nodeType": "Block", - "src": "951:65:1", + "src": "951:65:25", "statements": [ { "expression": { "argumentTypes": null, - "id": 598, + "id": 3320, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 594, + "id": 3316, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 592, - "src": "961:1:1", + "referencedDeclaration": 3314, + "src": "961:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8083,19 +8083,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 597, + "id": 3319, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 595, + "id": 3317, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 587, - "src": "965:1:1", + "referencedDeclaration": 3309, + "src": "965:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8105,32 +8105,32 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 596, + "id": 3318, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 589, - "src": "969:1:1", + "referencedDeclaration": 3311, + "src": "969:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "965:5:1", + "src": "965:5:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "961:9:1", + "src": "961:9:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 599, + "id": 3321, "nodeType": "ExpressionStatement", - "src": "961:9:1" + "src": "961:9:25" }, { "expression": { @@ -8142,7 +8142,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 609, + "id": 3331, "isConstant": false, "isLValue": false, "isPure": false, @@ -8153,19 +8153,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 603, + "id": 3325, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 601, + "id": 3323, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 587, - "src": "988:1:1", + "referencedDeclaration": 3309, + "src": "988:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8176,14 +8176,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 602, + "id": 3324, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "993:1:1", + "src": "993:1:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -8191,7 +8191,7 @@ }, "value": "0" }, - "src": "988:6:1", + "src": "988:6:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8205,7 +8205,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 608, + "id": 3330, "isConstant": false, "isLValue": false, "isPure": false, @@ -8216,19 +8216,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 606, + "id": 3328, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 604, + "id": 3326, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 592, - "src": "998:1:1", + "referencedDeclaration": 3314, + "src": "998:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8238,18 +8238,18 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 605, + "id": 3327, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 587, - "src": "1002:1:1", + "referencedDeclaration": 3309, + "src": "1002:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "998:5:1", + "src": "998:5:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8259,24 +8259,24 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 607, + "id": 3329, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 589, - "src": "1007:1:1", + "referencedDeclaration": 3311, + "src": "1007:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "998:10:1", + "src": "998:10:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "988:20:1", + "src": "988:20:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8290,21 +8290,21 @@ "typeString": "bool" } ], - "id": 600, + "id": 3322, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1109, - 1110 + 3831, + 3832 ], - "referencedDeclaration": 1109, - "src": "980:7:1", + "referencedDeclaration": 3831, + "src": "980:7:25", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 610, + "id": 3332, "isConstant": false, "isLValue": false, "isPure": false, @@ -8312,20 +8312,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "980:29:1", + "src": "980:29:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 611, + "id": 3333, "nodeType": "ExpressionStatement", - "src": "980:29:1" + "src": "980:29:25" } ] }, "documentation": null, - "id": 613, + "id": 3335, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -8333,16 +8333,16 @@ "name": "mul", "nodeType": "FunctionDefinition", "parameters": { - "id": 590, + "id": 3312, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 587, + "id": 3309, "name": "a", "nodeType": "VariableDeclaration", - "scope": 613, - "src": "904:6:1", + "scope": 3335, + "src": "904:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8350,10 +8350,10 @@ "typeString": "uint256" }, "typeName": { - "id": 586, + "id": 3308, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "904:4:1", + "src": "904:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8364,11 +8364,11 @@ }, { "constant": false, - "id": 589, + "id": 3311, "name": "b", "nodeType": "VariableDeclaration", - "scope": 613, - "src": "912:6:1", + "scope": 3335, + "src": "912:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8376,10 +8376,10 @@ "typeString": "uint256" }, "typeName": { - "id": 588, + "id": 3310, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "912:4:1", + "src": "912:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8389,20 +8389,20 @@ "visibility": "internal" } ], - "src": "903:16:1" + "src": "903:16:25" }, "payable": false, "returnParameters": { - "id": 593, + "id": 3315, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 592, + "id": 3314, "name": "c", "nodeType": "VariableDeclaration", - "scope": 613, - "src": "943:6:1", + "scope": 3335, + "src": "943:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8410,10 +8410,10 @@ "typeString": "uint256" }, "typeName": { - "id": 591, + "id": 3313, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "943:4:1", + "src": "943:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8423,19 +8423,19 @@ "visibility": "internal" } ], - "src": "942:8:1" + "src": "942:8:25" }, - "scope": 636, - "src": "891:125:1", + "scope": 3358, + "src": "891:125:25", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 634, + "id": 3356, "nodeType": "Block", - "src": "1081:50:1", + "src": "1081:50:25", "statements": [ { "expression": { @@ -8447,19 +8447,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 625, + "id": 3347, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 623, + "id": 3345, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 617, - "src": "1099:1:1", + "referencedDeclaration": 3339, + "src": "1099:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8470,14 +8470,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 624, + "id": 3346, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1103:1:1", + "src": "1103:1:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -8485,7 +8485,7 @@ }, "value": "0" }, - "src": "1099:5:1", + "src": "1099:5:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8499,21 +8499,21 @@ "typeString": "bool" } ], - "id": 622, + "id": 3344, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1109, - 1110 + 3831, + 3832 ], - "referencedDeclaration": 1109, - "src": "1091:7:1", + "referencedDeclaration": 3831, + "src": "1091:7:25", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 626, + "id": 3348, "isConstant": false, "isLValue": false, "isPure": false, @@ -8521,32 +8521,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1091:14:1", + "src": "1091:14:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 627, + "id": 3349, "nodeType": "ExpressionStatement", - "src": "1091:14:1" + "src": "1091:14:25" }, { "expression": { "argumentTypes": null, - "id": 632, + "id": 3354, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 628, + "id": 3350, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 620, - "src": "1115:1:1", + "referencedDeclaration": 3342, + "src": "1115:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8560,19 +8560,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 631, + "id": 3353, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 629, + "id": 3351, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 615, - "src": "1119:1:1", + "referencedDeclaration": 3337, + "src": "1119:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8582,37 +8582,37 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 630, + "id": 3352, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 617, - "src": "1123:1:1", + "referencedDeclaration": 3339, + "src": "1123:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1119:5:1", + "src": "1119:5:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1115:9:1", + "src": "1115:9:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 633, + "id": 3355, "nodeType": "ExpressionStatement", - "src": "1115:9:1" + "src": "1115:9:25" } ] }, "documentation": null, - "id": 635, + "id": 3357, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -8620,16 +8620,16 @@ "name": "div", "nodeType": "FunctionDefinition", "parameters": { - "id": 618, + "id": 3340, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 615, + "id": 3337, "name": "a", "nodeType": "VariableDeclaration", - "scope": 635, - "src": "1034:6:1", + "scope": 3357, + "src": "1034:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8637,10 +8637,10 @@ "typeString": "uint256" }, "typeName": { - "id": 614, + "id": 3336, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1034:4:1", + "src": "1034:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8651,11 +8651,11 @@ }, { "constant": false, - "id": 617, + "id": 3339, "name": "b", "nodeType": "VariableDeclaration", - "scope": 635, - "src": "1042:6:1", + "scope": 3357, + "src": "1042:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8663,10 +8663,10 @@ "typeString": "uint256" }, "typeName": { - "id": 616, + "id": 3338, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1042:4:1", + "src": "1042:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8676,20 +8676,20 @@ "visibility": "internal" } ], - "src": "1033:16:1" + "src": "1033:16:25" }, "payable": false, "returnParameters": { - "id": 621, + "id": 3343, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 620, + "id": 3342, "name": "c", "nodeType": "VariableDeclaration", - "scope": 635, - "src": "1073:6:1", + "scope": 3357, + "src": "1073:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8697,10 +8697,10 @@ "typeString": "uint256" }, "typeName": { - "id": 619, + "id": 3341, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1073:4:1", + "src": "1073:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8710,17 +8710,17 @@ "visibility": "internal" } ], - "src": "1072:8:1" + "src": "1072:8:25" }, - "scope": 636, - "src": "1021:110:1", + "scope": 3358, + "src": "1021:110:25", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], - "scope": 1092, - "src": "636:497:1" + "scope": 3814, + "src": "636:497:25" }, { "baseContracts": [], @@ -8728,9 +8728,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 703, + "id": 3425, "linearizedBaseContracts": [ - 703 + 3425 ], "name": "ERC20Interface", "nodeType": "ContractDefinition", @@ -8738,7 +8738,7 @@ { "body": null, "documentation": null, - "id": 641, + "id": 3363, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -8746,23 +8746,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 637, + "id": 3359, "nodeType": "ParameterList", "parameters": [], - "src": "1445:2:1" + "src": "1445:2:25" }, "payable": false, "returnParameters": { - "id": 640, + "id": 3362, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 639, + "id": 3361, "name": "", "nodeType": "VariableDeclaration", - "scope": 641, - "src": "1473:4:1", + "scope": 3363, + "src": "1473:4:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8770,10 +8770,10 @@ "typeString": "uint256" }, "typeName": { - "id": 638, + "id": 3360, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1473:4:1", + "src": "1473:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8783,10 +8783,10 @@ "visibility": "internal" } ], - "src": "1472:6:1" + "src": "1472:6:25" }, - "scope": 703, - "src": "1425:54:1", + "scope": 3425, + "src": "1425:54:25", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -8794,7 +8794,7 @@ { "body": null, "documentation": null, - "id": 648, + "id": 3370, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -8802,16 +8802,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 644, + "id": 3366, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 643, + "id": 3365, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 648, - "src": "1503:18:1", + "scope": 3370, + "src": "1503:18:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8819,10 +8819,10 @@ "typeString": "address" }, "typeName": { - "id": 642, + "id": 3364, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1503:7:1", + "src": "1503:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8832,20 +8832,20 @@ "visibility": "internal" } ], - "src": "1502:20:1" + "src": "1502:20:25" }, "payable": false, "returnParameters": { - "id": 647, + "id": 3369, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 646, + "id": 3368, "name": "balance", "nodeType": "VariableDeclaration", - "scope": 648, - "src": "1548:12:1", + "scope": 3370, + "src": "1548:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8853,10 +8853,10 @@ "typeString": "uint256" }, "typeName": { - "id": 645, + "id": 3367, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1548:4:1", + "src": "1548:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8866,10 +8866,10 @@ "visibility": "internal" } ], - "src": "1547:14:1" + "src": "1547:14:25" }, - "scope": 703, - "src": "1484:78:1", + "scope": 3425, + "src": "1484:78:25", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -8877,7 +8877,7 @@ { "body": null, "documentation": null, - "id": 657, + "id": 3379, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -8885,16 +8885,16 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 653, + "id": 3375, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 650, + "id": 3372, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 657, - "src": "1586:18:1", + "scope": 3379, + "src": "1586:18:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8902,10 +8902,10 @@ "typeString": "address" }, "typeName": { - "id": 649, + "id": 3371, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1586:7:1", + "src": "1586:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8916,11 +8916,11 @@ }, { "constant": false, - "id": 652, + "id": 3374, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 657, - "src": "1606:15:1", + "scope": 3379, + "src": "1606:15:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8928,10 +8928,10 @@ "typeString": "address" }, "typeName": { - "id": 651, + "id": 3373, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1606:7:1", + "src": "1606:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8941,20 +8941,20 @@ "visibility": "internal" } ], - "src": "1585:37:1" + "src": "1585:37:25" }, "payable": false, "returnParameters": { - "id": 656, + "id": 3378, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 655, + "id": 3377, "name": "remaining", "nodeType": "VariableDeclaration", - "scope": 657, - "src": "1648:14:1", + "scope": 3379, + "src": "1648:14:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8962,10 +8962,10 @@ "typeString": "uint256" }, "typeName": { - "id": 654, + "id": 3376, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1648:4:1", + "src": "1648:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8975,10 +8975,10 @@ "visibility": "internal" } ], - "src": "1647:16:1" + "src": "1647:16:25" }, - "scope": 703, - "src": "1567:97:1", + "scope": 3425, + "src": "1567:97:25", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -8986,7 +8986,7 @@ { "body": null, "documentation": null, - "id": 666, + "id": 3388, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -8994,16 +8994,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 662, + "id": 3384, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 659, + "id": 3381, "name": "to", "nodeType": "VariableDeclaration", - "scope": 666, - "src": "1687:10:1", + "scope": 3388, + "src": "1687:10:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9011,10 +9011,10 @@ "typeString": "address" }, "typeName": { - "id": 658, + "id": 3380, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1687:7:1", + "src": "1687:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9025,11 +9025,11 @@ }, { "constant": false, - "id": 661, + "id": 3383, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 666, - "src": "1699:11:1", + "scope": 3388, + "src": "1699:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9037,10 +9037,10 @@ "typeString": "uint256" }, "typeName": { - "id": 660, + "id": 3382, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1699:4:1", + "src": "1699:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9050,20 +9050,20 @@ "visibility": "internal" } ], - "src": "1686:25:1" + "src": "1686:25:25" }, "payable": false, "returnParameters": { - "id": 665, + "id": 3387, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 664, + "id": 3386, "name": "success", "nodeType": "VariableDeclaration", - "scope": 666, - "src": "1728:12:1", + "scope": 3388, + "src": "1728:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9071,10 +9071,10 @@ "typeString": "bool" }, "typeName": { - "id": 663, + "id": 3385, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1728:4:1", + "src": "1728:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9084,10 +9084,10 @@ "visibility": "internal" } ], - "src": "1727:14:1" + "src": "1727:14:25" }, - "scope": 703, - "src": "1669:73:1", + "scope": 3425, + "src": "1669:73:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -9095,7 +9095,7 @@ { "body": null, "documentation": null, - "id": 675, + "id": 3397, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -9103,16 +9103,16 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 671, + "id": 3393, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 668, + "id": 3390, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 675, - "src": "1764:15:1", + "scope": 3397, + "src": "1764:15:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9120,10 +9120,10 @@ "typeString": "address" }, "typeName": { - "id": 667, + "id": 3389, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1764:7:1", + "src": "1764:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9134,11 +9134,11 @@ }, { "constant": false, - "id": 670, + "id": 3392, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 675, - "src": "1781:11:1", + "scope": 3397, + "src": "1781:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9146,10 +9146,10 @@ "typeString": "uint256" }, "typeName": { - "id": 669, + "id": 3391, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1781:4:1", + "src": "1781:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9159,20 +9159,20 @@ "visibility": "internal" } ], - "src": "1763:30:1" + "src": "1763:30:25" }, "payable": false, "returnParameters": { - "id": 674, + "id": 3396, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 673, + "id": 3395, "name": "success", "nodeType": "VariableDeclaration", - "scope": 675, - "src": "1810:12:1", + "scope": 3397, + "src": "1810:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9180,10 +9180,10 @@ "typeString": "bool" }, "typeName": { - "id": 672, + "id": 3394, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1810:4:1", + "src": "1810:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9193,10 +9193,10 @@ "visibility": "internal" } ], - "src": "1809:14:1" + "src": "1809:14:25" }, - "scope": 703, - "src": "1747:77:1", + "scope": 3425, + "src": "1747:77:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -9204,7 +9204,7 @@ { "body": null, "documentation": null, - "id": 686, + "id": 3408, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -9212,16 +9212,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 682, + "id": 3404, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 677, + "id": 3399, "name": "from", "nodeType": "VariableDeclaration", - "scope": 686, - "src": "1851:12:1", + "scope": 3408, + "src": "1851:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9229,10 +9229,10 @@ "typeString": "address" }, "typeName": { - "id": 676, + "id": 3398, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1851:7:1", + "src": "1851:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9243,11 +9243,11 @@ }, { "constant": false, - "id": 679, + "id": 3401, "name": "to", "nodeType": "VariableDeclaration", - "scope": 686, - "src": "1865:10:1", + "scope": 3408, + "src": "1865:10:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9255,10 +9255,10 @@ "typeString": "address" }, "typeName": { - "id": 678, + "id": 3400, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1865:7:1", + "src": "1865:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9269,11 +9269,11 @@ }, { "constant": false, - "id": 681, + "id": 3403, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 686, - "src": "1877:11:1", + "scope": 3408, + "src": "1877:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9281,10 +9281,10 @@ "typeString": "uint256" }, "typeName": { - "id": 680, + "id": 3402, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1877:4:1", + "src": "1877:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9294,20 +9294,20 @@ "visibility": "internal" } ], - "src": "1850:39:1" + "src": "1850:39:25" }, "payable": false, "returnParameters": { - "id": 685, + "id": 3407, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 684, + "id": 3406, "name": "success", "nodeType": "VariableDeclaration", - "scope": 686, - "src": "1906:12:1", + "scope": 3408, + "src": "1906:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9315,10 +9315,10 @@ "typeString": "bool" }, "typeName": { - "id": 683, + "id": 3405, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1906:4:1", + "src": "1906:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9328,10 +9328,10 @@ "visibility": "internal" } ], - "src": "1905:14:1" + "src": "1905:14:25" }, - "scope": 703, - "src": "1829:91:1", + "scope": 3425, + "src": "1829:91:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -9339,21 +9339,21 @@ { "anonymous": false, "documentation": null, - "id": 694, + "id": 3416, "name": "Transfer", "nodeType": "EventDefinition", "parameters": { - "id": 693, + "id": 3415, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 688, + "id": 3410, "indexed": true, "name": "from", "nodeType": "VariableDeclaration", - "scope": 694, - "src": "1941:20:1", + "scope": 3416, + "src": "1941:20:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9361,10 +9361,10 @@ "typeString": "address" }, "typeName": { - "id": 687, + "id": 3409, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1941:7:1", + "src": "1941:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9375,12 +9375,12 @@ }, { "constant": false, - "id": 690, + "id": 3412, "indexed": true, "name": "to", "nodeType": "VariableDeclaration", - "scope": 694, - "src": "1963:18:1", + "scope": 3416, + "src": "1963:18:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9388,10 +9388,10 @@ "typeString": "address" }, "typeName": { - "id": 689, + "id": 3411, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1963:7:1", + "src": "1963:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9402,12 +9402,12 @@ }, { "constant": false, - "id": 692, + "id": 3414, "indexed": false, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 694, - "src": "1983:11:1", + "scope": 3416, + "src": "1983:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9415,10 +9415,10 @@ "typeString": "uint256" }, "typeName": { - "id": 691, + "id": 3413, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1983:4:1", + "src": "1983:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9428,28 +9428,28 @@ "visibility": "internal" } ], - "src": "1940:55:1" + "src": "1940:55:25" }, - "src": "1926:70:1" + "src": "1926:70:25" }, { "anonymous": false, "documentation": null, - "id": 702, + "id": 3424, "name": "Approval", "nodeType": "EventDefinition", "parameters": { - "id": 701, + "id": 3423, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 696, + "id": 3418, "indexed": true, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 702, - "src": "2016:26:1", + "scope": 3424, + "src": "2016:26:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9457,10 +9457,10 @@ "typeString": "address" }, "typeName": { - "id": 695, + "id": 3417, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2016:7:1", + "src": "2016:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9471,12 +9471,12 @@ }, { "constant": false, - "id": 698, + "id": 3420, "indexed": true, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 702, - "src": "2044:23:1", + "scope": 3424, + "src": "2044:23:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9484,10 +9484,10 @@ "typeString": "address" }, "typeName": { - "id": 697, + "id": 3419, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2044:7:1", + "src": "2044:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9498,12 +9498,12 @@ }, { "constant": false, - "id": 700, + "id": 3422, "indexed": false, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 702, - "src": "2069:11:1", + "scope": 3424, + "src": "2069:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9511,10 +9511,10 @@ "typeString": "uint256" }, "typeName": { - "id": 699, + "id": 3421, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2069:4:1", + "src": "2069:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9524,13 +9524,13 @@ "visibility": "internal" } ], - "src": "2015:66:1" + "src": "2015:66:25" }, - "src": "2001:81:1" + "src": "2001:81:25" } ], - "scope": 1092, - "src": "1395:689:1" + "scope": 3814, + "src": "1395:689:25" }, { "baseContracts": [], @@ -9538,9 +9538,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 715, + "id": 3437, "linearizedBaseContracts": [ - 715 + 3437 ], "name": "ApproveAndCallFallBack", "nodeType": "ContractDefinition", @@ -9548,7 +9548,7 @@ { "body": null, "documentation": null, - "id": 714, + "id": 3436, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -9556,16 +9556,16 @@ "name": "receiveApproval", "nodeType": "FunctionDefinition", "parameters": { - "id": 712, + "id": 3434, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 705, + "id": 3427, "name": "from", "nodeType": "VariableDeclaration", - "scope": 714, - "src": "2416:12:1", + "scope": 3436, + "src": "2416:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9573,10 +9573,10 @@ "typeString": "address" }, "typeName": { - "id": 704, + "id": 3426, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2416:7:1", + "src": "2416:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9587,11 +9587,11 @@ }, { "constant": false, - "id": 707, + "id": 3429, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 714, - "src": "2430:14:1", + "scope": 3436, + "src": "2430:14:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9599,10 +9599,10 @@ "typeString": "uint256" }, "typeName": { - "id": 706, + "id": 3428, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2430:7:1", + "src": "2430:7:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9613,11 +9613,11 @@ }, { "constant": false, - "id": 709, + "id": 3431, "name": "token", "nodeType": "VariableDeclaration", - "scope": 714, - "src": "2446:13:1", + "scope": 3436, + "src": "2446:13:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9625,10 +9625,10 @@ "typeString": "address" }, "typeName": { - "id": 708, + "id": 3430, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2446:7:1", + "src": "2446:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9639,11 +9639,11 @@ }, { "constant": false, - "id": 711, + "id": 3433, "name": "data", "nodeType": "VariableDeclaration", - "scope": 714, - "src": "2461:10:1", + "scope": 3436, + "src": "2461:10:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9651,10 +9651,10 @@ "typeString": "bytes" }, "typeName": { - "id": 710, + "id": 3432, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2461:5:1", + "src": "2461:5:25", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -9664,24 +9664,24 @@ "visibility": "internal" } ], - "src": "2415:57:1" + "src": "2415:57:25" }, "payable": false, "returnParameters": { - "id": 713, + "id": 3435, "nodeType": "ParameterList", "parameters": [], - "src": "2479:0:1" + "src": "2479:0:25" }, - "scope": 715, - "src": "2391:89:1", + "scope": 3437, + "src": "2391:89:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1092, - "src": "2353:129:1" + "scope": 3814, + "src": "2353:129:25" }, { "baseContracts": [], @@ -9689,20 +9689,20 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 784, + "id": 3506, "linearizedBaseContracts": [ - 784 + 3506 ], "name": "Owned", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 717, + "id": 3439, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 784, - "src": "2684:20:1", + "scope": 3506, + "src": "2684:20:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -9710,10 +9710,10 @@ "typeString": "address" }, "typeName": { - "id": 716, + "id": 3438, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2684:7:1", + "src": "2684:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9724,11 +9724,11 @@ }, { "constant": false, - "id": 719, + "id": 3441, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 784, - "src": "2710:23:1", + "scope": 3506, + "src": "2710:23:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -9736,10 +9736,10 @@ "typeString": "address" }, "typeName": { - "id": 718, + "id": 3440, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2710:7:1", + "src": "2710:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9751,21 +9751,21 @@ { "anonymous": false, "documentation": null, - "id": 725, + "id": 3447, "name": "OwnershipTransferred", "nodeType": "EventDefinition", "parameters": { - "id": 724, + "id": 3446, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 721, + "id": 3443, "indexed": true, "name": "_from", "nodeType": "VariableDeclaration", - "scope": 725, - "src": "2767:21:1", + "scope": 3447, + "src": "2767:21:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9773,10 +9773,10 @@ "typeString": "address" }, "typeName": { - "id": 720, + "id": 3442, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2767:7:1", + "src": "2767:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9787,12 +9787,12 @@ }, { "constant": false, - "id": 723, + "id": 3445, "indexed": true, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 725, - "src": "2790:19:1", + "scope": 3447, + "src": "2790:19:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9800,10 +9800,10 @@ "typeString": "address" }, "typeName": { - "id": 722, + "id": 3444, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2790:7:1", + "src": "2790:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9813,32 +9813,32 @@ "visibility": "internal" } ], - "src": "2766:44:1" + "src": "2766:44:25" }, - "src": "2740:71:1" + "src": "2740:71:25" }, { "body": { - "id": 733, + "id": 3455, "nodeType": "Block", - "src": "2838:35:1", + "src": "2838:35:25", "statements": [ { "expression": { "argumentTypes": null, - "id": 731, + "id": 3453, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 728, + "id": 3450, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 717, - "src": "2848:5:1", + "referencedDeclaration": 3439, + "src": "2848:5:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9850,18 +9850,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 729, + "id": 3451, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "2856:3:1", + "referencedDeclaration": 3828, + "src": "2856:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 730, + "id": 3452, "isConstant": false, "isLValue": false, "isPure": false, @@ -9869,26 +9869,26 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2856:10:1", + "src": "2856:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2848:18:1", + "src": "2848:18:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 732, + "id": 3454, "nodeType": "ExpressionStatement", - "src": "2848:18:1" + "src": "2848:18:25" } ] }, "documentation": null, - "id": 734, + "id": 3456, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -9896,29 +9896,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 726, + "id": 3448, "nodeType": "ParameterList", "parameters": [], - "src": "2828:2:1" + "src": "2828:2:25" }, "payable": false, "returnParameters": { - "id": 727, + "id": 3449, "nodeType": "ParameterList", "parameters": [], - "src": "2838:0:1" + "src": "2838:0:25" }, - "scope": 784, - "src": "2817:56:1", + "scope": 3506, + "src": "2817:56:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 744, + "id": 3466, "nodeType": "Block", - "src": "2898:56:1", + "src": "2898:56:25", "statements": [ { "expression": { @@ -9930,7 +9930,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 740, + "id": 3462, "isConstant": false, "isLValue": false, "isPure": false, @@ -9939,18 +9939,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 737, + "id": 3459, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "2916:3:1", + "referencedDeclaration": 3828, + "src": "2916:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 738, + "id": 3460, "isConstant": false, "isLValue": false, "isPure": false, @@ -9958,7 +9958,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2916:10:1", + "src": "2916:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9968,18 +9968,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 739, + "id": 3461, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 717, - "src": "2930:5:1", + "referencedDeclaration": 3439, + "src": "2930:5:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2916:19:1", + "src": "2916:19:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9993,21 +9993,21 @@ "typeString": "bool" } ], - "id": 736, + "id": 3458, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1109, - 1110 + 3831, + 3832 ], - "referencedDeclaration": 1109, - "src": "2908:7:1", + "referencedDeclaration": 3831, + "src": "2908:7:25", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 741, + "id": 3463, "isConstant": false, "isLValue": false, "isPure": false, @@ -10015,58 +10015,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2908:28:1", + "src": "2908:28:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 742, + "id": 3464, "nodeType": "ExpressionStatement", - "src": "2908:28:1" + "src": "2908:28:25" }, { - "id": 743, + "id": 3465, "nodeType": "PlaceholderStatement", - "src": "2946:1:1" + "src": "2946:1:25" } ] }, "documentation": null, - "id": 745, + "id": 3467, "name": "onlyOwner", "nodeType": "ModifierDefinition", "parameters": { - "id": 735, + "id": 3457, "nodeType": "ParameterList", "parameters": [], - "src": "2898:0:1" + "src": "2898:0:25" }, - "src": "2879:75:1", + "src": "2879:75:25", "visibility": "internal" }, { "body": { - "id": 756, + "id": 3478, "nodeType": "Block", - "src": "3023:37:1", + "src": "3023:37:25", "statements": [ { "expression": { "argumentTypes": null, - "id": 754, + "id": 3476, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 752, + "id": 3474, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 719, - "src": "3033:8:1", + "referencedDeclaration": 3441, + "src": "3033:8:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10076,68 +10076,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 753, + "id": 3475, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 747, - "src": "3044:9:1", + "referencedDeclaration": 3469, + "src": "3044:9:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3033:20:1", + "src": "3033:20:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 755, + "id": 3477, "nodeType": "ExpressionStatement", - "src": "3033:20:1" + "src": "3033:20:25" } ] }, "documentation": null, - "id": 757, + "id": 3479, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 750, + "id": 3472, "modifierName": { "argumentTypes": null, - "id": 749, + "id": 3471, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 745, - "src": "3013:9:1", + "referencedDeclaration": 3467, + "src": "3013:9:25", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3013:9:1" + "src": "3013:9:25" } ], "name": "transferOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 748, + "id": 3470, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 747, + "id": 3469, "name": "_newOwner", "nodeType": "VariableDeclaration", - "scope": 757, - "src": "2987:17:1", + "scope": 3479, + "src": "2987:17:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10145,10 +10145,10 @@ "typeString": "address" }, "typeName": { - "id": 746, + "id": 3468, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2987:7:1", + "src": "2987:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10158,26 +10158,26 @@ "visibility": "internal" } ], - "src": "2986:19:1" + "src": "2986:19:25" }, "payable": false, "returnParameters": { - "id": 751, + "id": 3473, "nodeType": "ParameterList", "parameters": [], - "src": "3023:0:1" + "src": "3023:0:25" }, - "scope": 784, - "src": "2960:100:1", + "scope": 3506, + "src": "2960:100:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 782, + "id": 3504, "nodeType": "Block", - "src": "3099:157:1", + "src": "3099:157:25", "statements": [ { "expression": { @@ -10189,7 +10189,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 764, + "id": 3486, "isConstant": false, "isLValue": false, "isPure": false, @@ -10198,18 +10198,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 761, + "id": 3483, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "3117:3:1", + "referencedDeclaration": 3828, + "src": "3117:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 762, + "id": 3484, "isConstant": false, "isLValue": false, "isPure": false, @@ -10217,7 +10217,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3117:10:1", + "src": "3117:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10227,18 +10227,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 763, + "id": 3485, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 719, - "src": "3131:8:1", + "referencedDeclaration": 3441, + "src": "3131:8:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3117:22:1", + "src": "3117:22:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10252,21 +10252,21 @@ "typeString": "bool" } ], - "id": 760, + "id": 3482, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1109, - 1110 + 3831, + 3832 ], - "referencedDeclaration": 1109, - "src": "3109:7:1", + "referencedDeclaration": 3831, + "src": "3109:7:25", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 765, + "id": 3487, "isConstant": false, "isLValue": false, "isPure": false, @@ -10274,15 +10274,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3109:31:1", + "src": "3109:31:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 766, + "id": 3488, "nodeType": "ExpressionStatement", - "src": "3109:31:1" + "src": "3109:31:25" }, { "eventCall": { @@ -10290,12 +10290,12 @@ "arguments": [ { "argumentTypes": null, - "id": 768, + "id": 3490, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 717, - "src": "3176:5:1", + "referencedDeclaration": 3439, + "src": "3176:5:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10303,12 +10303,12 @@ }, { "argumentTypes": null, - "id": 769, + "id": 3491, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 719, - "src": "3183:8:1", + "referencedDeclaration": 3441, + "src": "3183:8:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10326,18 +10326,18 @@ "typeString": "address" } ], - "id": 767, + "id": 3489, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "3155:20:1", + "referencedDeclaration": 3447, + "src": "3155:20:25", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 770, + "id": 3492, "isConstant": false, "isLValue": false, "isPure": false, @@ -10345,32 +10345,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3155:37:1", + "src": "3155:37:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 771, + "id": 3493, "nodeType": "EmitStatement", - "src": "3150:42:1" + "src": "3150:42:25" }, { "expression": { "argumentTypes": null, - "id": 774, + "id": 3496, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 772, + "id": 3494, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 717, - "src": "3202:5:1", + "referencedDeclaration": 3439, + "src": "3202:5:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10380,43 +10380,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 773, + "id": 3495, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 719, - "src": "3210:8:1", + "referencedDeclaration": 3441, + "src": "3210:8:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3202:16:1", + "src": "3202:16:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 775, + "id": 3497, "nodeType": "ExpressionStatement", - "src": "3202:16:1" + "src": "3202:16:25" }, { "expression": { "argumentTypes": null, - "id": 780, + "id": 3502, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 776, + "id": 3498, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 719, - "src": "3228:8:1", + "referencedDeclaration": 3441, + "src": "3228:8:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10430,14 +10430,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 778, + "id": 3500, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3247:1:1", + "src": "3247:1:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -10453,20 +10453,20 @@ "typeString": "int_const 0" } ], - "id": 777, + "id": 3499, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3239:7:1", + "src": "3239:7:25", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 779, + "id": 3501, "isConstant": false, "isLValue": false, "isPure": true, @@ -10474,26 +10474,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3239:10:1", + "src": "3239:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3228:21:1", + "src": "3228:21:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 781, + "id": 3503, "nodeType": "ExpressionStatement", - "src": "3228:21:1" + "src": "3228:21:25" } ] }, "documentation": null, - "id": 783, + "id": 3505, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -10501,27 +10501,27 @@ "name": "acceptOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 758, + "id": 3480, "nodeType": "ParameterList", "parameters": [], - "src": "3089:2:1" + "src": "3089:2:25" }, "payable": false, "returnParameters": { - "id": 759, + "id": 3481, "nodeType": "ParameterList", "parameters": [], - "src": "3099:0:1" + "src": "3099:0:25" }, - "scope": 784, - "src": "3065:191:1", + "scope": 3506, + "src": "3065:191:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1092, - "src": "2663:595:1" + "scope": 3814, + "src": "2663:595:25" }, { "baseContracts": [ @@ -10529,76 +10529,76 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 785, + "id": 3507, "name": "ERC20Interface", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 703, - "src": "3528:14:1", + "referencedDeclaration": 3425, + "src": "3528:14:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$703", + "typeIdentifier": "t_contract$_ERC20Interface_$3425", "typeString": "contract ERC20Interface" } }, - "id": 786, + "id": 3508, "nodeType": "InheritanceSpecifier", - "src": "3528:14:1" + "src": "3528:14:25" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 787, + "id": 3509, "name": "Owned", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 784, - "src": "3544:5:1", + "referencedDeclaration": 3506, + "src": "3544:5:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$784", + "typeIdentifier": "t_contract$_Owned_$3506", "typeString": "contract Owned" } }, - "id": 788, + "id": 3510, "nodeType": "InheritanceSpecifier", - "src": "3544:5:1" + "src": "3544:5:25" } ], "contractDependencies": [ - 703, - 784 + 3425, + 3506 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1091, + "id": 3813, "linearizedBaseContracts": [ - 1091, - 784, - 703 + 3813, + 3506, + 3425 ], "name": "TestToken", "nodeType": "ContractDefinition", "nodes": [ { - "id": 791, + "id": 3513, "libraryName": { "contractScope": null, - "id": 789, + "id": 3511, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 636, - "src": "3562:8:1", + "referencedDeclaration": 3358, + "src": "3562:8:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$636", + "typeIdentifier": "t_contract$_SafeMath_$3358", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "3556:24:1", + "src": "3556:24:25", "typeName": { - "id": 790, + "id": 3512, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3575:4:1", + "src": "3575:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10607,11 +10607,11 @@ }, { "constant": false, - "id": 793, + "id": 3515, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 1091, - "src": "3586:20:1", + "scope": 3813, + "src": "3586:20:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10619,10 +10619,10 @@ "typeString": "string" }, "typeName": { - "id": 792, + "id": 3514, "name": "string", "nodeType": "ElementaryTypeName", - "src": "3586:6:1", + "src": "3586:6:25", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -10633,11 +10633,11 @@ }, { "constant": false, - "id": 795, + "id": 3517, "name": "name", "nodeType": "VariableDeclaration", - "scope": 1091, - "src": "3612:19:1", + "scope": 3813, + "src": "3612:19:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10645,10 +10645,10 @@ "typeString": "string" }, "typeName": { - "id": 794, + "id": 3516, "name": "string", "nodeType": "ElementaryTypeName", - "src": "3612:6:1", + "src": "3612:6:25", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -10659,11 +10659,11 @@ }, { "constant": false, - "id": 797, + "id": 3519, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 1091, - "src": "3637:21:1", + "scope": 3813, + "src": "3637:21:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10671,10 +10671,10 @@ "typeString": "uint8" }, "typeName": { - "id": 796, + "id": 3518, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "3637:5:1", + "src": "3637:5:25", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -10685,11 +10685,11 @@ }, { "constant": false, - "id": 799, + "id": 3521, "name": "_totalSupply", "nodeType": "VariableDeclaration", - "scope": 1091, - "src": "3664:17:1", + "scope": 3813, + "src": "3664:17:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10697,10 +10697,10 @@ "typeString": "uint256" }, "typeName": { - "id": 798, + "id": 3520, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3664:4:1", + "src": "3664:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10711,11 +10711,11 @@ }, { "constant": false, - "id": 803, + "id": 3525, "name": "balances", "nodeType": "VariableDeclaration", - "scope": 1091, - "src": "3688:33:1", + "scope": 3813, + "src": "3688:33:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10723,28 +10723,28 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 802, + "id": 3524, "keyType": { - "id": 800, + "id": 3522, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3696:7:1", + "src": "3696:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3688:24:1", + "src": "3688:24:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 801, + "id": 3523, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3707:4:1", + "src": "3707:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10756,11 +10756,11 @@ }, { "constant": false, - "id": 809, + "id": 3531, "name": "allowed", "nodeType": "VariableDeclaration", - "scope": 1091, - "src": "3727:52:1", + "scope": 3813, + "src": "3727:52:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10768,46 +10768,46 @@ "typeString": "mapping(address => mapping(address => uint256))" }, "typeName": { - "id": 808, + "id": 3530, "keyType": { - "id": 804, + "id": 3526, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3735:7:1", + "src": "3735:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3727:44:1", + "src": "3727:44:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" }, "valueType": { - "id": 807, + "id": 3529, "keyType": { - "id": 805, + "id": 3527, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3754:7:1", + "src": "3754:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3746:24:1", + "src": "3746:24:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 806, + "id": 3528, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3765:4:1", + "src": "3765:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10820,26 +10820,26 @@ }, { "body": { - "id": 848, + "id": 3570, "nodeType": "Block", - "src": "3987:235:1", + "src": "3987:235:25", "statements": [ { "expression": { "argumentTypes": null, - "id": 814, + "id": 3536, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 812, + "id": 3534, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 793, - "src": "3997:6:1", + "referencedDeclaration": 3515, + "src": "3997:6:25", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -10850,14 +10850,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "544b4e", - "id": 813, + "id": 3535, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4006:5:1", + "src": "4006:5:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66", @@ -10865,32 +10865,32 @@ }, "value": "TKN" }, - "src": "3997:14:1", + "src": "3997:14:25", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 815, + "id": 3537, "nodeType": "ExpressionStatement", - "src": "3997:14:1" + "src": "3997:14:25" }, { "expression": { "argumentTypes": null, - "id": 818, + "id": 3540, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 816, + "id": 3538, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 795, - "src": "4021:4:1", + "referencedDeclaration": 3517, + "src": "4021:4:25", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -10901,14 +10901,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "546f6b656e204578616d706c65", - "id": 817, + "id": 3539, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4028:15:1", + "src": "4028:15:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a", @@ -10916,32 +10916,32 @@ }, "value": "Token Example" }, - "src": "4021:22:1", + "src": "4021:22:25", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 819, + "id": 3541, "nodeType": "ExpressionStatement", - "src": "4021:22:1" + "src": "4021:22:25" }, { "expression": { "argumentTypes": null, - "id": 822, + "id": 3544, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 820, + "id": 3542, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 797, - "src": "4053:8:1", + "referencedDeclaration": 3519, + "src": "4053:8:25", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -10952,14 +10952,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "3138", - "id": 821, + "id": 3543, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4064:2:1", + "src": "4064:2:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", @@ -10967,32 +10967,32 @@ }, "value": "18" }, - "src": "4053:13:1", + "src": "4053:13:25", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 823, + "id": 3545, "nodeType": "ExpressionStatement", - "src": "4053:13:1" + "src": "4053:13:25" }, { "expression": { "argumentTypes": null, - "id": 832, + "id": 3554, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 824, + "id": 3546, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 799, - "src": "4076:12:1", + "referencedDeclaration": 3521, + "src": "4076:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11006,7 +11006,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 831, + "id": 3553, "isConstant": false, "isLValue": false, "isPure": false, @@ -11014,14 +11014,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "31303030303030", - "id": 825, + "id": 3547, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4091:7:1", + "src": "4091:7:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1000000_by_1", @@ -11037,7 +11037,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 830, + "id": 3552, "isConstant": false, "isLValue": false, "isPure": false, @@ -11045,14 +11045,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 826, + "id": 3548, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4101:2:1", + "src": "4101:2:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -11067,12 +11067,12 @@ "arguments": [ { "argumentTypes": null, - "id": 828, + "id": 3550, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 797, - "src": "4110:8:1", + "referencedDeclaration": 3519, + "src": "4110:8:25", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -11086,20 +11086,20 @@ "typeString": "uint8" } ], - "id": 827, + "id": 3549, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4105:4:1", + "src": "4105:4:25", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 829, + "id": 3551, "isConstant": false, "isLValue": false, "isPure": false, @@ -11107,38 +11107,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4105:14:1", + "src": "4105:14:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4101:18:1", + "src": "4101:18:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4091:28:1", + "src": "4091:28:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4076:43:1", + "src": "4076:43:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 833, + "id": 3555, "nodeType": "ExpressionStatement", - "src": "4076:43:1" + "src": "4076:43:25" }, { "expression": { "argumentTypes": null, - "id": 838, + "id": 3560, "isConstant": false, "isLValue": false, "isPure": false, @@ -11147,26 +11147,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 834, + "id": 3556, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 803, - "src": "4129:8:1", + "referencedDeclaration": 3525, + "src": "4129:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 836, + "id": 3558, "indexExpression": { "argumentTypes": null, - "id": 835, + "id": 3557, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 717, - "src": "4138:5:1", + "referencedDeclaration": 3439, + "src": "4138:5:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11177,7 +11177,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4129:15:1", + "src": "4129:15:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11187,26 +11187,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 837, + "id": 3559, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 799, - "src": "4147:12:1", + "referencedDeclaration": 3521, + "src": "4147:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4129:30:1", + "src": "4129:30:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 839, + "id": 3561, "nodeType": "ExpressionStatement", - "src": "4129:30:1" + "src": "4129:30:25" }, { "eventCall": { @@ -11218,14 +11218,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 842, + "id": 3564, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4191:1:1", + "src": "4191:1:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -11241,20 +11241,20 @@ "typeString": "int_const 0" } ], - "id": 841, + "id": 3563, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4183:7:1", + "src": "4183:7:25", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 843, + "id": 3565, "isConstant": false, "isLValue": false, "isPure": true, @@ -11262,7 +11262,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4183:10:1", + "src": "4183:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11270,12 +11270,12 @@ }, { "argumentTypes": null, - "id": 844, + "id": 3566, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 717, - "src": "4195:5:1", + "referencedDeclaration": 3439, + "src": "4195:5:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11283,12 +11283,12 @@ }, { "argumentTypes": null, - "id": 845, + "id": 3567, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 799, - "src": "4202:12:1", + "referencedDeclaration": 3521, + "src": "4202:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11310,18 +11310,18 @@ "typeString": "uint256" } ], - "id": 840, + "id": 3562, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 694, - "src": "4174:8:1", + "referencedDeclaration": 3416, + "src": "4174:8:25", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 846, + "id": 3568, "isConstant": false, "isLValue": false, "isPure": false, @@ -11329,20 +11329,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4174:41:1", + "src": "4174:41:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 847, + "id": 3569, "nodeType": "EmitStatement", - "src": "4169:46:1" + "src": "4169:46:25" } ] }, "documentation": null, - "id": 849, + "id": 3571, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -11350,29 +11350,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 810, + "id": 3532, "nodeType": "ParameterList", "parameters": [], - "src": "3977:2:1" + "src": "3977:2:25" }, "payable": false, "returnParameters": { - "id": 811, + "id": 3533, "nodeType": "ParameterList", "parameters": [], - "src": "3987:0:1" + "src": "3987:0:25" }, - "scope": 1091, - "src": "3966:256:1", + "scope": 3813, + "src": "3966:256:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 863, + "id": 3585, "nodeType": "Block", - "src": "4459:62:1", + "src": "4459:62:25", "statements": [ { "expression": { @@ -11382,32 +11382,32 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 856, + "id": 3578, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 803, - "src": "4493:8:1", + "referencedDeclaration": 3525, + "src": "4493:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 860, + "id": 3582, "indexExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 858, + "id": 3580, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4510:1:1", + "src": "4510:1:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -11423,20 +11423,20 @@ "typeString": "int_const 0" } ], - "id": 857, + "id": 3579, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4502:7:1", + "src": "4502:7:25", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 859, + "id": 3581, "isConstant": false, "isLValue": false, "isPure": true, @@ -11444,7 +11444,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4502:10:1", + "src": "4502:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11455,7 +11455,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4493:20:1", + "src": "4493:20:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11471,32 +11471,32 @@ ], "expression": { "argumentTypes": null, - "id": 854, + "id": 3576, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 799, - "src": "4476:12:1", + "referencedDeclaration": 3521, + "src": "4476:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 855, + "id": 3577, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 585, - "src": "4476:16:1", + "referencedDeclaration": 3307, + "src": "4476: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": 861, + "id": 3583, "isConstant": false, "isLValue": false, "isPure": false, @@ -11504,21 +11504,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4476:38:1", + "src": "4476:38:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 853, - "id": 862, + "functionReturnParameters": 3575, + "id": 3584, "nodeType": "Return", - "src": "4469:45:1" + "src": "4469:45:25" } ] }, "documentation": null, - "id": 864, + "id": 3586, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -11526,23 +11526,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 850, + "id": 3572, "nodeType": "ParameterList", "parameters": [], - "src": "4429:2:1" + "src": "4429:2:25" }, "payable": false, "returnParameters": { - "id": 853, + "id": 3575, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 852, + "id": 3574, "name": "", "nodeType": "VariableDeclaration", - "scope": 864, - "src": "4453:4:1", + "scope": 3586, + "src": "4453:4:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11550,10 +11550,10 @@ "typeString": "uint256" }, "typeName": { - "id": 851, + "id": 3573, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4453:4:1", + "src": "4453:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11563,45 +11563,45 @@ "visibility": "internal" } ], - "src": "4452:6:1" + "src": "4452:6:25" }, - "scope": 1091, - "src": "4409:112:1", + "scope": 3813, + "src": "4409:112:25", "stateMutability": "view", - "superFunction": 641, + "superFunction": 3363, "visibility": "public" }, { "body": { - "id": 875, + "id": 3597, "nodeType": "Block", - "src": "4816:44:1", + "src": "4816:44:25", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 871, + "id": 3593, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 803, - "src": "4833:8:1", + "referencedDeclaration": 3525, + "src": "4833:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 873, + "id": 3595, "indexExpression": { "argumentTypes": null, - "id": 872, + "id": 3594, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 866, - "src": "4842:10:1", + "referencedDeclaration": 3588, + "src": "4842:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11612,21 +11612,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4833:20:1", + "src": "4833:20:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 870, - "id": 874, + "functionReturnParameters": 3592, + "id": 3596, "nodeType": "Return", - "src": "4826:27:1" + "src": "4826:27:25" } ] }, "documentation": null, - "id": 876, + "id": 3598, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -11634,16 +11634,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 867, + "id": 3589, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 866, + "id": 3588, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 876, - "src": "4761:18:1", + "scope": 3598, + "src": "4761:18:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11651,10 +11651,10 @@ "typeString": "address" }, "typeName": { - "id": 865, + "id": 3587, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4761:7:1", + "src": "4761:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11664,20 +11664,20 @@ "visibility": "internal" } ], - "src": "4760:20:1" + "src": "4760:20:25" }, "payable": false, "returnParameters": { - "id": 870, + "id": 3592, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 869, + "id": 3591, "name": "balance", "nodeType": "VariableDeclaration", - "scope": 876, - "src": "4802:12:1", + "scope": 3598, + "src": "4802:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11685,10 +11685,10 @@ "typeString": "uint256" }, "typeName": { - "id": 868, + "id": 3590, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4802:4:1", + "src": "4802:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11698,24 +11698,24 @@ "visibility": "internal" } ], - "src": "4801:14:1" + "src": "4801:14:25" }, - "scope": 1091, - "src": "4742:118:1", + "scope": 3813, + "src": "4742:118:25", "stateMutability": "view", - "superFunction": 648, + "superFunction": 3370, "visibility": "public" }, { "body": { - "id": 918, + "id": 3640, "nodeType": "Block", - "src": "5276:189:1", + "src": "5276:189:25", "statements": [ { "expression": { "argumentTypes": null, - "id": 896, + "id": 3618, "isConstant": false, "isLValue": false, "isPure": false, @@ -11724,34 +11724,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 885, + "id": 3607, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 803, - "src": "5286:8:1", + "referencedDeclaration": 3525, + "src": "5286:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 888, + "id": 3610, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 886, + "id": 3608, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "5295:3:1", + "referencedDeclaration": 3828, + "src": "5295:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 887, + "id": 3609, "isConstant": false, "isLValue": false, "isPure": false, @@ -11759,7 +11759,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5295:10:1", + "src": "5295:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11770,7 +11770,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5286:20:1", + "src": "5286:20:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11783,12 +11783,12 @@ "arguments": [ { "argumentTypes": null, - "id": 894, + "id": 3616, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 880, - "src": "5334:6:1", + "referencedDeclaration": 3602, + "src": "5334:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11806,34 +11806,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 889, + "id": 3611, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 803, - "src": "5309:8:1", + "referencedDeclaration": 3525, + "src": "5309:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 892, + "id": 3614, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 890, + "id": 3612, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "5318:3:1", + "referencedDeclaration": 3828, + "src": "5318:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 891, + "id": 3613, "isConstant": false, "isLValue": false, "isPure": false, @@ -11841,7 +11841,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5318:10:1", + "src": "5318:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11852,27 +11852,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5309:20:1", + "src": "5309:20:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 893, + "id": 3615, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 585, - "src": "5309:24:1", + "referencedDeclaration": 3307, + "src": "5309: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": 895, + "id": 3617, "isConstant": false, "isLValue": false, "isPure": false, @@ -11880,26 +11880,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5309:32:1", + "src": "5309:32:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5286:55:1", + "src": "5286:55:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 897, + "id": 3619, "nodeType": "ExpressionStatement", - "src": "5286:55:1" + "src": "5286:55:25" }, { "expression": { "argumentTypes": null, - "id": 907, + "id": 3629, "isConstant": false, "isLValue": false, "isPure": false, @@ -11908,26 +11908,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 898, + "id": 3620, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 803, - "src": "5351:8:1", + "referencedDeclaration": 3525, + "src": "5351:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 900, + "id": 3622, "indexExpression": { "argumentTypes": null, - "id": 899, + "id": 3621, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 878, - "src": "5360:2:1", + "referencedDeclaration": 3600, + "src": "5360:2:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11938,7 +11938,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5351:12:1", + "src": "5351:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11951,12 +11951,12 @@ "arguments": [ { "argumentTypes": null, - "id": 905, + "id": 3627, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 880, - "src": "5383:6:1", + "referencedDeclaration": 3602, + "src": "5383:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11974,26 +11974,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 901, + "id": 3623, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 803, - "src": "5366:8:1", + "referencedDeclaration": 3525, + "src": "5366:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 903, + "id": 3625, "indexExpression": { "argumentTypes": null, - "id": 902, + "id": 3624, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 878, - "src": "5375:2:1", + "referencedDeclaration": 3600, + "src": "5375:2:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12004,27 +12004,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5366:12:1", + "src": "5366:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 904, + "id": 3626, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 563, - "src": "5366:16:1", + "referencedDeclaration": 3285, + "src": "5366: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": 906, + "id": 3628, "isConstant": false, "isLValue": false, "isPure": false, @@ -12032,21 +12032,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5366:24:1", + "src": "5366:24:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5351:39:1", + "src": "5351:39:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 908, + "id": 3630, "nodeType": "ExpressionStatement", - "src": "5351:39:1" + "src": "5351:39:25" }, { "eventCall": { @@ -12056,18 +12056,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 910, + "id": 3632, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "5414:3:1", + "referencedDeclaration": 3828, + "src": "5414:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 911, + "id": 3633, "isConstant": false, "isLValue": false, "isPure": false, @@ -12075,7 +12075,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5414:10:1", + "src": "5414:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12083,12 +12083,12 @@ }, { "argumentTypes": null, - "id": 912, + "id": 3634, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 878, - "src": "5426:2:1", + "referencedDeclaration": 3600, + "src": "5426:2:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12096,12 +12096,12 @@ }, { "argumentTypes": null, - "id": 913, + "id": 3635, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 880, - "src": "5430:6:1", + "referencedDeclaration": 3602, + "src": "5430:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12123,18 +12123,18 @@ "typeString": "uint256" } ], - "id": 909, + "id": 3631, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 694, - "src": "5405:8:1", + "referencedDeclaration": 3416, + "src": "5405:8:25", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 914, + "id": 3636, "isConstant": false, "isLValue": false, "isPure": false, @@ -12142,28 +12142,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5405:32:1", + "src": "5405:32:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 915, + "id": 3637, "nodeType": "EmitStatement", - "src": "5400:37:1" + "src": "5400:37:25" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 916, + "id": 3638, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5454:4:1", + "src": "5454:4:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -12171,15 +12171,15 @@ }, "value": "true" }, - "functionReturnParameters": 884, - "id": 917, + "functionReturnParameters": 3606, + "id": 3639, "nodeType": "Return", - "src": "5447:11:1" + "src": "5447:11:25" } ] }, "documentation": null, - "id": 919, + "id": 3641, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -12187,16 +12187,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 881, + "id": 3603, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 878, + "id": 3600, "name": "to", "nodeType": "VariableDeclaration", - "scope": 919, - "src": "5221:10:1", + "scope": 3641, + "src": "5221:10:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12204,10 +12204,10 @@ "typeString": "address" }, "typeName": { - "id": 877, + "id": 3599, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5221:7:1", + "src": "5221:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12218,11 +12218,11 @@ }, { "constant": false, - "id": 880, + "id": 3602, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 919, - "src": "5233:11:1", + "scope": 3641, + "src": "5233:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12230,10 +12230,10 @@ "typeString": "uint256" }, "typeName": { - "id": 879, + "id": 3601, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5233:4:1", + "src": "5233:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12243,20 +12243,20 @@ "visibility": "internal" } ], - "src": "5220:25:1" + "src": "5220:25:25" }, "payable": false, "returnParameters": { - "id": 884, + "id": 3606, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 883, + "id": 3605, "name": "success", "nodeType": "VariableDeclaration", - "scope": 919, - "src": "5262:12:1", + "scope": 3641, + "src": "5262:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12264,10 +12264,10 @@ "typeString": "bool" }, "typeName": { - "id": 882, + "id": 3604, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5262:4:1", + "src": "5262:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12277,24 +12277,24 @@ "visibility": "internal" } ], - "src": "5261:14:1" + "src": "5261:14:25" }, - "scope": 1091, - "src": "5203:262:1", + "scope": 3813, + "src": "5203:262:25", "stateMutability": "nonpayable", - "superFunction": 666, + "superFunction": 3388, "visibility": "public" }, { "body": { - "id": 946, + "id": 3668, "nodeType": "Block", - "src": "6048:127:1", + "src": "6048:127:25", "statements": [ { "expression": { "argumentTypes": null, - "id": 935, + "id": 3657, "isConstant": false, "isLValue": false, "isPure": false, @@ -12305,34 +12305,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 928, + "id": 3650, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 809, - "src": "6058:7:1", + "referencedDeclaration": 3531, + "src": "6058:7:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 932, + "id": 3654, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 929, + "id": 3651, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "6066:3:1", + "referencedDeclaration": 3828, + "src": "6066:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 930, + "id": 3652, "isConstant": false, "isLValue": false, "isPure": false, @@ -12340,7 +12340,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6066:10:1", + "src": "6066:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12351,21 +12351,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6058:19:1", + "src": "6058:19:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 933, + "id": 3655, "indexExpression": { "argumentTypes": null, - "id": 931, + "id": 3653, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 921, - "src": "6078:7:1", + "referencedDeclaration": 3643, + "src": "6078:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12376,7 +12376,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6058:28:1", + "src": "6058:28:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12386,26 +12386,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 934, + "id": 3656, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 923, - "src": "6089:6:1", + "referencedDeclaration": 3645, + "src": "6089:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6058:37:1", + "src": "6058:37:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 936, + "id": 3658, "nodeType": "ExpressionStatement", - "src": "6058:37:1" + "src": "6058:37:25" }, { "eventCall": { @@ -12415,18 +12415,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 938, + "id": 3660, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "6119:3:1", + "referencedDeclaration": 3828, + "src": "6119:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 939, + "id": 3661, "isConstant": false, "isLValue": false, "isPure": false, @@ -12434,7 +12434,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6119:10:1", + "src": "6119:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12442,12 +12442,12 @@ }, { "argumentTypes": null, - "id": 940, + "id": 3662, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 921, - "src": "6131:7:1", + "referencedDeclaration": 3643, + "src": "6131:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12455,12 +12455,12 @@ }, { "argumentTypes": null, - "id": 941, + "id": 3663, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 923, - "src": "6140:6:1", + "referencedDeclaration": 3645, + "src": "6140:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12482,18 +12482,18 @@ "typeString": "uint256" } ], - "id": 937, + "id": 3659, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 702, - "src": "6110:8:1", + "referencedDeclaration": 3424, + "src": "6110:8:25", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 942, + "id": 3664, "isConstant": false, "isLValue": false, "isPure": false, @@ -12501,28 +12501,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6110:37:1", + "src": "6110:37:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 943, + "id": 3665, "nodeType": "EmitStatement", - "src": "6105:42:1" + "src": "6105:42:25" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 944, + "id": 3666, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "6164:4:1", + "src": "6164:4:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -12530,15 +12530,15 @@ }, "value": "true" }, - "functionReturnParameters": 927, - "id": 945, + "functionReturnParameters": 3649, + "id": 3667, "nodeType": "Return", - "src": "6157:11:1" + "src": "6157:11:25" } ] }, "documentation": null, - "id": 947, + "id": 3669, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -12546,16 +12546,16 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 924, + "id": 3646, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 921, + "id": 3643, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 947, - "src": "5988:15:1", + "scope": 3669, + "src": "5988:15:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12563,10 +12563,10 @@ "typeString": "address" }, "typeName": { - "id": 920, + "id": 3642, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5988:7:1", + "src": "5988:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12577,11 +12577,11 @@ }, { "constant": false, - "id": 923, + "id": 3645, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 947, - "src": "6005:11:1", + "scope": 3669, + "src": "6005:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12589,10 +12589,10 @@ "typeString": "uint256" }, "typeName": { - "id": 922, + "id": 3644, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6005:4:1", + "src": "6005:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12602,20 +12602,20 @@ "visibility": "internal" } ], - "src": "5987:30:1" + "src": "5987:30:25" }, "payable": false, "returnParameters": { - "id": 927, + "id": 3649, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 926, + "id": 3648, "name": "success", "nodeType": "VariableDeclaration", - "scope": 947, - "src": "6034:12:1", + "scope": 3669, + "src": "6034:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12623,10 +12623,10 @@ "typeString": "bool" }, "typeName": { - "id": 925, + "id": 3647, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6034:4:1", + "src": "6034:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12636,24 +12636,24 @@ "visibility": "internal" } ], - "src": "6033:14:1" + "src": "6033:14:25" }, - "scope": 1091, - "src": "5971:204:1", + "scope": 3813, + "src": "5971:204:25", "stateMutability": "nonpayable", - "superFunction": 675, + "superFunction": 3397, "visibility": "public" }, { "body": { - "id": 1005, + "id": 3727, "nodeType": "Block", - "src": "6798:246:1", + "src": "6798:246:25", "statements": [ { "expression": { "argumentTypes": null, - "id": 967, + "id": 3689, "isConstant": false, "isLValue": false, "isPure": false, @@ -12662,26 +12662,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 958, + "id": 3680, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 803, - "src": "6808:8:1", + "referencedDeclaration": 3525, + "src": "6808:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 960, + "id": 3682, "indexExpression": { "argumentTypes": null, - "id": 959, + "id": 3681, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 949, - "src": "6817:4:1", + "referencedDeclaration": 3671, + "src": "6817:4:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12692,7 +12692,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6808:14:1", + "src": "6808:14:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12705,12 +12705,12 @@ "arguments": [ { "argumentTypes": null, - "id": 965, + "id": 3687, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 953, - "src": "6844:6:1", + "referencedDeclaration": 3675, + "src": "6844:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12728,26 +12728,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 961, + "id": 3683, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 803, - "src": "6825:8:1", + "referencedDeclaration": 3525, + "src": "6825:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 963, + "id": 3685, "indexExpression": { "argumentTypes": null, - "id": 962, + "id": 3684, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 949, - "src": "6834:4:1", + "referencedDeclaration": 3671, + "src": "6834:4:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12758,27 +12758,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6825:14:1", + "src": "6825:14:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 964, + "id": 3686, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 585, - "src": "6825:18:1", + "referencedDeclaration": 3307, + "src": "6825: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": 966, + "id": 3688, "isConstant": false, "isLValue": false, "isPure": false, @@ -12786,26 +12786,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6825:26:1", + "src": "6825:26:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6808:43:1", + "src": "6808:43:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 968, + "id": 3690, "nodeType": "ExpressionStatement", - "src": "6808:43:1" + "src": "6808:43:25" }, { "expression": { "argumentTypes": null, - "id": 984, + "id": 3706, "isConstant": false, "isLValue": false, "isPure": false, @@ -12816,26 +12816,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 969, + "id": 3691, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 809, - "src": "6861:7:1", + "referencedDeclaration": 3531, + "src": "6861:7:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 973, + "id": 3695, "indexExpression": { "argumentTypes": null, - "id": 970, + "id": 3692, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 949, - "src": "6869:4:1", + "referencedDeclaration": 3671, + "src": "6869:4:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12846,29 +12846,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6861:13:1", + "src": "6861:13:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 974, + "id": 3696, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 971, + "id": 3693, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "6875:3:1", + "referencedDeclaration": 3828, + "src": "6875:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 972, + "id": 3694, "isConstant": false, "isLValue": false, "isPure": false, @@ -12876,7 +12876,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6875:10:1", + "src": "6875:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12887,7 +12887,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6861:25:1", + "src": "6861:25:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12900,12 +12900,12 @@ "arguments": [ { "argumentTypes": null, - "id": 982, + "id": 3704, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 953, - "src": "6919:6:1", + "referencedDeclaration": 3675, + "src": "6919:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12925,26 +12925,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 975, + "id": 3697, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 809, - "src": "6889:7:1", + "referencedDeclaration": 3531, + "src": "6889:7:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 977, + "id": 3699, "indexExpression": { "argumentTypes": null, - "id": 976, + "id": 3698, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 949, - "src": "6897:4:1", + "referencedDeclaration": 3671, + "src": "6897:4:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12955,29 +12955,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6889:13:1", + "src": "6889:13:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 980, + "id": 3702, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 978, + "id": 3700, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "6903:3:1", + "referencedDeclaration": 3828, + "src": "6903:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 979, + "id": 3701, "isConstant": false, "isLValue": false, "isPure": false, @@ -12985,7 +12985,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6903:10:1", + "src": "6903:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12996,27 +12996,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6889:25:1", + "src": "6889:25:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 981, + "id": 3703, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 585, - "src": "6889:29:1", + "referencedDeclaration": 3307, + "src": "6889: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": 983, + "id": 3705, "isConstant": false, "isLValue": false, "isPure": false, @@ -13024,26 +13024,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6889:37:1", + "src": "6889:37:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6861:65:1", + "src": "6861:65:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 985, + "id": 3707, "nodeType": "ExpressionStatement", - "src": "6861:65:1" + "src": "6861:65:25" }, { "expression": { "argumentTypes": null, - "id": 995, + "id": 3717, "isConstant": false, "isLValue": false, "isPure": false, @@ -13052,26 +13052,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 986, + "id": 3708, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 803, - "src": "6936:8:1", + "referencedDeclaration": 3525, + "src": "6936:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 988, + "id": 3710, "indexExpression": { "argumentTypes": null, - "id": 987, + "id": 3709, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 951, - "src": "6945:2:1", + "referencedDeclaration": 3673, + "src": "6945:2:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13082,7 +13082,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6936:12:1", + "src": "6936:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13095,12 +13095,12 @@ "arguments": [ { "argumentTypes": null, - "id": 993, + "id": 3715, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 953, - "src": "6968:6:1", + "referencedDeclaration": 3675, + "src": "6968:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13118,26 +13118,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 989, + "id": 3711, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 803, - "src": "6951:8:1", + "referencedDeclaration": 3525, + "src": "6951:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 991, + "id": 3713, "indexExpression": { "argumentTypes": null, - "id": 990, + "id": 3712, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 951, - "src": "6960:2:1", + "referencedDeclaration": 3673, + "src": "6960:2:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13148,27 +13148,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6951:12:1", + "src": "6951:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 992, + "id": 3714, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 563, - "src": "6951:16:1", + "referencedDeclaration": 3285, + "src": "6951: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": 994, + "id": 3716, "isConstant": false, "isLValue": false, "isPure": false, @@ -13176,21 +13176,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6951:24:1", + "src": "6951:24:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6936:39:1", + "src": "6936:39:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 996, + "id": 3718, "nodeType": "ExpressionStatement", - "src": "6936:39:1" + "src": "6936:39:25" }, { "eventCall": { @@ -13198,12 +13198,12 @@ "arguments": [ { "argumentTypes": null, - "id": 998, + "id": 3720, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 949, - "src": "6999:4:1", + "referencedDeclaration": 3671, + "src": "6999:4:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13211,12 +13211,12 @@ }, { "argumentTypes": null, - "id": 999, + "id": 3721, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 951, - "src": "7005:2:1", + "referencedDeclaration": 3673, + "src": "7005:2:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13224,12 +13224,12 @@ }, { "argumentTypes": null, - "id": 1000, + "id": 3722, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 953, - "src": "7009:6:1", + "referencedDeclaration": 3675, + "src": "7009:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13251,18 +13251,18 @@ "typeString": "uint256" } ], - "id": 997, + "id": 3719, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 694, - "src": "6990:8:1", + "referencedDeclaration": 3416, + "src": "6990:8:25", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 1001, + "id": 3723, "isConstant": false, "isLValue": false, "isPure": false, @@ -13270,28 +13270,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6990:26:1", + "src": "6990:26:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1002, + "id": 3724, "nodeType": "EmitStatement", - "src": "6985:31:1" + "src": "6985:31:25" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 1003, + "id": 3725, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "7033:4:1", + "src": "7033:4:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -13299,15 +13299,15 @@ }, "value": "true" }, - "functionReturnParameters": 957, - "id": 1004, + "functionReturnParameters": 3679, + "id": 3726, "nodeType": "Return", - "src": "7026:11:1" + "src": "7026:11:25" } ] }, "documentation": null, - "id": 1006, + "id": 3728, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -13315,16 +13315,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 954, + "id": 3676, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 949, + "id": 3671, "name": "from", "nodeType": "VariableDeclaration", - "scope": 1006, - "src": "6729:12:1", + "scope": 3728, + "src": "6729:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13332,10 +13332,10 @@ "typeString": "address" }, "typeName": { - "id": 948, + "id": 3670, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6729:7:1", + "src": "6729:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13346,11 +13346,11 @@ }, { "constant": false, - "id": 951, + "id": 3673, "name": "to", "nodeType": "VariableDeclaration", - "scope": 1006, - "src": "6743:10:1", + "scope": 3728, + "src": "6743:10:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13358,10 +13358,10 @@ "typeString": "address" }, "typeName": { - "id": 950, + "id": 3672, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6743:7:1", + "src": "6743:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13372,11 +13372,11 @@ }, { "constant": false, - "id": 953, + "id": 3675, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 1006, - "src": "6755:11:1", + "scope": 3728, + "src": "6755:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13384,10 +13384,10 @@ "typeString": "uint256" }, "typeName": { - "id": 952, + "id": 3674, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6755:4:1", + "src": "6755:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13397,20 +13397,20 @@ "visibility": "internal" } ], - "src": "6728:39:1" + "src": "6728:39:25" }, "payable": false, "returnParameters": { - "id": 957, + "id": 3679, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 956, + "id": 3678, "name": "success", "nodeType": "VariableDeclaration", - "scope": 1006, - "src": "6784:12:1", + "scope": 3728, + "src": "6784:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13418,10 +13418,10 @@ "typeString": "bool" }, "typeName": { - "id": 955, + "id": 3677, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6784:4:1", + "src": "6784:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13431,19 +13431,19 @@ "visibility": "internal" } ], - "src": "6783:14:1" + "src": "6783:14:25" }, - "scope": 1091, - "src": "6707:337:1", + "scope": 3813, + "src": "6707:337:25", "stateMutability": "nonpayable", - "superFunction": 686, + "superFunction": 3408, "visibility": "public" }, { "body": { - "id": 1021, + "id": 3743, "nodeType": "Block", - "src": "7418:52:1", + "src": "7418:52:25", "statements": [ { "expression": { @@ -13452,26 +13452,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1015, + "id": 3737, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 809, - "src": "7435:7:1", + "referencedDeclaration": 3531, + "src": "7435:7:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 1017, + "id": 3739, "indexExpression": { "argumentTypes": null, - "id": 1016, + "id": 3738, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1008, - "src": "7443:10:1", + "referencedDeclaration": 3730, + "src": "7443:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13482,21 +13482,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7435:19:1", + "src": "7435:19:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1019, + "id": 3741, "indexExpression": { "argumentTypes": null, - "id": 1018, + "id": 3740, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1010, - "src": "7455:7:1", + "referencedDeclaration": 3732, + "src": "7455:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13507,21 +13507,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7435:28:1", + "src": "7435:28:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1014, - "id": 1020, + "functionReturnParameters": 3736, + "id": 3742, "nodeType": "Return", - "src": "7428:35:1" + "src": "7428:35:25" } ] }, "documentation": null, - "id": 1022, + "id": 3744, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -13529,16 +13529,16 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 1011, + "id": 3733, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1008, + "id": 3730, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 1022, - "src": "7344:18:1", + "scope": 3744, + "src": "7344:18:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13546,10 +13546,10 @@ "typeString": "address" }, "typeName": { - "id": 1007, + "id": 3729, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7344:7:1", + "src": "7344:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13560,11 +13560,11 @@ }, { "constant": false, - "id": 1010, + "id": 3732, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 1022, - "src": "7364:15:1", + "scope": 3744, + "src": "7364:15:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13572,10 +13572,10 @@ "typeString": "address" }, "typeName": { - "id": 1009, + "id": 3731, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7364:7:1", + "src": "7364:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13585,20 +13585,20 @@ "visibility": "internal" } ], - "src": "7343:37:1" + "src": "7343:37:25" }, "payable": false, "returnParameters": { - "id": 1014, + "id": 3736, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1013, + "id": 3735, "name": "remaining", "nodeType": "VariableDeclaration", - "scope": 1022, - "src": "7402:14:1", + "scope": 3744, + "src": "7402:14:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13606,10 +13606,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1012, + "id": 3734, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7402:4:1", + "src": "7402:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13619,24 +13619,24 @@ "visibility": "internal" } ], - "src": "7401:16:1" + "src": "7401:16:25" }, - "scope": 1091, - "src": "7325:145:1", + "scope": 3813, + "src": "7325:145:25", "stateMutability": "view", - "superFunction": 657, + "superFunction": 3379, "visibility": "public" }, { "body": { - "id": 1062, + "id": 3784, "nodeType": "Block", - "src": "7926:216:1", + "src": "7926:216:25", "statements": [ { "expression": { "argumentTypes": null, - "id": 1040, + "id": 3762, "isConstant": false, "isLValue": false, "isPure": false, @@ -13647,34 +13647,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1033, + "id": 3755, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 809, - "src": "7936:7:1", + "referencedDeclaration": 3531, + "src": "7936:7:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 1037, + "id": 3759, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1034, + "id": 3756, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "7944:3:1", + "referencedDeclaration": 3828, + "src": "7944:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1035, + "id": 3757, "isConstant": false, "isLValue": false, "isPure": false, @@ -13682,7 +13682,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7944:10:1", + "src": "7944:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13693,21 +13693,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7936:19:1", + "src": "7936:19:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1038, + "id": 3760, "indexExpression": { "argumentTypes": null, - "id": 1036, + "id": 3758, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1024, - "src": "7956:7:1", + "referencedDeclaration": 3746, + "src": "7956:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13718,7 +13718,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7936:28:1", + "src": "7936:28:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13728,26 +13728,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1039, + "id": 3761, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1026, - "src": "7967:6:1", + "referencedDeclaration": 3748, + "src": "7967:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7936:37:1", + "src": "7936:37:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1041, + "id": 3763, "nodeType": "ExpressionStatement", - "src": "7936:37:1" + "src": "7936:37:25" }, { "eventCall": { @@ -13757,18 +13757,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1043, + "id": 3765, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "7997:3:1", + "referencedDeclaration": 3828, + "src": "7997:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1044, + "id": 3766, "isConstant": false, "isLValue": false, "isPure": false, @@ -13776,7 +13776,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7997:10:1", + "src": "7997:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13784,12 +13784,12 @@ }, { "argumentTypes": null, - "id": 1045, + "id": 3767, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1024, - "src": "8009:7:1", + "referencedDeclaration": 3746, + "src": "8009:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13797,12 +13797,12 @@ }, { "argumentTypes": null, - "id": 1046, + "id": 3768, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1026, - "src": "8018:6:1", + "referencedDeclaration": 3748, + "src": "8018:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13824,18 +13824,18 @@ "typeString": "uint256" } ], - "id": 1042, + "id": 3764, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 702, - "src": "7988:8:1", + "referencedDeclaration": 3424, + "src": "7988:8:25", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 1047, + "id": 3769, "isConstant": false, "isLValue": false, "isPure": false, @@ -13843,15 +13843,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7988:37:1", + "src": "7988:37:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1048, + "id": 3770, "nodeType": "EmitStatement", - "src": "7983:42:1" + "src": "7983:42:25" }, { "expression": { @@ -13861,18 +13861,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1053, + "id": 3775, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "8083:3:1", + "referencedDeclaration": 3828, + "src": "8083:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1054, + "id": 3776, "isConstant": false, "isLValue": false, "isPure": false, @@ -13880,7 +13880,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8083:10:1", + "src": "8083:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13888,12 +13888,12 @@ }, { "argumentTypes": null, - "id": 1055, + "id": 3777, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1026, - "src": "8095:6:1", + "referencedDeclaration": 3748, + "src": "8095:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13901,25 +13901,25 @@ }, { "argumentTypes": null, - "id": 1056, + "id": 3778, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1137, - "src": "8103:4:1", + "referencedDeclaration": 3907, + "src": "8103:4:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_TestToken_$1091", + "typeIdentifier": "t_contract$_TestToken_$3813", "typeString": "contract TestToken" } }, { "argumentTypes": null, - "id": 1057, + "id": 3779, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1028, - "src": "8109:4:1", + "referencedDeclaration": 3750, + "src": "8109:4:25", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -13937,7 +13937,7 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_contract$_TestToken_$1091", + "typeIdentifier": "t_contract$_TestToken_$3813", "typeString": "contract TestToken" }, { @@ -13950,12 +13950,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1050, + "id": 3772, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1024, - "src": "8058:7:1", + "referencedDeclaration": 3746, + "src": "8058:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13969,18 +13969,18 @@ "typeString": "address" } ], - "id": 1049, + "id": 3771, "name": "ApproveAndCallFallBack", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 715, - "src": "8035:22:1", + "referencedDeclaration": 3437, + "src": "8035:22:25", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$715_$", + "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3437_$", "typeString": "type(contract ApproveAndCallFallBack)" } }, - "id": 1051, + "id": 3773, "isConstant": false, "isLValue": false, "isPure": false, @@ -13988,27 +13988,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8035:31:1", + "src": "8035:31:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$715", + "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3437", "typeString": "contract ApproveAndCallFallBack" } }, - "id": 1052, + "id": 3774, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "receiveApproval", "nodeType": "MemberAccess", - "referencedDeclaration": 714, - "src": "8035:47:1", + "referencedDeclaration": 3436, + "src": "8035: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": 1058, + "id": 3780, "isConstant": false, "isLValue": false, "isPure": false, @@ -14016,28 +14016,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8035:79:1", + "src": "8035:79:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1059, + "id": 3781, "nodeType": "ExpressionStatement", - "src": "8035:79:1" + "src": "8035:79:25" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 1060, + "id": 3782, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "8131:4:1", + "src": "8131:4:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -14045,15 +14045,15 @@ }, "value": "true" }, - "functionReturnParameters": 1032, - "id": 1061, + "functionReturnParameters": 3754, + "id": 3783, "nodeType": "Return", - "src": "8124:11:1" + "src": "8124:11:25" } ] }, "documentation": null, - "id": 1063, + "id": 3785, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -14061,16 +14061,16 @@ "name": "approveAndCall", "nodeType": "FunctionDefinition", "parameters": { - "id": 1029, + "id": 3751, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1024, + "id": 3746, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 1063, - "src": "7854:15:1", + "scope": 3785, + "src": "7854:15:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14078,10 +14078,10 @@ "typeString": "address" }, "typeName": { - "id": 1023, + "id": 3745, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7854:7:1", + "src": "7854:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14092,11 +14092,11 @@ }, { "constant": false, - "id": 1026, + "id": 3748, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 1063, - "src": "7871:11:1", + "scope": 3785, + "src": "7871:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14104,10 +14104,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1025, + "id": 3747, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7871:4:1", + "src": "7871:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14118,11 +14118,11 @@ }, { "constant": false, - "id": 1028, + "id": 3750, "name": "data", "nodeType": "VariableDeclaration", - "scope": 1063, - "src": "7884:10:1", + "scope": 3785, + "src": "7884:10:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14130,10 +14130,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1027, + "id": 3749, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "7884:5:1", + "src": "7884:5:25", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -14143,20 +14143,20 @@ "visibility": "internal" } ], - "src": "7853:42:1" + "src": "7853:42:25" }, "payable": false, "returnParameters": { - "id": 1032, + "id": 3754, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1031, + "id": 3753, "name": "success", "nodeType": "VariableDeclaration", - "scope": 1063, - "src": "7912:12:1", + "scope": 3785, + "src": "7912:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14164,10 +14164,10 @@ "typeString": "bool" }, "typeName": { - "id": 1030, + "id": 3752, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7912:4:1", + "src": "7912:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14177,19 +14177,19 @@ "visibility": "internal" } ], - "src": "7911:14:1" + "src": "7911:14:25" }, - "scope": 1091, - "src": "7830:312:1", + "scope": 3813, + "src": "7830:312:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1069, + "id": 3791, "nodeType": "Block", - "src": "8360:25:1", + "src": "8360:25:25", "statements": [ { "expression": { @@ -14197,21 +14197,21 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1066, + "id": 3788, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 1111, - 1112 + 3833, + 3834 ], - "referencedDeclaration": 1111, - "src": "8370:6:1", + "referencedDeclaration": 3833, + "src": "8370:6:25", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 1067, + "id": 3789, "isConstant": false, "isLValue": false, "isPure": false, @@ -14219,20 +14219,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8370:8:1", + "src": "8370:8:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1068, + "id": 3790, "nodeType": "ExpressionStatement", - "src": "8370:8:1" + "src": "8370:8:25" } ] }, "documentation": null, - "id": 1070, + "id": 3792, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -14240,29 +14240,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 1064, + "id": 3786, "nodeType": "ParameterList", "parameters": [], - "src": "8342:2:1" + "src": "8342:2:25" }, "payable": true, "returnParameters": { - "id": 1065, + "id": 3787, "nodeType": "ParameterList", "parameters": [], - "src": "8360:0:1" + "src": "8360:0:25" }, - "scope": 1091, - "src": "8333:52:1", + "scope": 3813, + "src": "8333:52:25", "stateMutability": "payable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1089, + "id": 3811, "nodeType": "Block", - "src": "8723:76:1", + "src": "8723:76:25", "statements": [ { "expression": { @@ -14270,12 +14270,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1085, + "id": 3807, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 717, - "src": "8778:5:1", + "referencedDeclaration": 3439, + "src": "8778:5:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14283,12 +14283,12 @@ }, { "argumentTypes": null, - "id": 1086, + "id": 3808, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1074, - "src": "8785:6:1", + "referencedDeclaration": 3796, + "src": "8785:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14311,12 +14311,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1082, + "id": 3804, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1072, - "src": "8755:12:1", + "referencedDeclaration": 3794, + "src": "8755:12:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14330,18 +14330,18 @@ "typeString": "address" } ], - "id": 1081, + "id": 3803, "name": "ERC20Interface", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 703, - "src": "8740:14:1", + "referencedDeclaration": 3425, + "src": "8740:14:25", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$703_$", + "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3425_$", "typeString": "type(contract ERC20Interface)" } }, - "id": 1083, + "id": 3805, "isConstant": false, "isLValue": false, "isPure": false, @@ -14349,27 +14349,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8740:28:1", + "src": "8740:28:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$703", + "typeIdentifier": "t_contract$_ERC20Interface_$3425", "typeString": "contract ERC20Interface" } }, - "id": 1084, + "id": 3806, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 666, - "src": "8740:37:1", + "referencedDeclaration": 3388, + "src": "8740:37:25", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 1087, + "id": 3809, "isConstant": false, "isLValue": false, "isPure": false, @@ -14377,58 +14377,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8740:52:1", + "src": "8740:52:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1080, - "id": 1088, + "functionReturnParameters": 3802, + "id": 3810, "nodeType": "Return", - "src": "8733:59:1" + "src": "8733:59:25" } ] }, "documentation": null, - "id": 1090, + "id": 3812, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1077, + "id": 3799, "modifierName": { "argumentTypes": null, - "id": 1076, + "id": 3798, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 745, - "src": "8690:9:1", + "referencedDeclaration": 3467, + "src": "8690:9:25", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "8690:9:1" + "src": "8690:9:25" } ], "name": "transferAnyERC20Token", "nodeType": "FunctionDefinition", "parameters": { - "id": 1075, + "id": 3797, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1072, + "id": 3794, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 1090, - "src": "8648:20:1", + "scope": 3812, + "src": "8648:20:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14436,10 +14436,10 @@ "typeString": "address" }, "typeName": { - "id": 1071, + "id": 3793, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8648:7:1", + "src": "8648:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14450,11 +14450,11 @@ }, { "constant": false, - "id": 1074, + "id": 3796, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 1090, - "src": "8670:11:1", + "scope": 3812, + "src": "8670:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14462,10 +14462,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1073, + "id": 3795, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8670:4:1", + "src": "8670:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14475,20 +14475,20 @@ "visibility": "internal" } ], - "src": "8647:35:1" + "src": "8647:35:25" }, "payable": false, "returnParameters": { - "id": 1080, + "id": 3802, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1079, + "id": 3801, "name": "success", "nodeType": "VariableDeclaration", - "scope": 1090, - "src": "8709:12:1", + "scope": 3812, + "src": "8709:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14496,10 +14496,10 @@ "typeString": "bool" }, "typeName": { - "id": 1078, + "id": 3800, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "8709:4:1", + "src": "8709:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14509,33 +14509,26 @@ "visibility": "internal" } ], - "src": "8708:14:1" + "src": "8708:14:25" }, - "scope": 1091, - "src": "8617:182:1", + "scope": 3813, + "src": "8617:182:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1092, - "src": "3506:5295:1" + "scope": 3814, + "src": "3506:5295:25" } ], - "src": "0:8801:1" + "src": "0:8801:25" }, "compiler": { "name": "solc", "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, - "networks": { - "1531736519464": { - "events": {}, - "links": {}, - "address": "0xc7a8e338efc11284d8d00251dfcdacb4c203756b", - "transactionHash": "0xaff97a755f2e7633c7f63f3409580fdf571961c6318ae6ec17f77287d80bb4e8" - } - }, + "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-07-17T07:07:22.326Z" + "updatedAt": "2018-08-20T07:50:29.728Z" } \ No newline at end of file diff --git a/src/components/Header/actions.js b/src/components/Header/actions.js index aa2884a180..3206904326 100644 --- a/src/components/Header/actions.js +++ b/src/components/Header/actions.js @@ -1,5 +1,5 @@ // @flow -import { fetchProvider } from '~/wallets/store/actions' +import { fetchProvider } from '~/logic/wallets/store/actions' export default { fetchProvider, diff --git a/src/components/Header/selector.js b/src/components/Header/selector.js index 86ce5978a5..11b9dd342c 100644 --- a/src/components/Header/selector.js +++ b/src/components/Header/selector.js @@ -1,6 +1,6 @@ // @flow import { createStructuredSelector } from 'reselect' -import { providerNameSelector } from '~/wallets/store/selectors/index' +import { providerNameSelector } from '~/logic/wallets/store/selectors' export default createStructuredSelector({ provider: providerNameSelector, diff --git a/src/components/forms/validator.js b/src/components/forms/validator.js index b921f1030f..0d0e595659 100644 --- a/src/components/forms/validator.js +++ b/src/components/forms/validator.js @@ -1,6 +1,6 @@ // @flow -import { getWeb3 } from '~/wallets/getWeb3' import { type FieldValidator } from 'final-form' +import { getWeb3 } from '~/logic/wallets/getWeb3' type Field = boolean | string | null | typeof undefined diff --git a/src/config/development.js b/src/config/development.js new file mode 100644 index 0000000000..9473254ac1 --- /dev/null +++ b/src/config/development.js @@ -0,0 +1,10 @@ +// @flow +import { TX_SERVICE_HOST, ENABLED_TX_SERVICE_MODULES, ENABLED_TX_SERVICE_REMOVAL_SENDER } from '~/config/names' + +const devConfig = { + [TX_SERVICE_HOST]: 'http://localhost:8000/api/v1/', + [ENABLED_TX_SERVICE_MODULES]: false, + [ENABLED_TX_SERVICE_REMOVAL_SENDER]: false, +} + +export default devConfig diff --git a/src/config/index.js b/src/config/index.js new file mode 100644 index 0000000000..192ecdbf04 --- /dev/null +++ b/src/config/index.js @@ -0,0 +1,40 @@ +// @flow +import { ensureOnce } from '~/utils/singleton' +import { TX_SERVICE_HOST, ENABLED_TX_SERVICE_MODULES, ENABLED_TX_SERVICE_REMOVAL_SENDER } from '~/config/names' +import devConfig from './development' +import testConfig from './testing' +import prodConfig from './production' + +const configuration = () => { + if (process.env.NODE_ENV === 'test') { + return testConfig + } + + if (process.env.NODE_ENV === 'production') { + return prodConfig + } + + return devConfig +} + +const getConfig = ensureOnce(configuration) + +export const getTxServiceHost = () => { + const config = getConfig() + + return config[TX_SERVICE_HOST] +} + +export const getTxServiceUriFrom = (safeAddress: string) => `safes/${safeAddress}/transactions/` + +export const allowedModulesInTxHistoryService = () => { + const config = getConfig() + + return config[ENABLED_TX_SERVICE_MODULES] +} + +export const allowedRemoveSenderInTxHistoryService = () => { + const config = getConfig() + + return config[ENABLED_TX_SERVICE_REMOVAL_SENDER] +} diff --git a/src/config/names.js b/src/config/names.js new file mode 100644 index 0000000000..50fbdbf47d --- /dev/null +++ b/src/config/names.js @@ -0,0 +1,5 @@ +// @flow + +export const TX_SERVICE_HOST = 'tsh' +export const ENABLED_TX_SERVICE_MODULES = 'tsm' +export const ENABLED_TX_SERVICE_REMOVAL_SENDER = 'trs' diff --git a/src/config/production.js b/src/config/production.js new file mode 100644 index 0000000000..5544c438cf --- /dev/null +++ b/src/config/production.js @@ -0,0 +1,10 @@ +// @flow +import { TX_SERVICE_HOST, ENABLED_TX_SERVICE_MODULES, ENABLED_TX_SERVICE_REMOVAL_SENDER } from '~/config/names' + +const prodConfig = { + [TX_SERVICE_HOST]: 'https://safe-transaction-history.dev.gnosisdev.com/api/v1/', + [ENABLED_TX_SERVICE_MODULES]: false, + [ENABLED_TX_SERVICE_REMOVAL_SENDER]: false, +} + +export default prodConfig diff --git a/src/config/testing.js b/src/config/testing.js new file mode 100644 index 0000000000..cb3900a285 --- /dev/null +++ b/src/config/testing.js @@ -0,0 +1,10 @@ +// @flow +import { TX_SERVICE_HOST, ENABLED_TX_SERVICE_MODULES, ENABLED_TX_SERVICE_REMOVAL_SENDER } from '~/config/names' + +const testConfig = { + [TX_SERVICE_HOST]: 'http://localhost:8000/api/v1/', + [ENABLED_TX_SERVICE_MODULES]: false, + [ENABLED_TX_SERVICE_REMOVAL_SENDER]: false, +} + +export default testConfig diff --git a/src/logic/contracts/dailyLimitContracts.js b/src/logic/contracts/dailyLimitContracts.js new file mode 100644 index 0000000000..7d24f7cbcf --- /dev/null +++ b/src/logic/contracts/dailyLimitContracts.js @@ -0,0 +1,48 @@ +// @flow +import { getWeb3 } from '~/logic/wallets/getWeb3' +import { getGnosisSafeContract, getCreateDailyLimitExtensionContract } from '~/logic/contracts/safeContracts' +import { type DailyLimitProps } from '~/routes/safe/store/model/dailyLimit' + +export const LIMIT_POSITION = 0 +export const SPENT_TODAY_POS = 1 + + +export const getDailyLimitModuleFrom = async (safeAddress: string) => { + const web3 = getWeb3() + const gnosisSafe = getGnosisSafeContract(web3).at(safeAddress) + + const modules = await gnosisSafe.getModules() + const dailyAddress = modules[0] + + const dailyLimitModule = getCreateDailyLimitExtensionContract(web3).at(dailyAddress) + if (await dailyLimitModule.manager.call() !== gnosisSafe.address) { + throw new Error('Using an extension of different safe') + } + + return dailyLimitModule +} + +export const getDailyLimitFrom = async (safeAddress: string, tokenAddress: number): Promise => { + const web3 = getWeb3() + const dailyLimitModule = await getDailyLimitModuleFrom(safeAddress) + + const dailyLimitEth = await dailyLimitModule.dailyLimits(tokenAddress) + + const limit = web3.fromWei(dailyLimitEth[LIMIT_POSITION].valueOf(), 'ether').toString() + const spentToday = web3.fromWei(dailyLimitEth[SPENT_TODAY_POS].valueOf(), 'ether').toString() + + return { value: Number(limit), spentToday: Number(spentToday) } +} + +export const getDailyLimitAddress = async (safeAddress: string) => { + const dailyLimitModule = await getDailyLimitModuleFrom(safeAddress) + + return dailyLimitModule.address +} + +export const getEditDailyLimitData = async (safeAddress: string, token: number, dailyLimit: number) => { + const web3 = getWeb3() + const dailyLimitModule = await getDailyLimitModuleFrom(safeAddress) + const dailyLimitInWei = web3.toWei(dailyLimit, 'ether') + return dailyLimitModule.contract.changeDailyLimit.getData(token, dailyLimitInWei) +} diff --git a/src/wallets/safeContracts.js b/src/logic/contracts/safeContracts.js similarity index 98% rename from src/wallets/safeContracts.js rename to src/logic/contracts/safeContracts.js index 16910a623f..a3b16d72e1 100644 --- a/src/wallets/safeContracts.js +++ b/src/logic/contracts/safeContracts.js @@ -1,13 +1,13 @@ // @flow import contract from 'truffle-contract' import { ensureOnce } from '~/utils/singleton' -import { getWeb3 } from '~/wallets/getWeb3' +import { getWeb3 } from '~/logic/wallets/getWeb3' import { promisify } from '~/utils/promisify' import GnosisSafeSol from '#/GnosisSafeTeamEdition.json' import ProxyFactorySol from '#/ProxyFactory.json' import CreateAndAddModules from '#/CreateAndAddModules.json' import DailyLimitModule from '#/DailyLimitModule.json' -import { calculateGasOf, calculateGasPrice, EMPTY_DATA } from '~/wallets/ethTransactions' +import { calculateGasOf, calculateGasPrice, EMPTY_DATA } from '~/logic/wallets/ethTransactions' let proxyFactoryMaster let createAndAddModuleMaster diff --git a/src/logic/safe/safeBlockchainOperations.js b/src/logic/safe/safeBlockchainOperations.js new file mode 100644 index 0000000000..650775c912 --- /dev/null +++ b/src/logic/safe/safeBlockchainOperations.js @@ -0,0 +1,87 @@ +// @flow +import { calculateGasOf, checkReceiptStatus, calculateGasPrice } from '~/logic/wallets/ethTransactions' +import { type Operation, submitOperation } from '~/logic/safe/safeTxHistory' +import { getDailyLimitModuleFrom } from '~/logic/contracts/dailyLimitContracts' +import { getSafeEthereumInstance } from '~/logic/safe/safeFrontendOperations' + +export const approveTransaction = async ( + safeAddress: string, + to: string, + valueInWei: number, + data: string, + operation: Operation, + nonce: number, + sender: string, +) => { + const gasPrice = await calculateGasPrice() + + const gnosisSafe = await getSafeEthereumInstance(safeAddress) + const txData = gnosisSafe.contract.approveTransactionWithParameters.getData(to, valueInWei, data, operation, nonce) + const gas = await calculateGasOf(txData, sender, safeAddress) + const txReceipt = await gnosisSafe + .approveTransactionWithParameters(to, valueInWei, data, operation, nonce, { from: sender, gas, gasPrice }) + const txHash = txReceipt.tx + await checkReceiptStatus(txHash) + + await submitOperation(safeAddress, to, valueInWei, data, operation, nonce, txHash, sender, 'confirmation') + + return txHash +} + +export const executeTransaction = async ( + safeAddress: string, + to: string, + valueInWei: number, + data: string, + operation: Operation, + nonce: number, + sender: string, +) => { + const gasPrice = await calculateGasPrice() + + const gnosisSafe = await getSafeEthereumInstance(safeAddress) + const txConfirmationData = + gnosisSafe.contract.execTransactionIfApproved.getData(to, valueInWei, data, operation, nonce) + const numOwners = await gnosisSafe.getOwners() + const gas = await calculateGasOf(txConfirmationData, sender, safeAddress) + const gasIncludingRemovingStoreUpfront = gas + (numOwners.length * 15000) + const txReceipt = await gnosisSafe.execTransactionIfApproved( + to, + valueInWei, + data, + operation, + nonce, + { from: sender, gas: gasIncludingRemovingStoreUpfront, gasPrice }, + ) + const txHash = txReceipt.tx + await checkReceiptStatus(txHash) + + await submitOperation(safeAddress, to, valueInWei, data, operation, nonce, txHash, sender, 'execution') + + return txHash +} + +export const executeDailyLimit = async ( + safeAddress: string, + to: string, + nonce: number, + valueInWei: number, + sender: string, +) => { + const dailyLimitModule = await getDailyLimitModuleFrom(safeAddress) + const dailyLimitData = dailyLimitModule.contract.executeDailyLimit.getData(0, to, valueInWei) + const gas = await calculateGasOf(dailyLimitData, sender, dailyLimitModule.address) + const gasPrice = await calculateGasPrice() + + const txReceipt = await dailyLimitModule.executeDailyLimit(0, to, valueInWei, { from: sender, gas, gasPrice }) + checkReceiptStatus(txReceipt.tx) + + /* + // Temporarily disabled for daily limit operations + const operation = 0 // CALL for all currencies + const data = '' // empty for ETH + + await submitOperation(safeAddress, to, Number(valueInWei), data, operation, nonce, txReceipt.tx, sender, 'execution') + */ + return txReceipt.tx +} diff --git a/src/logic/safe/safeFrontendOperations.js b/src/logic/safe/safeFrontendOperations.js new file mode 100644 index 0000000000..7097db394d --- /dev/null +++ b/src/logic/safe/safeFrontendOperations.js @@ -0,0 +1,90 @@ +// @flow +import { type Transaction } from '~/routes/safe/store/model/transaction' +import { executeDailyLimit, executeTransaction, approveTransaction } from '~/logic/safe/safeBlockchainOperations' +import { EMPTY_DATA } from '~/logic/wallets/ethTransactions' +import { getWeb3 } from '~/logic/wallets/getWeb3' +import { DESTINATION_PARAM, VALUE_PARAM } from '~/routes/safe/component/Withdraw/WithdrawForm' +import { type Safe } from '~/routes/safe/store/model/safe' +import { getGnosisSafeContract } from '~/logic/contracts/safeContracts' +import { storeSubject } from '~/utils/localStorage/transactions' + +export const TX_NAME_PARAM = 'txName' +export const TX_DESTINATION_PARAM = 'txDestination' +export const TX_VALUE_PARAM = 'txValue' + +export const EXECUTED_CONFIRMATION_HASH = 'EXECUTED' + +const hasOneOwner = (safe: Safe) => { + const owners = safe.get('owners') + if (!owners) { + throw new Error('Received a Safe without owners when creating a tx') + } + + return owners.count() === 1 +} + +export const getSafeEthereumInstance = async (safeAddress: string) => { + const web3 = getWeb3() + const GnosisSafe = await getGnosisSafeContract(web3) + return GnosisSafe.at(safeAddress) +} + +export const createTransaction = async ( + safe: Safe, + name: string, + to: string, + value: number, + nonce: number, + sender: string, + data: string = EMPTY_DATA, +) => { + const web3 = getWeb3() + const safeAddress = safe.get('address') + const threshold = safe.get('threshold') + const valueInWei = web3.toWei(value, 'ether') + const CALL = 0 + + const isExecution = hasOneOwner(safe) || threshold === 1 + + const txHash = isExecution + ? await executeTransaction(safeAddress, to, valueInWei, data, CALL, nonce, sender) + : await approveTransaction(safeAddress, to, valueInWei, data, CALL, nonce, sender) + + storeSubject(safeAddress, nonce, name) + + return txHash +} + +export const processTransaction = async ( + safeAddress: string, + tx: Transaction, + alreadyConfirmed: number, + sender: string, + threshold: number, +) => { + const nonce = tx.get('nonce') + const valueInWei = tx.get('value') + const to = tx.get('destination') + const data = tx.get('data') + const CALL = 0 + + const thresholdReached = threshold === alreadyConfirmed + 1 + const txHash = thresholdReached + ? await executeTransaction(safeAddress, to, valueInWei, data, CALL, nonce, sender) + : await approveTransaction(safeAddress, to, valueInWei, data, CALL, nonce, sender) + + return txHash +} + +export const withdraw = async (values: Object, safe: Safe, sender: string): Promise => { + const safeAddress = safe.get('address') + const destination = values[DESTINATION_PARAM] + const valueInEth = values[VALUE_PARAM] + const valueInWei = getWeb3().toWei(valueInEth, 'ether') + const nonce = Date.now() + const txHash = await executeDailyLimit(safeAddress, destination, nonce, valueInWei, sender) + + storeSubject(safeAddress, nonce, `Withdraw movement of ${valueInEth}`) + + return txHash +} diff --git a/src/logic/safe/safeTxHistory.js b/src/logic/safe/safeTxHistory.js new file mode 100644 index 0000000000..86ebc35574 --- /dev/null +++ b/src/logic/safe/safeTxHistory.js @@ -0,0 +1,72 @@ +// @flow +import { getWeb3 } from '~/logic/wallets/getWeb3' +import { getTxServiceUriFrom, getTxServiceHost } from '~/config' +import { getSafeEthereumInstance } from '~/logic/safe/safeFrontendOperations' + +export type TxServiceType = 'confirmation' | 'execution' | 'initialised' +export type Operation = 0 | 1 | 2 + +const calculateBodyFrom = async ( + safeAddress: string, + to: string, + valueInWei: number, + data: string, + operation: Operation, + nonce: number, + transactionHash: string, + sender: string, + type: TxServiceType, +) => { + const gnosisSafe = await getSafeEthereumInstance(safeAddress) + const contractTransactionHash = await gnosisSafe.getTransactionHash(to, valueInWei, data, operation, nonce) + + return JSON.stringify({ + to: getWeb3().toChecksumAddress(to), + value: valueInWei, + data, + operation, + nonce, + contractTransactionHash, + transactionHash, + sender: getWeb3().toChecksumAddress(sender), + type, + }) +} + +export const buildTxServiceUrlFrom = (safeAddress: string) => { + const host = getTxServiceHost() + const address = getWeb3().toChecksumAddress(safeAddress) + const base = getTxServiceUriFrom(address) + return `${host}${base}` +} + +export const submitOperation = async ( + safeAddress: string, + to: string, + valueInWei: number, + data: string, + operation: Operation, + nonce: number, + txHash: string, + sender: string, + type: TxServiceType, +) => { + const url = buildTxServiceUrlFrom(safeAddress) + const headers = { + Accept: 'application/json', + 'Content-Type': 'application/json', + } + const body = await calculateBodyFrom(safeAddress, to, valueInWei, data, operation, nonce, txHash, sender, type) + + const response = await fetch(url, { + method: 'POST', + headers, + body, + }) + + if (response.status !== 202) { + return Promise.reject(new Error('Error submitting the transaction')) + } + + return Promise.resolve() +} diff --git a/src/wallets/ethAddresses.js b/src/logic/wallets/ethAddresses.js similarity index 100% rename from src/wallets/ethAddresses.js rename to src/logic/wallets/ethAddresses.js diff --git a/src/wallets/ethTransactions.js b/src/logic/wallets/ethTransactions.js similarity index 96% rename from src/wallets/ethTransactions.js rename to src/logic/wallets/ethTransactions.js index 430dbdb52f..a16dc12193 100644 --- a/src/wallets/ethTransactions.js +++ b/src/logic/wallets/ethTransactions.js @@ -1,6 +1,6 @@ // @flow import { BigNumber } from 'bignumber.js' -import { getWeb3 } from '~/wallets/getWeb3' +import { getWeb3 } from '~/logic/wallets/getWeb3' import { promisify } from '~/utils/promisify' import { enhancedFetch } from '~/utils/fetch' diff --git a/src/wallets/getWeb3.js b/src/logic/wallets/getWeb3.js similarity index 95% rename from src/wallets/getWeb3.js rename to src/logic/wallets/getWeb3.js index 8b5e43d3c7..9ffdcba151 100644 --- a/src/wallets/getWeb3.js +++ b/src/logic/wallets/getWeb3.js @@ -1,7 +1,7 @@ // @flow import { BigNumber } from 'bignumber.js' import Web3 from 'web3' -import type { ProviderProps } from '~/wallets/store/model/provider' +import type { ProviderProps } from '~/logic/wallets/store/model/provider' import { promisify } from '~/utils/promisify' let web3 diff --git a/src/wallets/store/actions/addProvider.js b/src/logic/wallets/store/actions/addProvider.js similarity index 75% rename from src/wallets/store/actions/addProvider.js rename to src/logic/wallets/store/actions/addProvider.js index eb8aea45aa..7cff10ab56 100644 --- a/src/wallets/store/actions/addProvider.js +++ b/src/logic/wallets/store/actions/addProvider.js @@ -1,6 +1,6 @@ // @flow import { createAction } from 'redux-actions' -import { type Provider } from '~/wallets/store/model/provider' +import { type Provider } from '~/logic/wallets/store/model/provider' export const ADD_PROVIDER = 'ADD_PROVIDER' diff --git a/src/wallets/store/actions/fetchProvider.js b/src/logic/wallets/store/actions/fetchProvider.js similarity index 74% rename from src/wallets/store/actions/fetchProvider.js rename to src/logic/wallets/store/actions/fetchProvider.js index 1463d70cc8..2fdb29623b 100644 --- a/src/wallets/store/actions/fetchProvider.js +++ b/src/logic/wallets/store/actions/fetchProvider.js @@ -1,8 +1,8 @@ // @flow import type { Dispatch as ReduxDispatch } from 'redux' -import { getProviderInfo } from '~/wallets/getWeb3' -import type { ProviderProps } from '~/wallets/store/model/provider' -import { makeProvider } from '~/wallets/store/model/provider' +import { getProviderInfo } from '~/logic/wallets/getWeb3' +import type { ProviderProps } from '~/logic/wallets/store/model/provider' +import { makeProvider } from '~/logic/wallets/store/model/provider' import addProvider from './addProvider' export const processProviderResponse = (dispatch: ReduxDispatch<*>, response: ProviderProps) => { diff --git a/src/wallets/store/actions/index.js b/src/logic/wallets/store/actions/index.js similarity index 100% rename from src/wallets/store/actions/index.js rename to src/logic/wallets/store/actions/index.js diff --git a/src/wallets/store/model/provider.js b/src/logic/wallets/store/model/provider.js similarity index 100% rename from src/wallets/store/model/provider.js rename to src/logic/wallets/store/model/provider.js diff --git a/src/wallets/store/reducer/provider.js b/src/logic/wallets/store/reducer/provider.js similarity index 64% rename from src/wallets/store/reducer/provider.js rename to src/logic/wallets/store/reducer/provider.js index ed3bd1afb5..90fc43ca71 100644 --- a/src/wallets/store/reducer/provider.js +++ b/src/logic/wallets/store/reducer/provider.js @@ -1,7 +1,7 @@ // @flow import { handleActions, type ActionType } from 'redux-actions' -import { makeProvider, type Provider } from '~/wallets/store/model/provider' -import addProvider, { ADD_PROVIDER } from '~/wallets/store/actions/addProvider' +import { makeProvider, type Provider } from '~/logic/wallets/store/model/provider' +import addProvider, { ADD_PROVIDER } from '~/logic/wallets/store/actions/addProvider' export const PROVIDER_REDUCER_ID = 'providers' diff --git a/src/wallets/store/selectors/index.js b/src/logic/wallets/store/selectors/index.js similarity index 80% rename from src/wallets/store/selectors/index.js rename to src/logic/wallets/store/selectors/index.js index 3aaafa80af..208acf3a4d 100644 --- a/src/wallets/store/selectors/index.js +++ b/src/logic/wallets/store/selectors/index.js @@ -1,7 +1,7 @@ // @flow import { createSelector } from 'reselect' -import type { Provider } from '~/wallets/store/model/provider' -import { PROVIDER_REDUCER_ID } from '~/wallets/store/reducer/provider' +import type { Provider } from '~/logic/wallets/store/model/provider' +import { PROVIDER_REDUCER_ID } from '~/logic/wallets/store/reducer/provider' const providerSelector = (state: any): Provider => state[PROVIDER_REDUCER_ID] diff --git a/src/wallets/store/test/account.selector.js b/src/logic/wallets/store/test/account.selector.js similarity index 93% rename from src/wallets/store/test/account.selector.js rename to src/logic/wallets/store/test/account.selector.js index 3c40b133fb..514a056635 100644 --- a/src/wallets/store/test/account.selector.js +++ b/src/logic/wallets/store/test/account.selector.js @@ -1,5 +1,5 @@ // @flow -import { PROVIDER_REDUCER_ID } from '~/wallets/store/reducer/provider' +import { PROVIDER_REDUCER_ID } from '~/logic/wallets/store/reducer/provider' import { userAccountSelector } from '../selectors' import { ProviderFactory } from './builder/index.builder' diff --git a/src/wallets/store/test/builder/index.builder.js b/src/logic/wallets/store/test/builder/index.builder.js similarity index 89% rename from src/wallets/store/test/builder/index.builder.js rename to src/logic/wallets/store/test/builder/index.builder.js index e78af2e53f..2815e5a5ac 100644 --- a/src/wallets/store/test/builder/index.builder.js +++ b/src/logic/wallets/store/test/builder/index.builder.js @@ -1,6 +1,6 @@ // @flow -import type { Provider } from '~/wallets/store/model/provider' -import { makeProvider } from '~/wallets/store/model/provider' +import type { Provider } from '~/logic/wallets/store/model/provider' +import { makeProvider } from '~/logic/wallets/store/model/provider' class ProviderBuilder { provider: Provider diff --git a/src/wallets/store/test/name.selector.js b/src/logic/wallets/store/test/name.selector.js similarity index 94% rename from src/wallets/store/test/name.selector.js rename to src/logic/wallets/store/test/name.selector.js index 3fae794b0a..212242a6a5 100644 --- a/src/wallets/store/test/name.selector.js +++ b/src/logic/wallets/store/test/name.selector.js @@ -1,5 +1,5 @@ // @flow -import { PROVIDER_REDUCER_ID } from '~/wallets/store/reducer/provider' +import { PROVIDER_REDUCER_ID } from '~/logic/wallets/store/reducer/provider' import { providerNameSelector } from '../selectors' import { ProviderFactory } from './builder/index.builder' diff --git a/src/wallets/store/test/provider.reducer.js b/src/logic/wallets/store/test/provider.reducer.js similarity index 89% rename from src/wallets/store/test/provider.reducer.js rename to src/logic/wallets/store/test/provider.reducer.js index 4750a2bf1e..e9791bb332 100644 --- a/src/wallets/store/test/provider.reducer.js +++ b/src/logic/wallets/store/test/provider.reducer.js @@ -1,9 +1,9 @@ // @flow import { combineReducers, createStore, applyMiddleware, compose } from 'redux' import thunk from 'redux-thunk' -import providerReducer, { PROVIDER_REDUCER_ID } from '~/wallets/store/reducer/provider' -import type { ProviderProps } from '~/wallets/store/model/provider' -import { makeProvider } from '~/wallets/store/model/provider' +import providerReducer, { PROVIDER_REDUCER_ID } from '~/logic/wallets/store/reducer/provider' +import type { ProviderProps } from '~/logic/wallets/store/model/provider' +import { makeProvider } from '~/logic/wallets/store/model/provider' import { processProviderResponse } from '../actions/fetchProvider' const providerReducerTests = () => { diff --git a/src/wallets/store/test/provider.spec.js b/src/logic/wallets/store/test/provider.spec.js similarity index 100% rename from src/wallets/store/test/provider.spec.js rename to src/logic/wallets/store/test/provider.spec.js diff --git a/src/wallets/tokens.js b/src/logic/wallets/tokens.js similarity index 82% rename from src/wallets/tokens.js rename to src/logic/wallets/tokens.js index b8e6be9704..3088b8fe44 100644 --- a/src/wallets/tokens.js +++ b/src/logic/wallets/tokens.js @@ -1,5 +1,5 @@ // @flow -import { getWeb3 } from '~/wallets/getWeb3' +import { getWeb3 } from '~/logic/wallets/getWeb3' import { BigNumber } from 'bignumber.js' export const toNative = async (amt: string | number | BigNumber, decimal: number): Promise => { diff --git a/src/routes/open/components/Layout.stories.js b/src/routes/open/components/Layout.stories.js index c3a6af9040..c03bc3fc3e 100644 --- a/src/routes/open/components/Layout.stories.js +++ b/src/routes/open/components/Layout.stories.js @@ -4,7 +4,7 @@ import { State, Store } from '@sambego/storybook-state' import * as React from 'react' import styles from '~/components/layout/PageFrame/index.scss' import { getAccountsFrom, getThresholdFrom } from '~/routes/open/utils/safeDataExtractor' -import { getProviderInfo } from '~/wallets/getWeb3' +import { getProviderInfo } from '~/logic/wallets/getWeb3' import { sleep } from '~/utils/timer' import Component from './Layout' diff --git a/src/routes/open/components/SafeForm/Confirmations/index.test.js b/src/routes/open/components/SafeForm/Confirmations/index.test.js index 3296dea30a..9e2cf46d03 100644 --- a/src/routes/open/components/SafeForm/Confirmations/index.test.js +++ b/src/routes/open/components/SafeForm/Confirmations/index.test.js @@ -4,7 +4,7 @@ import * as React from 'react' import * as TestUtils from 'react-dom/test-utils' import Layout from '~/routes/open/components/Layout' import { FIELD_CONFIRMATIONS, FIELD_OWNERS } from '~/routes/open/components/fields' -import { getProviderInfo } from '~/wallets/getWeb3' +import { getProviderInfo } from '~/logic/wallets/getWeb3' import Wrapper from '~/test/utils/Wrapper' import { CONFIRMATIONS_ERROR } from '~/routes/open/components/SafeForm' diff --git a/src/routes/open/components/SafeForm/Owners/index.test.js b/src/routes/open/components/SafeForm/Owners/index.test.js index 0951933392..d42acdf1f5 100644 --- a/src/routes/open/components/SafeForm/Owners/index.test.js +++ b/src/routes/open/components/SafeForm/Owners/index.test.js @@ -5,7 +5,7 @@ import * as TestUtils from 'react-dom/test-utils' import GnoForm from '~/components/forms/GnoForm' import { FIELD_OWNERS } from '~/routes/open/components/fields' import { getAccountsFrom } from '~/routes/open/utils/safeDataExtractor' -import { getProviderInfo } from '~/wallets/getWeb3' +import { getProviderInfo } from '~/logic/wallets/getWeb3' import Wrapper from '~/test/utils/Wrapper' import { ADDRESS_REPEATED_ERROR } from '~/components/forms/validator' import Owners from './index' diff --git a/src/routes/open/container/Open.jsx b/src/routes/open/container/Open.jsx index 0c0e0e5065..a44e0e08b4 100644 --- a/src/routes/open/container/Open.jsx +++ b/src/routes/open/container/Open.jsx @@ -4,9 +4,9 @@ import { connect } from 'react-redux' import Page from '~/components/layout/Page' import { getAccountsFrom, getThresholdFrom, getNamesFrom, getSafeNameFrom, getDailyLimitFrom } from '~/routes/open/utils/safeDataExtractor' -import { getWeb3 } from '~/wallets/getWeb3' -import { getGnosisSafeContract, deploySafeContract, initContracts } from '~/wallets/safeContracts' -import { checkReceiptStatus } from '~/wallets/ethTransactions' +import { getWeb3 } from '~/logic/wallets/getWeb3' +import { getGnosisSafeContract, deploySafeContract, initContracts } from '~/logic/contracts/safeContracts' +import { checkReceiptStatus } from '~/logic/wallets/ethTransactions' import selector from './selector' import actions, { type Actions, type AddSafe } from './actions' import Layout from '../components/Layout' diff --git a/src/routes/open/container/selector.js b/src/routes/open/container/selector.js index 2b16c08588..efa0903e6c 100644 --- a/src/routes/open/container/selector.js +++ b/src/routes/open/container/selector.js @@ -1,6 +1,6 @@ // @flow import { createStructuredSelector } from 'reselect' -import { providerNameSelector, userAccountSelector } from '~/wallets/store/selectors/index' +import { providerNameSelector, userAccountSelector } from '~/logic/wallets/store/selectors' export default createStructuredSelector({ provider: providerNameSelector, diff --git a/src/routes/safe/component/AddOwner/index.jsx b/src/routes/safe/component/AddOwner/index.jsx index dcc3fb5346..f63518e7b0 100644 --- a/src/routes/safe/component/AddOwner/index.jsx +++ b/src/routes/safe/component/AddOwner/index.jsx @@ -5,8 +5,8 @@ import Stepper from '~/components/Stepper' import { connect } from 'react-redux' import { type Safe } from '~/routes/safe/store/model/safe' import { type Owner, makeOwner } from '~/routes/safe/store/model/owner' -import { getSafeEthereumInstance, createTransaction } from '~/wallets/createTransactions' import { setOwners } from '~/utils/localStorage' +import { getSafeEthereumInstance, createTransaction } from '~/logic/safe/safeFrontendOperations' import AddOwnerForm, { NAME_PARAM, OWNER_ADDRESS_PARAM, INCREASE_PARAM } from './AddOwnerForm' import Review from './Review' import selector, { type SelectorProps } from './selector' @@ -58,7 +58,7 @@ class AddOwner extends React.Component { safe, threshold, userAddress, fetchTransactions, } = this.props await addOwner(values, safe, threshold, userAddress) - fetchTransactions() + fetchTransactions(safe.get('address')) this.setState({ done: true }) } catch (error) { this.setState({ done: false }) diff --git a/src/routes/safe/component/AddOwner/selector.js b/src/routes/safe/component/AddOwner/selector.js index 9e7bfef11a..cefe346020 100644 --- a/src/routes/safe/component/AddOwner/selector.js +++ b/src/routes/safe/component/AddOwner/selector.js @@ -1,6 +1,6 @@ // @flow import { createStructuredSelector } from 'reselect' -import { userAccountSelector } from '~/wallets/store/selectors/index' +import { userAccountSelector } from '~/logic/wallets/store/selectors' export type SelectorProps = { userAddress: userAccountSelector, diff --git a/src/routes/safe/component/EditDailyLimit/index.jsx b/src/routes/safe/component/EditDailyLimit/index.jsx index fed1ef4eaf..bd6f9728f7 100644 --- a/src/routes/safe/component/EditDailyLimit/index.jsx +++ b/src/routes/safe/component/EditDailyLimit/index.jsx @@ -2,9 +2,9 @@ import * as React from 'react' import Stepper from '~/components/Stepper' import { connect } from 'react-redux' -import { createTransaction } from '~/wallets/createTransactions' -import { getEditDailyLimitData, getDailyLimitAddress } from '~/routes/safe/component/Withdraw/withdraw' import { type Safe } from '~/routes/safe/store/model/safe' +import { createTransaction } from '~/logic/safe/safeFrontendOperations' +import { getEditDailyLimitData, getDailyLimitAddress } from '~/logic/contracts/dailyLimitContracts' import EditDailyLimitForm, { EDIT_DAILY_LIMIT_PARAM } from './EditDailyLimitForm' import selector, { type SelectorProps } from './selector' import actions, { type Actions } from './actions' @@ -40,7 +40,7 @@ class EditDailyLimit extends React.PureComponent { const to = await getDailyLimitAddress(safeAddress) const nonce = Date.now() await createTransaction(safe, `Change Safe's daily limit to ${newDailyLimit} [${nonce}]`, to, 0, nonce, userAddress, data) - await this.props.fetchTransactions() + await this.props.fetchTransactions(safeAddress) this.setState({ done: true }) } catch (error) { this.setState({ done: false }) diff --git a/src/routes/safe/component/EditDailyLimit/selector.js b/src/routes/safe/component/EditDailyLimit/selector.js index 9e7bfef11a..cefe346020 100644 --- a/src/routes/safe/component/EditDailyLimit/selector.js +++ b/src/routes/safe/component/EditDailyLimit/selector.js @@ -1,6 +1,6 @@ // @flow import { createStructuredSelector } from 'reselect' -import { userAccountSelector } from '~/wallets/store/selectors/index' +import { userAccountSelector } from '~/logic/wallets/store/selectors' export type SelectorProps = { userAddress: userAccountSelector, diff --git a/src/routes/safe/component/RemoveOwner/index.jsx b/src/routes/safe/component/RemoveOwner/index.jsx index 25af2595bd..dc642cfbf9 100644 --- a/src/routes/safe/component/RemoveOwner/index.jsx +++ b/src/routes/safe/component/RemoveOwner/index.jsx @@ -3,7 +3,7 @@ import * as React from 'react' import Stepper from '~/components/Stepper' import { connect } from 'react-redux' import { type Safe } from '~/routes/safe/store/model/safe' -import { getSafeEthereumInstance, createTransaction } from '~/wallets/createTransactions' +import { getSafeEthereumInstance, createTransaction } from '~/logic/safe/safeFrontendOperations' import RemoveOwnerForm, { DECREASE_PARAM } from './RemoveOwnerForm' import Review from './Review' import selector, { type SelectorProps } from './selector' @@ -65,7 +65,7 @@ class RemoveOwner extends React.Component { safe, threshold, executor, fetchTransactions, userToRemove, name, } = this.props await removeOwner(values, safe, threshold, userToRemove, name, executor) - fetchTransactions() + fetchTransactions(safe.get('address')) this.setState({ done: true }) } catch (error) { this.setState({ done: false }) diff --git a/src/routes/safe/component/RemoveOwner/selector.js b/src/routes/safe/component/RemoveOwner/selector.js index 76ee9f09e2..54a4104a38 100644 --- a/src/routes/safe/component/RemoveOwner/selector.js +++ b/src/routes/safe/component/RemoveOwner/selector.js @@ -1,18 +1,14 @@ // @flow import { List } from 'immutable' import { createStructuredSelector, createSelector } from 'reselect' -import { userAccountSelector } from '~/wallets/store/selectors/index' +import { userAccountSelector } from '~/logic/wallets/store/selectors' import { type Transaction } from '~/routes/safe/store/model/transaction' import { safeTransactionsSelector } from '~/routes/safe/store/selectors/index' const pendingTransactionsSelector = createSelector( safeTransactionsSelector, (transactions: List) => - transactions.findEntry((transaction: Transaction) => { - const txHash = transaction.get('tx') - - return txHash === '' || txHash === undefined - }) !== undefined, + transactions.findEntry((tx: Transaction) => tx.get('isExecuted')), ) export type SelectorProps = { diff --git a/src/routes/safe/component/Safe/Owners.jsx b/src/routes/safe/component/Safe/Owners.jsx index 74a8802a29..e4082eba53 100644 --- a/src/routes/safe/component/Safe/Owners.jsx +++ b/src/routes/safe/component/Safe/Owners.jsx @@ -17,7 +17,7 @@ import ExpandLess from '@material-ui/icons/ExpandLess' import ExpandMore from '@material-ui/icons/ExpandMore' import { type OwnerProps } from '~/routes/safe/store/model/owner' import { type WithStyles } from '~/theme/mui' -import { sameAddress } from '~/wallets/ethAddresses' +import { sameAddress } from '~/logic/wallets/ethAddresses' const styles = { nested: { diff --git a/src/routes/safe/component/Safe/index.jsx b/src/routes/safe/component/Safe/index.jsx index 2425090a0a..76596f9e15 100644 --- a/src/routes/safe/component/Safe/index.jsx +++ b/src/routes/safe/component/Safe/index.jsx @@ -77,7 +77,7 @@ class GnoSafe extends React.PureComponent { onListTransactions = () => { const { safe } = this.props - this.setState({ component: }) + this.setState({ component: }) } onEditThreshold = () => { diff --git a/src/routes/safe/component/SendToken/index.jsx b/src/routes/safe/component/SendToken/index.jsx index 4807d9dda2..33aedd34ee 100644 --- a/src/routes/safe/component/SendToken/index.jsx +++ b/src/routes/safe/component/SendToken/index.jsx @@ -7,10 +7,10 @@ import { sleep } from '~/utils/timer' import { type Safe } from '~/routes/safe/store/model/safe' import { getStandardTokenContract } from '~/routes/tokens/store/actions/fetchTokens' import { type Token } from '~/routes/tokens/store/model/token' -import { createTransaction } from '~/wallets/createTransactions' -import { EMPTY_DATA } from '~/wallets/ethTransactions' -import { toNative } from '~/wallets/tokens' import { isEther } from '~/utils/tokens' +import { EMPTY_DATA } from '~/logic/wallets/ethTransactions' +import { toNative } from '~/logic/wallets/tokens' +import { createTransaction } from '~/logic/safe/safeFrontendOperations' import actions, { type Actions } from './actions' import selector, { type SelectorProps } from './selector' import SendTokenForm, { TKN_DESTINATION_PARAM, TKN_VALUE_PARAM } from './SendTokenForm' @@ -67,7 +67,7 @@ class SendToken extends React.Component { await processTokenTransfer(safe, token, destination, amount, userAddress) await sleep(1500) - this.props.fetchTransactions() + this.props.fetchTransactions(safe.get('address')) this.setState({ done: true }) } catch (error) { this.setState({ done: false }) diff --git a/src/routes/safe/component/SendToken/selector.js b/src/routes/safe/component/SendToken/selector.js index 9e7bfef11a..cefe346020 100644 --- a/src/routes/safe/component/SendToken/selector.js +++ b/src/routes/safe/component/SendToken/selector.js @@ -1,6 +1,6 @@ // @flow import { createStructuredSelector } from 'reselect' -import { userAccountSelector } from '~/wallets/store/selectors/index' +import { userAccountSelector } from '~/logic/wallets/store/selectors' export type SelectorProps = { userAddress: userAccountSelector, diff --git a/src/routes/safe/component/Threshold/index.jsx b/src/routes/safe/component/Threshold/index.jsx index d90f831d9b..795bd7866f 100644 --- a/src/routes/safe/component/Threshold/index.jsx +++ b/src/routes/safe/component/Threshold/index.jsx @@ -2,7 +2,7 @@ import * as React from 'react' import Stepper from '~/components/Stepper' import { connect } from 'react-redux' -import { getSafeEthereumInstance, createTransaction } from '~/wallets/createTransactions' +import { getSafeEthereumInstance, createTransaction } from '~/logic/safe/safeFrontendOperations' import { type Safe } from '~/routes/safe/store/model/safe' import ThresholdForm, { THRESHOLD_PARAM } from './ThresholdForm' import selector, { type SelectorProps } from './selector' @@ -34,11 +34,12 @@ class Threshold extends React.PureComponent { try { const { safe, userAddress } = this.props // , fetchThreshold } = this.props const newThreshold = values[THRESHOLD_PARAM] - const gnosisSafe = await getSafeEthereumInstance(safe.get('address')) + const safeAddress = safe.get('address') + const gnosisSafe = await getSafeEthereumInstance(safeAddress) const nonce = Date.now() const data = gnosisSafe.contract.changeThreshold.getData(newThreshold) - await createTransaction(safe, `Change Safe's threshold [${nonce}]`, safe.get('address'), 0, nonce, userAddress, data) - await this.props.fetchTransactions() + await createTransaction(safe, `Change Safe's threshold [${nonce}]`, safeAddress, 0, nonce, userAddress, data) + await this.props.fetchTransactions(safeAddress) this.setState({ done: true }) } catch (error) { this.setState({ done: false }) diff --git a/src/routes/safe/component/Threshold/selector.js b/src/routes/safe/component/Threshold/selector.js index 9e7bfef11a..cefe346020 100644 --- a/src/routes/safe/component/Threshold/selector.js +++ b/src/routes/safe/component/Threshold/selector.js @@ -1,6 +1,6 @@ // @flow import { createStructuredSelector } from 'reselect' -import { userAccountSelector } from '~/wallets/store/selectors/index' +import { userAccountSelector } from '~/logic/wallets/store/selectors' export type SelectorProps = { userAddress: userAccountSelector, diff --git a/src/routes/safe/component/Transactions/Collapsed/Confirmations.jsx b/src/routes/safe/component/Transactions/Collapsed/Confirmations.jsx index 4cd560885d..b4e49d7e1f 100644 --- a/src/routes/safe/component/Transactions/Collapsed/Confirmations.jsx +++ b/src/routes/safe/component/Transactions/Collapsed/Confirmations.jsx @@ -27,10 +27,11 @@ type Props = Open & WithStyles & { threshold: number, } -const GnoConfirmation = ({ owner, status, hash }: ConfirmationProps) => { +const GnoConfirmation = ({ owner, type, hash }: ConfirmationProps) => { const address = owner.get('address') - const text = status ? 'Confirmed' : 'Not confirmed' - const hashText = status ? `Confirmation hash: ${hash}` : undefined + const confirmed = type === 'confirmation' + const text = confirmed ? 'Confirmed' : 'Not confirmed' + const hashText = confirmed ? `Confirmation hash: ${hash}` : undefined return ( @@ -70,7 +71,7 @@ const Confirmaitons = openHoc(({ ))} diff --git a/src/routes/safe/component/Transactions/Transaction/index.jsx b/src/routes/safe/component/Transactions/Transaction/index.jsx index 0e33d3ce4d..de6c03ae9f 100644 --- a/src/routes/safe/component/Transactions/Transaction/index.jsx +++ b/src/routes/safe/component/Transactions/Transaction/index.jsx @@ -19,13 +19,14 @@ import Collapsed from '~/routes/safe/component/Transactions/Collapsed' import { type Transaction } from '~/routes/safe/store/model/transaction' import Hairline from '~/components/layout/Hairline/index' import Button from '~/components/layout/Button' -import { sameAddress } from '~/wallets/ethAddresses' +import { sameAddress } from '~/logic/wallets/ethAddresses' import { type Confirmation } from '~/routes/safe/store/model/confirmation' import selector, { type SelectorProps } from './selector' type Props = Open & SelectorProps & { transaction: Transaction, safeName: string, + threshold: number, onProcessTx: (tx: Transaction, alreadyConfirmed: number) => void, } @@ -35,15 +36,14 @@ class GnoTransaction extends React.PureComponent { onProccesClick = () => this.props.onProcessTx(this.props.transaction, this.props.confirmed) hasConfirmed = (userAddress: string, confirmations: List): boolean => - confirmations.filter((conf: Confirmation) => sameAddress(userAddress, conf.get('owner').get('address')) && conf.get('status')).count() > 0 + confirmations.filter((conf: Confirmation) => sameAddress(userAddress, conf.get('owner').get('address')) && conf.get('type') === 'confirmation').count() > 0 render() { const { - open, toggle, transaction, confirmed, safeName, userAddress, + open, toggle, transaction, confirmed, safeName, userAddress, executionHash, threshold, } = this.props - const txHash = transaction.get('tx') - const confirmationText = txHash ? 'Already executed' : `${confirmed} of the ${transaction.get('threshold')} confirmations needed` + const confirmationText = executionHash ? 'Already executed' : `${confirmed} of the ${threshold} confirmations needed` const userConfirmed = this.hasConfirmed(userAddress, transaction.get('confirmations')) return ( @@ -72,19 +72,19 @@ class GnoTransaction extends React.PureComponent { - { txHash && + { executionHash && - + } - { !txHash && userConfirmed && + { !executionHash && userConfirmed && } - { !txHash && !userConfirmed && + { !executionHash && !userConfirmed &&