Advertisement
Guest User

BucketSale.json

a guest
Apr 1st, 2021
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JSON 424.34 KB | None | 0 0
  1. {
  2.   "contractName": "BucketSale",
  3.   "abi": [
  4.     {
  5.       "constant": false,
  6.       "inputs": [],
  7.       "name": "tokenSoldFor",
  8.       "outputs": [
  9.         {
  10.           "internalType": "contract ERC20",
  11.           "name": "",
  12.           "type": "address"
  13.         }
  14.       ],
  15.       "payable": false,
  16.       "stateMutability": "nonpayable",
  17.       "type": "function"
  18.     },
  19.     {
  20.       "constant": false,
  21.       "inputs": [
  22.         {
  23.           "internalType": "address",
  24.           "name": "_buyer",
  25.           "type": "address"
  26.         },
  27.         {
  28.           "internalType": "uint256",
  29.           "name": "_bucketId",
  30.           "type": "uint256"
  31.         },
  32.         {
  33.           "internalType": "uint256",
  34.           "name": "_amount",
  35.           "type": "uint256"
  36.         },
  37.         {
  38.           "internalType": "address",
  39.           "name": "_referrer",
  40.           "type": "address"
  41.         }
  42.       ],
  43.       "name": "agreeToTermsAndConditionsListedInThisContractAndEnterSale",
  44.       "outputs": [],
  45.       "payable": false,
  46.       "stateMutability": "nonpayable",
  47.       "type": "function"
  48.     }
  49.   ],
  50.   "metadata": "{\"compiler\":{\"version\":\"0.5.17+commit.d19bba13\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_buyer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_bucketId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_referrer\",\"type\":\"address\"}],\"name\":\"agreeToTermsAndConditionsListedInThisContractAndEnterSale\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"tokenSoldFor\",\"outputs\":[{\"internalType\":\"contract ERC20\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/mark/git/Foundry/smart-contracts/bucket-sale/contracts/EntryBot.sol\":\"BucketSale\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/mark/git/Foundry/smart-contracts/bucket-sale/contracts/EntryBot.sol\":{\"keccak256\":\"0xce281a092cd045211cd7ba4d838074c34a83b97617770d5572407bd0c970e389\",\"urls\":[\"bzz-raw://0e9dcc0c574c5ffdd2f22058ac9af50b6190b8f21565d88e0044a56a64cb9742\",\"dweb:/ipfs/QmdQkggS58wmeZvzbmLwaWZzJ4hgYMchqDhSkVYVYBcPax\"]}},\"version\":1}",
  51.   "bytecode": "0x",
  52.   "deployedBytecode": "0x",
  53.   "sourceMap": "",
  54.   "deployedSourceMap": "",
  55.   "source": "pragma solidity ^0.5.17;\n\ncontract ERC20\n{\n    function approve(address _spender, uint _amount)\n        public\n        returns (bool);\n    function transferFrom(address _sender, address _receiver, uint _amount)\n        public\n        returns (bool);\n}\n\ncontract BucketSale\n{\n    function tokenSoldFor()\n        public\n        returns (ERC20);\n\n    function agreeToTermsAndConditionsListedInThisContractAndEnterSale(\n        address _buyer,\n        uint _bucketId,\n        uint _amount,\n        address _referrer)\n    public;\n}\n\ninterface KyberNetworkInterface\n{\n    function swapTokenToToken(\n            ERC20 src,\n            uint srcAmount,\n            ERC20 dest,\n            uint minConversionRate)\n        external\n        returns(uint);\n    function swapEtherToToken(ERC20 token, uint minConversionRate)\n        external\n        payable\n        returns(uint);\n    function getExpectedRate(ERC20 src, ERC20 dest, uint _srcQty)\n        external\n        view\n        returns (uint expectedRate, uint slippageRate);\n}\n\ncontract KyberTrader\n{\n    address public constant ETH_TOKEN_ADDRESS = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;\n    KyberNetworkInterface public kyberNetworkProxy;\n    ERC20 public mcdDai;\n\n    function swapEtherToToken()\n        public\n        payable\n        returns (uint _receivedAmount)\n    {\n        (, uint minRate) = kyberNetworkProxy.getExpectedRate(ERC20(ETH_TOKEN_ADDRESS), mcdDai, msg.value);\n        uint result = kyberNetworkProxy.swapEtherToToken.value(msg.value)(mcdDai, minRate);\n        return result;\n    }\n\n    function swapTokenToToken(\n            ERC20 _srcToken,\n            uint _srcQty)\n        public\n        returns (uint _receivedAmount)\n    {\n        // getExpectedRate returns expected rate and slippage rate\n        // We use the slippage rate as the minRate\n        (, uint minRate) = kyberNetworkProxy.getExpectedRate(_srcToken, mcdDai, _srcQty);\n\n        // Check that the token transferFrom has succeeded\n        require(_srcToken.transferFrom(msg.sender, address(this), _srcQty), \"Transfer of incoming ERC20 failed\");\n\n        // Mitigate ERC20 Approve front-running attack, by initially setting\n        // allowance to 0\n        require(_srcToken.approve(address(kyberNetworkProxy), 0), \"Could not reset incoming ERC20 allowance\");\n\n        // Approve tokens so network can take them during the swap\n        _srcToken.approve(address(kyberNetworkProxy), _srcQty);\n\n        // Perform the swap\n        uint result = kyberNetworkProxy.swapTokenToToken(_srcToken, _srcQty, mcdDai, minRate);\n        return result;\n    }\n}\n\ncontract EntryBot is KyberTrader\n{\n    BucketSale bucketSale;\n\n    constructor(BucketSale _bucketSale, KyberNetworkInterface _kyberNetworkProxy)\n        public\n    {\n        bucketSale = _bucketSale;\n        mcdDai = bucketSale.tokenSoldFor();\n        kyberNetworkProxy = _kyberNetworkProxy;\n        bucketSale.tokenSoldFor().approve(address(bucketSale), uint(-1));\n    }\n\n    function agreeToTermsAndConditionsListedInThisBucketSaleContractAndEnterSaleWithEther(\n            address _buyer,\n            uint _bucketId,\n            uint _numberOfBuckets,\n            address _referrer)\n        public\n        payable\n    {\n        uint receivedDai = swapEtherToToken();\n        _enterSale(\n            _buyer,\n            _bucketId,\n            receivedDai,\n            _numberOfBuckets,\n            _referrer);\n    }\n\n    function agreeToTermsAndConditionsListedInThisBucketSaleContractAndEnterSaleWithErc20(\n            address _buyer,\n            uint _bucketId,\n            ERC20 _Erc20,\n            uint _totalBuyAmount,\n            uint _numberOfBuckets,\n            address _referrer)\n        public\n    {\n        uint receivedDai = swapTokenToToken(_Erc20, _totalBuyAmount);\n        _enterSale(\n            _buyer,\n            _bucketId,\n            receivedDai,\n            _numberOfBuckets,\n            _referrer);\n    }\n\n    function agreeToTermsAndConditionsListedInThisBucketSaleContractAndEnterSaleWithDai(\n            address _buyer,\n            uint _bucketId,\n            uint _totalBuyAmount,\n            uint _numberOfBuckets,\n            address _referrer)\n        public\n    {\n        bucketSale.tokenSoldFor().transferFrom(msg.sender, address(this), _totalBuyAmount);\n        _enterSale(_buyer, _bucketId, _totalBuyAmount, _numberOfBuckets, _referrer);\n    }\n\n    function _enterSale(\n            address _buyer,\n            uint _bucketId,\n            uint _totalBuyAmount,\n            uint _numberOfBuckets,\n            address _referrer)\n        private\n    {\n        uint amountPerBucket = _totalBuyAmount / _numberOfBuckets;\n\n        for(uint i = 0; i < _numberOfBuckets; i++)\n        {\n            bucketSale.agreeToTermsAndConditionsListedInThisContractAndEnterSale(\n                _buyer,\n                _bucketId + i,\n                amountPerBucket,\n                _referrer\n            );\n        }\n    }\n}\n\ncontract EntryBotMainNet is EntryBot\n{\n    constructor()\n    EntryBot(BucketSale(0x30076fF7436aE82207b9c03AbdF7CB056310A95A), KyberNetworkInterface(0x818E6FECD516Ecc3849DAf6845e3EC868087B755))\n        public\n    {}\n}",
  56.   "sourcePath": "/home/mark/git/Foundry/smart-contracts/bucket-sale/contracts/EntryBot.sol",
  57.   "ast": {
  58.     "absolutePath": "/home/mark/git/Foundry/smart-contracts/bucket-sale/contracts/EntryBot.sol",
  59.     "exportedSymbols": {
  60.       "BucketSale": [
  61.         807
  62.       ],
  63.       "ERC20": [
  64.         790
  65.       ],
  66.       "EntryBot": [
  67.         1122
  68.       ],
  69.       "EntryBotMainNet": [
  70.         1137
  71.       ],
  72.       "KyberNetworkInterface": [
  73.         843
  74.       ],
  75.       "KyberTrader": [
  76.         947
  77.       ]
  78.     },
  79.     "id": 1138,
  80.     "nodeType": "SourceUnit",
  81.     "nodes": [
  82.       {
  83.         "id": 769,
  84.         "literals": [
  85.           "solidity",
  86.           "^",
  87.           "0.5",
  88.           ".17"
  89.         ],
  90.         "nodeType": "PragmaDirective",
  91.         "src": "0:24:3"
  92.       },
  93.       {
  94.         "baseContracts": [],
  95.         "contractDependencies": [],
  96.         "contractKind": "contract",
  97.         "documentation": null,
  98.         "fullyImplemented": false,
  99.         "id": 790,
  100.         "linearizedBaseContracts": [
  101.           790
  102.         ],
  103.         "name": "ERC20",
  104.         "nodeType": "ContractDefinition",
  105.         "nodes": [
  106.           {
  107.             "body": null,
  108.             "documentation": null,
  109.             "id": 778,
  110.             "implemented": false,
  111.             "kind": "function",
  112.             "modifiers": [],
  113.             "name": "approve",
  114.             "nodeType": "FunctionDefinition",
  115.             "parameters": {
  116.               "id": 774,
  117.               "nodeType": "ParameterList",
  118.               "parameters": [
  119.                 {
  120.                   "constant": false,
  121.                   "id": 771,
  122.                   "name": "_spender",
  123.                   "nodeType": "VariableDeclaration",
  124.                   "scope": 778,
  125.                   "src": "64:16:3",
  126.                   "stateVariable": false,
  127.                   "storageLocation": "default",
  128.                   "typeDescriptions": {
  129.                     "typeIdentifier": "t_address",
  130.                     "typeString": "address"
  131.                   },
  132.                   "typeName": {
  133.                     "id": 770,
  134.                     "name": "address",
  135.                     "nodeType": "ElementaryTypeName",
  136.                     "src": "64:7:3",
  137.                     "stateMutability": "nonpayable",
  138.                     "typeDescriptions": {
  139.                       "typeIdentifier": "t_address",
  140.                       "typeString": "address"
  141.                     }
  142.                   },
  143.                   "value": null,
  144.                   "visibility": "internal"
  145.                 },
  146.                 {
  147.                   "constant": false,
  148.                   "id": 773,
  149.                   "name": "_amount",
  150.                   "nodeType": "VariableDeclaration",
  151.                   "scope": 778,
  152.                   "src": "82:12:3",
  153.                   "stateVariable": false,
  154.                   "storageLocation": "default",
  155.                   "typeDescriptions": {
  156.                     "typeIdentifier": "t_uint256",
  157.                     "typeString": "uint256"
  158.                   },
  159.                   "typeName": {
  160.                     "id": 772,
  161.                     "name": "uint",
  162.                     "nodeType": "ElementaryTypeName",
  163.                     "src": "82:4:3",
  164.                     "typeDescriptions": {
  165.                       "typeIdentifier": "t_uint256",
  166.                       "typeString": "uint256"
  167.                     }
  168.                   },
  169.                   "value": null,
  170.                   "visibility": "internal"
  171.                 }
  172.               ],
  173.               "src": "63:32:3"
  174.             },
  175.             "returnParameters": {
  176.               "id": 777,
  177.               "nodeType": "ParameterList",
  178.               "parameters": [
  179.                 {
  180.                   "constant": false,
  181.                   "id": 776,
  182.                   "name": "",
  183.                   "nodeType": "VariableDeclaration",
  184.                   "scope": 778,
  185.                   "src": "128:4:3",
  186.                   "stateVariable": false,
  187.                   "storageLocation": "default",
  188.                   "typeDescriptions": {
  189.                     "typeIdentifier": "t_bool",
  190.                     "typeString": "bool"
  191.                   },
  192.                   "typeName": {
  193.                     "id": 775,
  194.                     "name": "bool",
  195.                     "nodeType": "ElementaryTypeName",
  196.                     "src": "128:4:3",
  197.                     "typeDescriptions": {
  198.                       "typeIdentifier": "t_bool",
  199.                       "typeString": "bool"
  200.                     }
  201.                   },
  202.                   "value": null,
  203.                   "visibility": "internal"
  204.                 }
  205.               ],
  206.               "src": "127:6:3"
  207.             },
  208.             "scope": 790,
  209.             "src": "47:87:3",
  210.             "stateMutability": "nonpayable",
  211.             "superFunction": null,
  212.             "visibility": "public"
  213.           },
  214.           {
  215.             "body": null,
  216.             "documentation": null,
  217.             "id": 789,
  218.             "implemented": false,
  219.             "kind": "function",
  220.             "modifiers": [],
  221.             "name": "transferFrom",
  222.             "nodeType": "FunctionDefinition",
  223.             "parameters": {
  224.               "id": 785,
  225.               "nodeType": "ParameterList",
  226.               "parameters": [
  227.                 {
  228.                   "constant": false,
  229.                   "id": 780,
  230.                   "name": "_sender",
  231.                   "nodeType": "VariableDeclaration",
  232.                   "scope": 789,
  233.                   "src": "161:15:3",
  234.                   "stateVariable": false,
  235.                   "storageLocation": "default",
  236.                   "typeDescriptions": {
  237.                     "typeIdentifier": "t_address",
  238.                     "typeString": "address"
  239.                   },
  240.                   "typeName": {
  241.                     "id": 779,
  242.                     "name": "address",
  243.                     "nodeType": "ElementaryTypeName",
  244.                     "src": "161:7:3",
  245.                     "stateMutability": "nonpayable",
  246.                     "typeDescriptions": {
  247.                       "typeIdentifier": "t_address",
  248.                       "typeString": "address"
  249.                     }
  250.                   },
  251.                   "value": null,
  252.                   "visibility": "internal"
  253.                 },
  254.                 {
  255.                   "constant": false,
  256.                   "id": 782,
  257.                   "name": "_receiver",
  258.                   "nodeType": "VariableDeclaration",
  259.                   "scope": 789,
  260.                   "src": "178:17:3",
  261.                   "stateVariable": false,
  262.                   "storageLocation": "default",
  263.                   "typeDescriptions": {
  264.                     "typeIdentifier": "t_address",
  265.                     "typeString": "address"
  266.                   },
  267.                   "typeName": {
  268.                     "id": 781,
  269.                     "name": "address",
  270.                     "nodeType": "ElementaryTypeName",
  271.                     "src": "178:7:3",
  272.                     "stateMutability": "nonpayable",
  273.                     "typeDescriptions": {
  274.                       "typeIdentifier": "t_address",
  275.                       "typeString": "address"
  276.                     }
  277.                   },
  278.                   "value": null,
  279.                   "visibility": "internal"
  280.                 },
  281.                 {
  282.                   "constant": false,
  283.                   "id": 784,
  284.                   "name": "_amount",
  285.                   "nodeType": "VariableDeclaration",
  286.                   "scope": 789,
  287.                   "src": "197:12:3",
  288.                   "stateVariable": false,
  289.                   "storageLocation": "default",
  290.                   "typeDescriptions": {
  291.                     "typeIdentifier": "t_uint256",
  292.                     "typeString": "uint256"
  293.                   },
  294.                   "typeName": {
  295.                     "id": 783,
  296.                     "name": "uint",
  297.                     "nodeType": "ElementaryTypeName",
  298.                     "src": "197:4:3",
  299.                     "typeDescriptions": {
  300.                       "typeIdentifier": "t_uint256",
  301.                       "typeString": "uint256"
  302.                     }
  303.                   },
  304.                   "value": null,
  305.                   "visibility": "internal"
  306.                 }
  307.               ],
  308.               "src": "160:50:3"
  309.             },
  310.             "returnParameters": {
  311.               "id": 788,
  312.               "nodeType": "ParameterList",
  313.               "parameters": [
  314.                 {
  315.                   "constant": false,
  316.                   "id": 787,
  317.                   "name": "",
  318.                   "nodeType": "VariableDeclaration",
  319.                   "scope": 789,
  320.                   "src": "243:4:3",
  321.                   "stateVariable": false,
  322.                   "storageLocation": "default",
  323.                   "typeDescriptions": {
  324.                     "typeIdentifier": "t_bool",
  325.                     "typeString": "bool"
  326.                   },
  327.                   "typeName": {
  328.                     "id": 786,
  329.                     "name": "bool",
  330.                     "nodeType": "ElementaryTypeName",
  331.                     "src": "243:4:3",
  332.                     "typeDescriptions": {
  333.                       "typeIdentifier": "t_bool",
  334.                       "typeString": "bool"
  335.                     }
  336.                   },
  337.                   "value": null,
  338.                   "visibility": "internal"
  339.                 }
  340.               ],
  341.               "src": "242:6:3"
  342.             },
  343.             "scope": 790,
  344.             "src": "139:110:3",
  345.             "stateMutability": "nonpayable",
  346.             "superFunction": null,
  347.             "visibility": "public"
  348.           }
  349.         ],
  350.         "scope": 1138,
  351.         "src": "26:225:3"
  352.       },
  353.       {
  354.         "baseContracts": [],
  355.         "contractDependencies": [],
  356.         "contractKind": "contract",
  357.         "documentation": null,
  358.         "fullyImplemented": false,
  359.         "id": 807,
  360.         "linearizedBaseContracts": [
  361.           807
  362.         ],
  363.         "name": "BucketSale",
  364.         "nodeType": "ContractDefinition",
  365.         "nodes": [
  366.           {
  367.             "body": null,
  368.             "documentation": null,
  369.             "id": 795,
  370.             "implemented": false,
  371.             "kind": "function",
  372.             "modifiers": [],
  373.             "name": "tokenSoldFor",
  374.             "nodeType": "FunctionDefinition",
  375.             "parameters": {
  376.               "id": 791,
  377.               "nodeType": "ParameterList",
  378.               "parameters": [],
  379.               "src": "300:2:3"
  380.             },
  381.             "returnParameters": {
  382.               "id": 794,
  383.               "nodeType": "ParameterList",
  384.               "parameters": [
  385.                 {
  386.                   "constant": false,
  387.                   "id": 793,
  388.                   "name": "",
  389.                   "nodeType": "VariableDeclaration",
  390.                   "scope": 795,
  391.                   "src": "335:5:3",
  392.                   "stateVariable": false,
  393.                   "storageLocation": "default",
  394.                   "typeDescriptions": {
  395.                     "typeIdentifier": "t_contract$_ERC20_$790",
  396.                     "typeString": "contract ERC20"
  397.                   },
  398.                   "typeName": {
  399.                     "contractScope": null,
  400.                     "id": 792,
  401.                     "name": "ERC20",
  402.                     "nodeType": "UserDefinedTypeName",
  403.                     "referencedDeclaration": 790,
  404.                     "src": "335:5:3",
  405.                     "typeDescriptions": {
  406.                       "typeIdentifier": "t_contract$_ERC20_$790",
  407.                       "typeString": "contract ERC20"
  408.                     }
  409.                   },
  410.                   "value": null,
  411.                   "visibility": "internal"
  412.                 }
  413.               ],
  414.               "src": "334:7:3"
  415.             },
  416.             "scope": 807,
  417.             "src": "279:63:3",
  418.             "stateMutability": "nonpayable",
  419.             "superFunction": null,
  420.             "visibility": "public"
  421.           },
  422.           {
  423.             "body": null,
  424.             "documentation": null,
  425.             "id": 806,
  426.             "implemented": false,
  427.             "kind": "function",
  428.             "modifiers": [],
  429.             "name": "agreeToTermsAndConditionsListedInThisContractAndEnterSale",
  430.             "nodeType": "FunctionDefinition",
  431.             "parameters": {
  432.               "id": 804,
  433.               "nodeType": "ParameterList",
  434.               "parameters": [
  435.                 {
  436.                   "constant": false,
  437.                   "id": 797,
  438.                   "name": "_buyer",
  439.                   "nodeType": "VariableDeclaration",
  440.                   "scope": 806,
  441.                   "src": "424:14:3",
  442.                   "stateVariable": false,
  443.                   "storageLocation": "default",
  444.                   "typeDescriptions": {
  445.                     "typeIdentifier": "t_address",
  446.                     "typeString": "address"
  447.                   },
  448.                   "typeName": {
  449.                     "id": 796,
  450.                     "name": "address",
  451.                     "nodeType": "ElementaryTypeName",
  452.                     "src": "424:7:3",
  453.                     "stateMutability": "nonpayable",
  454.                     "typeDescriptions": {
  455.                       "typeIdentifier": "t_address",
  456.                       "typeString": "address"
  457.                     }
  458.                   },
  459.                   "value": null,
  460.                   "visibility": "internal"
  461.                 },
  462.                 {
  463.                   "constant": false,
  464.                   "id": 799,
  465.                   "name": "_bucketId",
  466.                   "nodeType": "VariableDeclaration",
  467.                   "scope": 806,
  468.                   "src": "448:14:3",
  469.                   "stateVariable": false,
  470.                   "storageLocation": "default",
  471.                   "typeDescriptions": {
  472.                     "typeIdentifier": "t_uint256",
  473.                     "typeString": "uint256"
  474.                   },
  475.                   "typeName": {
  476.                     "id": 798,
  477.                     "name": "uint",
  478.                     "nodeType": "ElementaryTypeName",
  479.                     "src": "448:4:3",
  480.                     "typeDescriptions": {
  481.                       "typeIdentifier": "t_uint256",
  482.                       "typeString": "uint256"
  483.                     }
  484.                   },
  485.                   "value": null,
  486.                   "visibility": "internal"
  487.                 },
  488.                 {
  489.                   "constant": false,
  490.                   "id": 801,
  491.                   "name": "_amount",
  492.                   "nodeType": "VariableDeclaration",
  493.                   "scope": 806,
  494.                   "src": "472:12:3",
  495.                   "stateVariable": false,
  496.                   "storageLocation": "default",
  497.                   "typeDescriptions": {
  498.                     "typeIdentifier": "t_uint256",
  499.                     "typeString": "uint256"
  500.                   },
  501.                   "typeName": {
  502.                     "id": 800,
  503.                     "name": "uint",
  504.                     "nodeType": "ElementaryTypeName",
  505.                     "src": "472:4:3",
  506.                     "typeDescriptions": {
  507.                       "typeIdentifier": "t_uint256",
  508.                       "typeString": "uint256"
  509.                     }
  510.                   },
  511.                   "value": null,
  512.                   "visibility": "internal"
  513.                 },
  514.                 {
  515.                   "constant": false,
  516.                   "id": 803,
  517.                   "name": "_referrer",
  518.                   "nodeType": "VariableDeclaration",
  519.                   "scope": 806,
  520.                   "src": "494:17:3",
  521.                   "stateVariable": false,
  522.                   "storageLocation": "default",
  523.                   "typeDescriptions": {
  524.                     "typeIdentifier": "t_address",
  525.                     "typeString": "address"
  526.                   },
  527.                   "typeName": {
  528.                     "id": 802,
  529.                     "name": "address",
  530.                     "nodeType": "ElementaryTypeName",
  531.                     "src": "494:7:3",
  532.                     "stateMutability": "nonpayable",
  533.                     "typeDescriptions": {
  534.                       "typeIdentifier": "t_address",
  535.                       "typeString": "address"
  536.                     }
  537.                   },
  538.                   "value": null,
  539.                   "visibility": "internal"
  540.                 }
  541.               ],
  542.               "src": "414:98:3"
  543.             },
  544.             "returnParameters": {
  545.               "id": 805,
  546.               "nodeType": "ParameterList",
  547.               "parameters": [],
  548.               "src": "523:0:3"
  549.             },
  550.             "scope": 807,
  551.             "src": "348:176:3",
  552.             "stateMutability": "nonpayable",
  553.             "superFunction": null,
  554.             "visibility": "public"
  555.           }
  556.         ],
  557.         "scope": 1138,
  558.         "src": "253:273:3"
  559.       },
  560.       {
  561.         "baseContracts": [],
  562.         "contractDependencies": [],
  563.         "contractKind": "interface",
  564.         "documentation": null,
  565.         "fullyImplemented": false,
  566.         "id": 843,
  567.         "linearizedBaseContracts": [
  568.           843
  569.         ],
  570.         "name": "KyberNetworkInterface",
  571.         "nodeType": "ContractDefinition",
  572.         "nodes": [
  573.           {
  574.             "body": null,
  575.             "documentation": null,
  576.             "id": 820,
  577.             "implemented": false,
  578.             "kind": "function",
  579.             "modifiers": [],
  580.             "name": "swapTokenToToken",
  581.             "nodeType": "FunctionDefinition",
  582.             "parameters": {
  583.               "id": 816,
  584.               "nodeType": "ParameterList",
  585.               "parameters": [
  586.                 {
  587.                   "constant": false,
  588.                   "id": 809,
  589.                   "name": "src",
  590.                   "nodeType": "VariableDeclaration",
  591.                   "scope": 820,
  592.                   "src": "605:9:3",
  593.                   "stateVariable": false,
  594.                   "storageLocation": "default",
  595.                   "typeDescriptions": {
  596.                     "typeIdentifier": "t_contract$_ERC20_$790",
  597.                     "typeString": "contract ERC20"
  598.                   },
  599.                   "typeName": {
  600.                     "contractScope": null,
  601.                     "id": 808,
  602.                     "name": "ERC20",
  603.                     "nodeType": "UserDefinedTypeName",
  604.                     "referencedDeclaration": 790,
  605.                     "src": "605:5:3",
  606.                     "typeDescriptions": {
  607.                       "typeIdentifier": "t_contract$_ERC20_$790",
  608.                       "typeString": "contract ERC20"
  609.                     }
  610.                   },
  611.                   "value": null,
  612.                   "visibility": "internal"
  613.                 },
  614.                 {
  615.                   "constant": false,
  616.                   "id": 811,
  617.                   "name": "srcAmount",
  618.                   "nodeType": "VariableDeclaration",
  619.                   "scope": 820,
  620.                   "src": "628:14:3",
  621.                   "stateVariable": false,
  622.                   "storageLocation": "default",
  623.                   "typeDescriptions": {
  624.                     "typeIdentifier": "t_uint256",
  625.                     "typeString": "uint256"
  626.                   },
  627.                   "typeName": {
  628.                     "id": 810,
  629.                     "name": "uint",
  630.                     "nodeType": "ElementaryTypeName",
  631.                     "src": "628:4:3",
  632.                     "typeDescriptions": {
  633.                       "typeIdentifier": "t_uint256",
  634.                       "typeString": "uint256"
  635.                     }
  636.                   },
  637.                   "value": null,
  638.                   "visibility": "internal"
  639.                 },
  640.                 {
  641.                   "constant": false,
  642.                   "id": 813,
  643.                   "name": "dest",
  644.                   "nodeType": "VariableDeclaration",
  645.                   "scope": 820,
  646.                   "src": "656:10:3",
  647.                   "stateVariable": false,
  648.                   "storageLocation": "default",
  649.                   "typeDescriptions": {
  650.                     "typeIdentifier": "t_contract$_ERC20_$790",
  651.                     "typeString": "contract ERC20"
  652.                   },
  653.                   "typeName": {
  654.                     "contractScope": null,
  655.                     "id": 812,
  656.                     "name": "ERC20",
  657.                     "nodeType": "UserDefinedTypeName",
  658.                     "referencedDeclaration": 790,
  659.                     "src": "656:5:3",
  660.                     "typeDescriptions": {
  661.                       "typeIdentifier": "t_contract$_ERC20_$790",
  662.                       "typeString": "contract ERC20"
  663.                     }
  664.                   },
  665.                   "value": null,
  666.                   "visibility": "internal"
  667.                 },
  668.                 {
  669.                   "constant": false,
  670.                   "id": 815,
  671.                   "name": "minConversionRate",
  672.                   "nodeType": "VariableDeclaration",
  673.                   "scope": 820,
  674.                   "src": "680:22:3",
  675.                   "stateVariable": false,
  676.                   "storageLocation": "default",
  677.                   "typeDescriptions": {
  678.                     "typeIdentifier": "t_uint256",
  679.                     "typeString": "uint256"
  680.                   },
  681.                   "typeName": {
  682.                     "id": 814,
  683.                     "name": "uint",
  684.                     "nodeType": "ElementaryTypeName",
  685.                     "src": "680:4:3",
  686.                     "typeDescriptions": {
  687.                       "typeIdentifier": "t_uint256",
  688.                       "typeString": "uint256"
  689.                     }
  690.                   },
  691.                   "value": null,
  692.                   "visibility": "internal"
  693.                 }
  694.               ],
  695.               "src": "591:112:3"
  696.             },
  697.             "returnParameters": {
  698.               "id": 819,
  699.               "nodeType": "ParameterList",
  700.               "parameters": [
  701.                 {
  702.                   "constant": false,
  703.                   "id": 818,
  704.                   "name": "",
  705.                   "nodeType": "VariableDeclaration",
  706.                   "scope": 820,
  707.                   "src": "737:4:3",
  708.                   "stateVariable": false,
  709.                   "storageLocation": "default",
  710.                   "typeDescriptions": {
  711.                     "typeIdentifier": "t_uint256",
  712.                     "typeString": "uint256"
  713.                   },
  714.                   "typeName": {
  715.                     "id": 817,
  716.                     "name": "uint",
  717.                     "nodeType": "ElementaryTypeName",
  718.                     "src": "737:4:3",
  719.                     "typeDescriptions": {
  720.                       "typeIdentifier": "t_uint256",
  721.                       "typeString": "uint256"
  722.                     }
  723.                   },
  724.                   "value": null,
  725.                   "visibility": "internal"
  726.                 }
  727.               ],
  728.               "src": "736:6:3"
  729.             },
  730.             "scope": 843,
  731.             "src": "566:177:3",
  732.             "stateMutability": "nonpayable",
  733.             "superFunction": null,
  734.             "visibility": "external"
  735.           },
  736.           {
  737.             "body": null,
  738.             "documentation": null,
  739.             "id": 829,
  740.             "implemented": false,
  741.             "kind": "function",
  742.             "modifiers": [],
  743.             "name": "swapEtherToToken",
  744.             "nodeType": "FunctionDefinition",
  745.             "parameters": {
  746.               "id": 825,
  747.               "nodeType": "ParameterList",
  748.               "parameters": [
  749.                 {
  750.                   "constant": false,
  751.                   "id": 822,
  752.                   "name": "token",
  753.                   "nodeType": "VariableDeclaration",
  754.                   "scope": 829,
  755.                   "src": "774:11:3",
  756.                   "stateVariable": false,
  757.                   "storageLocation": "default",
  758.                   "typeDescriptions": {
  759.                     "typeIdentifier": "t_contract$_ERC20_$790",
  760.                     "typeString": "contract ERC20"
  761.                   },
  762.                   "typeName": {
  763.                     "contractScope": null,
  764.                     "id": 821,
  765.                     "name": "ERC20",
  766.                     "nodeType": "UserDefinedTypeName",
  767.                     "referencedDeclaration": 790,
  768.                     "src": "774:5:3",
  769.                     "typeDescriptions": {
  770.                       "typeIdentifier": "t_contract$_ERC20_$790",
  771.                       "typeString": "contract ERC20"
  772.                     }
  773.                   },
  774.                   "value": null,
  775.                   "visibility": "internal"
  776.                 },
  777.                 {
  778.                   "constant": false,
  779.                   "id": 824,
  780.                   "name": "minConversionRate",
  781.                   "nodeType": "VariableDeclaration",
  782.                   "scope": 829,
  783.                   "src": "787:22:3",
  784.                   "stateVariable": false,
  785.                   "storageLocation": "default",
  786.                   "typeDescriptions": {
  787.                     "typeIdentifier": "t_uint256",
  788.                     "typeString": "uint256"
  789.                   },
  790.                   "typeName": {
  791.                     "id": 823,
  792.                     "name": "uint",
  793.                     "nodeType": "ElementaryTypeName",
  794.                     "src": "787:4:3",
  795.                     "typeDescriptions": {
  796.                       "typeIdentifier": "t_uint256",
  797.                       "typeString": "uint256"
  798.                     }
  799.                   },
  800.                   "value": null,
  801.                   "visibility": "internal"
  802.                 }
  803.               ],
  804.               "src": "773:37:3"
  805.             },
  806.             "returnParameters": {
  807.               "id": 828,
  808.               "nodeType": "ParameterList",
  809.               "parameters": [
  810.                 {
  811.                   "constant": false,
  812.                   "id": 827,
  813.                   "name": "",
  814.                   "nodeType": "VariableDeclaration",
  815.                   "scope": 829,
  816.                   "src": "860:4:3",
  817.                   "stateVariable": false,
  818.                   "storageLocation": "default",
  819.                   "typeDescriptions": {
  820.                     "typeIdentifier": "t_uint256",
  821.                     "typeString": "uint256"
  822.                   },
  823.                   "typeName": {
  824.                     "id": 826,
  825.                     "name": "uint",
  826.                     "nodeType": "ElementaryTypeName",
  827.                     "src": "860:4:3",
  828.                     "typeDescriptions": {
  829.                       "typeIdentifier": "t_uint256",
  830.                       "typeString": "uint256"
  831.                     }
  832.                   },
  833.                   "value": null,
  834.                   "visibility": "internal"
  835.                 }
  836.               ],
  837.               "src": "859:6:3"
  838.             },
  839.             "scope": 843,
  840.             "src": "748:118:3",
  841.             "stateMutability": "payable",
  842.             "superFunction": null,
  843.             "visibility": "external"
  844.           },
  845.           {
  846.             "body": null,
  847.             "documentation": null,
  848.             "id": 842,
  849.             "implemented": false,
  850.             "kind": "function",
  851.             "modifiers": [],
  852.             "name": "getExpectedRate",
  853.             "nodeType": "FunctionDefinition",
  854.             "parameters": {
  855.               "id": 836,
  856.               "nodeType": "ParameterList",
  857.               "parameters": [
  858.                 {
  859.                   "constant": false,
  860.                   "id": 831,
  861.                   "name": "src",
  862.                   "nodeType": "VariableDeclaration",
  863.                   "scope": 842,
  864.                   "src": "896:9:3",
  865.                   "stateVariable": false,
  866.                   "storageLocation": "default",
  867.                   "typeDescriptions": {
  868.                     "typeIdentifier": "t_contract$_ERC20_$790",
  869.                     "typeString": "contract ERC20"
  870.                   },
  871.                   "typeName": {
  872.                     "contractScope": null,
  873.                     "id": 830,
  874.                     "name": "ERC20",
  875.                     "nodeType": "UserDefinedTypeName",
  876.                     "referencedDeclaration": 790,
  877.                     "src": "896:5:3",
  878.                     "typeDescriptions": {
  879.                       "typeIdentifier": "t_contract$_ERC20_$790",
  880.                       "typeString": "contract ERC20"
  881.                     }
  882.                   },
  883.                   "value": null,
  884.                   "visibility": "internal"
  885.                 },
  886.                 {
  887.                   "constant": false,
  888.                   "id": 833,
  889.                   "name": "dest",
  890.                   "nodeType": "VariableDeclaration",
  891.                   "scope": 842,
  892.                   "src": "907:10:3",
  893.                   "stateVariable": false,
  894.                   "storageLocation": "default",
  895.                   "typeDescriptions": {
  896.                     "typeIdentifier": "t_contract$_ERC20_$790",
  897.                     "typeString": "contract ERC20"
  898.                   },
  899.                   "typeName": {
  900.                     "contractScope": null,
  901.                     "id": 832,
  902.                     "name": "ERC20",
  903.                     "nodeType": "UserDefinedTypeName",
  904.                     "referencedDeclaration": 790,
  905.                     "src": "907:5:3",
  906.                     "typeDescriptions": {
  907.                       "typeIdentifier": "t_contract$_ERC20_$790",
  908.                       "typeString": "contract ERC20"
  909.                     }
  910.                   },
  911.                   "value": null,
  912.                   "visibility": "internal"
  913.                 },
  914.                 {
  915.                   "constant": false,
  916.                   "id": 835,
  917.                   "name": "_srcQty",
  918.                   "nodeType": "VariableDeclaration",
  919.                   "scope": 842,
  920.                   "src": "919:12:3",
  921.                   "stateVariable": false,
  922.                   "storageLocation": "default",
  923.                   "typeDescriptions": {
  924.                     "typeIdentifier": "t_uint256",
  925.                     "typeString": "uint256"
  926.                   },
  927.                   "typeName": {
  928.                     "id": 834,
  929.                     "name": "uint",
  930.                     "nodeType": "ElementaryTypeName",
  931.                     "src": "919:4:3",
  932.                     "typeDescriptions": {
  933.                       "typeIdentifier": "t_uint256",
  934.                       "typeString": "uint256"
  935.                     }
  936.                   },
  937.                   "value": null,
  938.                   "visibility": "internal"
  939.                 }
  940.               ],
  941.               "src": "895:37:3"
  942.             },
  943.             "returnParameters": {
  944.               "id": 841,
  945.               "nodeType": "ParameterList",
  946.               "parameters": [
  947.                 {
  948.                   "constant": false,
  949.                   "id": 838,
  950.                   "name": "expectedRate",
  951.                   "nodeType": "VariableDeclaration",
  952.                   "scope": 842,
  953.                   "src": "980:17:3",
  954.                   "stateVariable": false,
  955.                   "storageLocation": "default",
  956.                   "typeDescriptions": {
  957.                     "typeIdentifier": "t_uint256",
  958.                     "typeString": "uint256"
  959.                   },
  960.                   "typeName": {
  961.                     "id": 837,
  962.                     "name": "uint",
  963.                     "nodeType": "ElementaryTypeName",
  964.                     "src": "980:4:3",
  965.                     "typeDescriptions": {
  966.                       "typeIdentifier": "t_uint256",
  967.                       "typeString": "uint256"
  968.                     }
  969.                   },
  970.                   "value": null,
  971.                   "visibility": "internal"
  972.                 },
  973.                 {
  974.                   "constant": false,
  975.                   "id": 840,
  976.                   "name": "slippageRate",
  977.                   "nodeType": "VariableDeclaration",
  978.                   "scope": 842,
  979.                   "src": "999:17:3",
  980.                   "stateVariable": false,
  981.                   "storageLocation": "default",
  982.                   "typeDescriptions": {
  983.                     "typeIdentifier": "t_uint256",
  984.                     "typeString": "uint256"
  985.                   },
  986.                   "typeName": {
  987.                     "id": 839,
  988.                     "name": "uint",
  989.                     "nodeType": "ElementaryTypeName",
  990.                     "src": "999:4:3",
  991.                     "typeDescriptions": {
  992.                       "typeIdentifier": "t_uint256",
  993.                       "typeString": "uint256"
  994.                     }
  995.                   },
  996.                   "value": null,
  997.                   "visibility": "internal"
  998.                 }
  999.               ],
  1000.               "src": "979:38:3"
  1001.             },
  1002.             "scope": 843,
  1003.             "src": "871:147:3",
  1004.             "stateMutability": "view",
  1005.             "superFunction": null,
  1006.             "visibility": "external"
  1007.           }
  1008.         ],
  1009.         "scope": 1138,
  1010.         "src": "528:492:3"
  1011.       },
  1012.       {
  1013.         "baseContracts": [],
  1014.         "contractDependencies": [],
  1015.         "contractKind": "contract",
  1016.         "documentation": null,
  1017.         "fullyImplemented": true,
  1018.         "id": 947,
  1019.         "linearizedBaseContracts": [
  1020.           947
  1021.         ],
  1022.         "name": "KyberTrader",
  1023.         "nodeType": "ContractDefinition",
  1024.         "nodes": [
  1025.           {
  1026.             "constant": true,
  1027.             "id": 846,
  1028.             "name": "ETH_TOKEN_ADDRESS",
  1029.             "nodeType": "VariableDeclaration",
  1030.             "scope": 947,
  1031.             "src": "1049:86:3",
  1032.             "stateVariable": true,
  1033.             "storageLocation": "default",
  1034.             "typeDescriptions": {
  1035.               "typeIdentifier": "t_address",
  1036.               "typeString": "address"
  1037.             },
  1038.             "typeName": {
  1039.               "id": 844,
  1040.               "name": "address",
  1041.               "nodeType": "ElementaryTypeName",
  1042.               "src": "1049:7:3",
  1043.               "stateMutability": "nonpayable",
  1044.               "typeDescriptions": {
  1045.                 "typeIdentifier": "t_address",
  1046.                 "typeString": "address"
  1047.               }
  1048.             },
  1049.             "value": {
  1050.               "argumentTypes": null,
  1051.               "hexValue": "307845656565654565656545654565654565456545656545454565656565456565656565656545456545",
  1052.               "id": 845,
  1053.               "isConstant": false,
  1054.               "isLValue": false,
  1055.               "isPure": true,
  1056.               "kind": "number",
  1057.               "lValueRequested": false,
  1058.               "nodeType": "Literal",
  1059.               "src": "1093:42:3",
  1060.               "subdenomination": null,
  1061.               "typeDescriptions": {
  1062.                 "typeIdentifier": "t_address_payable",
  1063.                 "typeString": "address payable"
  1064.               },
  1065.               "value": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"
  1066.             },
  1067.             "visibility": "public"
  1068.           },
  1069.           {
  1070.             "constant": false,
  1071.             "id": 848,
  1072.             "name": "kyberNetworkProxy",
  1073.             "nodeType": "VariableDeclaration",
  1074.             "scope": 947,
  1075.             "src": "1141:46:3",
  1076.             "stateVariable": true,
  1077.             "storageLocation": "default",
  1078.             "typeDescriptions": {
  1079.               "typeIdentifier": "t_contract$_KyberNetworkInterface_$843",
  1080.               "typeString": "contract KyberNetworkInterface"
  1081.             },
  1082.             "typeName": {
  1083.               "contractScope": null,
  1084.               "id": 847,
  1085.               "name": "KyberNetworkInterface",
  1086.               "nodeType": "UserDefinedTypeName",
  1087.               "referencedDeclaration": 843,
  1088.               "src": "1141:21:3",
  1089.               "typeDescriptions": {
  1090.                 "typeIdentifier": "t_contract$_KyberNetworkInterface_$843",
  1091.                 "typeString": "contract KyberNetworkInterface"
  1092.               }
  1093.             },
  1094.             "value": null,
  1095.             "visibility": "public"
  1096.           },
  1097.           {
  1098.             "constant": false,
  1099.             "id": 850,
  1100.             "name": "mcdDai",
  1101.             "nodeType": "VariableDeclaration",
  1102.             "scope": 947,
  1103.             "src": "1193:19:3",
  1104.             "stateVariable": true,
  1105.             "storageLocation": "default",
  1106.             "typeDescriptions": {
  1107.               "typeIdentifier": "t_contract$_ERC20_$790",
  1108.               "typeString": "contract ERC20"
  1109.             },
  1110.             "typeName": {
  1111.               "contractScope": null,
  1112.               "id": 849,
  1113.               "name": "ERC20",
  1114.               "nodeType": "UserDefinedTypeName",
  1115.               "referencedDeclaration": 790,
  1116.               "src": "1193:5:3",
  1117.               "typeDescriptions": {
  1118.                 "typeIdentifier": "t_contract$_ERC20_$790",
  1119.                 "typeString": "contract ERC20"
  1120.               }
  1121.             },
  1122.             "value": null,
  1123.             "visibility": "public"
  1124.           },
  1125.           {
  1126.             "body": {
  1127.               "id": 881,
  1128.               "nodeType": "Block",
  1129.               "src": "1321:229:3",
  1130.               "statements": [
  1131.                 {
  1132.                   "assignments": [
  1133.                     null,
  1134.                     856
  1135.                   ],
  1136.                   "declarations": [
  1137.                     null,
  1138.                     {
  1139.                       "constant": false,
  1140.                       "id": 856,
  1141.                       "name": "minRate",
  1142.                       "nodeType": "VariableDeclaration",
  1143.                       "scope": 881,
  1144.                       "src": "1334:12:3",
  1145.                       "stateVariable": false,
  1146.                       "storageLocation": "default",
  1147.                       "typeDescriptions": {
  1148.                         "typeIdentifier": "t_uint256",
  1149.                         "typeString": "uint256"
  1150.                       },
  1151.                       "typeName": {
  1152.                         "id": 855,
  1153.                         "name": "uint",
  1154.                         "nodeType": "ElementaryTypeName",
  1155.                         "src": "1334:4:3",
  1156.                         "typeDescriptions": {
  1157.                           "typeIdentifier": "t_uint256",
  1158.                           "typeString": "uint256"
  1159.                         }
  1160.                       },
  1161.                       "value": null,
  1162.                       "visibility": "internal"
  1163.                     }
  1164.                   ],
  1165.                   "id": 866,
  1166.                   "initialValue": {
  1167.                     "argumentTypes": null,
  1168.                     "arguments": [
  1169.                       {
  1170.                         "argumentTypes": null,
  1171.                         "arguments": [
  1172.                           {
  1173.                             "argumentTypes": null,
  1174.                             "id": 860,
  1175.                             "name": "ETH_TOKEN_ADDRESS",
  1176.                             "nodeType": "Identifier",
  1177.                             "overloadedDeclarations": [],
  1178.                             "referencedDeclaration": 846,
  1179.                             "src": "1390:17:3",
  1180.                             "typeDescriptions": {
  1181.                               "typeIdentifier": "t_address",
  1182.                               "typeString": "address"
  1183.                             }
  1184.                           }
  1185.                         ],
  1186.                         "expression": {
  1187.                           "argumentTypes": [
  1188.                             {
  1189.                               "typeIdentifier": "t_address",
  1190.                               "typeString": "address"
  1191.                             }
  1192.                           ],
  1193.                           "id": 859,
  1194.                           "name": "ERC20",
  1195.                           "nodeType": "Identifier",
  1196.                           "overloadedDeclarations": [],
  1197.                           "referencedDeclaration": 790,
  1198.                           "src": "1384:5:3",
  1199.                           "typeDescriptions": {
  1200.                             "typeIdentifier": "t_type$_t_contract$_ERC20_$790_$",
  1201.                             "typeString": "type(contract ERC20)"
  1202.                           }
  1203.                         },
  1204.                         "id": 861,
  1205.                         "isConstant": false,
  1206.                         "isLValue": false,
  1207.                         "isPure": true,
  1208.                         "kind": "typeConversion",
  1209.                         "lValueRequested": false,
  1210.                         "names": [],
  1211.                         "nodeType": "FunctionCall",
  1212.                         "src": "1384:24:3",
  1213.                         "typeDescriptions": {
  1214.                           "typeIdentifier": "t_contract$_ERC20_$790",
  1215.                           "typeString": "contract ERC20"
  1216.                         }
  1217.                       },
  1218.                       {
  1219.                         "argumentTypes": null,
  1220.                         "id": 862,
  1221.                         "name": "mcdDai",
  1222.                         "nodeType": "Identifier",
  1223.                         "overloadedDeclarations": [],
  1224.                         "referencedDeclaration": 850,
  1225.                         "src": "1410:6:3",
  1226.                         "typeDescriptions": {
  1227.                           "typeIdentifier": "t_contract$_ERC20_$790",
  1228.                           "typeString": "contract ERC20"
  1229.                         }
  1230.                       },
  1231.                       {
  1232.                         "argumentTypes": null,
  1233.                         "expression": {
  1234.                           "argumentTypes": null,
  1235.                           "id": 863,
  1236.                           "name": "msg",
  1237.                           "nodeType": "Identifier",
  1238.                           "overloadedDeclarations": [],
  1239.                           "referencedDeclaration": 2821,
  1240.                           "src": "1418:3:3",
  1241.                           "typeDescriptions": {
  1242.                             "typeIdentifier": "t_magic_message",
  1243.                             "typeString": "msg"
  1244.                           }
  1245.                         },
  1246.                         "id": 864,
  1247.                         "isConstant": false,
  1248.                         "isLValue": false,
  1249.                         "isPure": false,
  1250.                         "lValueRequested": false,
  1251.                         "memberName": "value",
  1252.                         "nodeType": "MemberAccess",
  1253.                         "referencedDeclaration": null,
  1254.                         "src": "1418:9:3",
  1255.                         "typeDescriptions": {
  1256.                           "typeIdentifier": "t_uint256",
  1257.                           "typeString": "uint256"
  1258.                         }
  1259.                       }
  1260.                     ],
  1261.                     "expression": {
  1262.                       "argumentTypes": [
  1263.                         {
  1264.                           "typeIdentifier": "t_contract$_ERC20_$790",
  1265.                           "typeString": "contract ERC20"
  1266.                         },
  1267.                         {
  1268.                           "typeIdentifier": "t_contract$_ERC20_$790",
  1269.                           "typeString": "contract ERC20"
  1270.                         },
  1271.                         {
  1272.                           "typeIdentifier": "t_uint256",
  1273.                           "typeString": "uint256"
  1274.                         }
  1275.                       ],
  1276.                       "expression": {
  1277.                         "argumentTypes": null,
  1278.                         "id": 857,
  1279.                         "name": "kyberNetworkProxy",
  1280.                         "nodeType": "Identifier",
  1281.                         "overloadedDeclarations": [],
  1282.                         "referencedDeclaration": 848,
  1283.                         "src": "1350:17:3",
  1284.                         "typeDescriptions": {
  1285.                           "typeIdentifier": "t_contract$_KyberNetworkInterface_$843",
  1286.                           "typeString": "contract KyberNetworkInterface"
  1287.                         }
  1288.                       },
  1289.                       "id": 858,
  1290.                       "isConstant": false,
  1291.                       "isLValue": false,
  1292.                       "isPure": false,
  1293.                       "lValueRequested": false,
  1294.                       "memberName": "getExpectedRate",
  1295.                       "nodeType": "MemberAccess",
  1296.                       "referencedDeclaration": 842,
  1297.                       "src": "1350:33:3",
  1298.                       "typeDescriptions": {
  1299.                         "typeIdentifier": "t_function_external_view$_t_contract$_ERC20_$790_$_t_contract$_ERC20_$790_$_t_uint256_$returns$_t_uint256_$_t_uint256_$",
  1300.                         "typeString": "function (contract ERC20,contract ERC20,uint256) view external returns (uint256,uint256)"
  1301.                       }
  1302.                     },
  1303.                     "id": 865,
  1304.                     "isConstant": false,
  1305.                     "isLValue": false,
  1306.                     "isPure": false,
  1307.                     "kind": "functionCall",
  1308.                     "lValueRequested": false,
  1309.                     "names": [],
  1310.                     "nodeType": "FunctionCall",
  1311.                     "src": "1350:78:3",
  1312.                     "typeDescriptions": {
  1313.                       "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
  1314.                       "typeString": "tuple(uint256,uint256)"
  1315.                     }
  1316.                   },
  1317.                   "nodeType": "VariableDeclarationStatement",
  1318.                   "src": "1331:97:3"
  1319.                 },
  1320.                 {
  1321.                   "assignments": [
  1322.                     868
  1323.                   ],
  1324.                   "declarations": [
  1325.                     {
  1326.                       "constant": false,
  1327.                       "id": 868,
  1328.                       "name": "result",
  1329.                       "nodeType": "VariableDeclaration",
  1330.                       "scope": 881,
  1331.                       "src": "1438:11:3",
  1332.                       "stateVariable": false,
  1333.                       "storageLocation": "default",
  1334.                       "typeDescriptions": {
  1335.                         "typeIdentifier": "t_uint256",
  1336.                         "typeString": "uint256"
  1337.                       },
  1338.                       "typeName": {
  1339.                         "id": 867,
  1340.                         "name": "uint",
  1341.                         "nodeType": "ElementaryTypeName",
  1342.                         "src": "1438:4:3",
  1343.                         "typeDescriptions": {
  1344.                           "typeIdentifier": "t_uint256",
  1345.                           "typeString": "uint256"
  1346.                         }
  1347.                       },
  1348.                       "value": null,
  1349.                       "visibility": "internal"
  1350.                     }
  1351.                   ],
  1352.                   "id": 878,
  1353.                   "initialValue": {
  1354.                     "argumentTypes": null,
  1355.                     "arguments": [
  1356.                       {
  1357.                         "argumentTypes": null,
  1358.                         "id": 875,
  1359.                         "name": "mcdDai",
  1360.                         "nodeType": "Identifier",
  1361.                         "overloadedDeclarations": [],
  1362.                         "referencedDeclaration": 850,
  1363.                         "src": "1504:6:3",
  1364.                         "typeDescriptions": {
  1365.                           "typeIdentifier": "t_contract$_ERC20_$790",
  1366.                           "typeString": "contract ERC20"
  1367.                         }
  1368.                       },
  1369.                       {
  1370.                         "argumentTypes": null,
  1371.                         "id": 876,
  1372.                         "name": "minRate",
  1373.                         "nodeType": "Identifier",
  1374.                         "overloadedDeclarations": [],
  1375.                         "referencedDeclaration": 856,
  1376.                         "src": "1512:7:3",
  1377.                         "typeDescriptions": {
  1378.                           "typeIdentifier": "t_uint256",
  1379.                           "typeString": "uint256"
  1380.                         }
  1381.                       }
  1382.                     ],
  1383.                     "expression": {
  1384.                       "argumentTypes": [
  1385.                         {
  1386.                           "typeIdentifier": "t_contract$_ERC20_$790",
  1387.                           "typeString": "contract ERC20"
  1388.                         },
  1389.                         {
  1390.                           "typeIdentifier": "t_uint256",
  1391.                           "typeString": "uint256"
  1392.                         }
  1393.                       ],
  1394.                       "arguments": [
  1395.                         {
  1396.                           "argumentTypes": null,
  1397.                           "expression": {
  1398.                             "argumentTypes": null,
  1399.                             "id": 872,
  1400.                             "name": "msg",
  1401.                             "nodeType": "Identifier",
  1402.                             "overloadedDeclarations": [],
  1403.                             "referencedDeclaration": 2821,
  1404.                             "src": "1493:3:3",
  1405.                             "typeDescriptions": {
  1406.                               "typeIdentifier": "t_magic_message",
  1407.                               "typeString": "msg"
  1408.                             }
  1409.                           },
  1410.                           "id": 873,
  1411.                           "isConstant": false,
  1412.                           "isLValue": false,
  1413.                           "isPure": false,
  1414.                           "lValueRequested": false,
  1415.                           "memberName": "value",
  1416.                           "nodeType": "MemberAccess",
  1417.                           "referencedDeclaration": null,
  1418.                           "src": "1493:9:3",
  1419.                           "typeDescriptions": {
  1420.                             "typeIdentifier": "t_uint256",
  1421.                             "typeString": "uint256"
  1422.                           }
  1423.                         }
  1424.                       ],
  1425.                       "expression": {
  1426.                         "argumentTypes": [
  1427.                           {
  1428.                             "typeIdentifier": "t_uint256",
  1429.                             "typeString": "uint256"
  1430.                           }
  1431.                         ],
  1432.                         "expression": {
  1433.                           "argumentTypes": null,
  1434.                           "expression": {
  1435.                             "argumentTypes": null,
  1436.                             "id": 869,
  1437.                             "name": "kyberNetworkProxy",
  1438.                             "nodeType": "Identifier",
  1439.                             "overloadedDeclarations": [],
  1440.                             "referencedDeclaration": 848,
  1441.                             "src": "1452:17:3",
  1442.                             "typeDescriptions": {
  1443.                               "typeIdentifier": "t_contract$_KyberNetworkInterface_$843",
  1444.                               "typeString": "contract KyberNetworkInterface"
  1445.                             }
  1446.                           },
  1447.                           "id": 870,
  1448.                           "isConstant": false,
  1449.                           "isLValue": false,
  1450.                           "isPure": false,
  1451.                           "lValueRequested": false,
  1452.                           "memberName": "swapEtherToToken",
  1453.                           "nodeType": "MemberAccess",
  1454.                           "referencedDeclaration": 829,
  1455.                           "src": "1452:34:3",
  1456.                           "typeDescriptions": {
  1457.                             "typeIdentifier": "t_function_external_payable$_t_contract$_ERC20_$790_$_t_uint256_$returns$_t_uint256_$",
  1458.                             "typeString": "function (contract ERC20,uint256) payable external returns (uint256)"
  1459.                           }
  1460.                         },
  1461.                         "id": 871,
  1462.                         "isConstant": false,
  1463.                         "isLValue": false,
  1464.                         "isPure": false,
  1465.                         "lValueRequested": false,
  1466.                         "memberName": "value",
  1467.                         "nodeType": "MemberAccess",
  1468.                         "referencedDeclaration": null,
  1469.                         "src": "1452:40:3",
  1470.                         "typeDescriptions": {
  1471.                           "typeIdentifier": "t_function_setvalue_pure$_t_uint256_$returns$_t_function_external_payable$_t_contract$_ERC20_$790_$_t_uint256_$returns$_t_uint256_$value_$",
  1472.                           "typeString": "function (uint256) pure returns (function (contract ERC20,uint256) payable external returns (uint256))"
  1473.                         }
  1474.                       },
  1475.                       "id": 874,
  1476.                       "isConstant": false,
  1477.                       "isLValue": false,
  1478.                       "isPure": false,
  1479.                       "kind": "functionCall",
  1480.                       "lValueRequested": false,
  1481.                       "names": [],
  1482.                       "nodeType": "FunctionCall",
  1483.                       "src": "1452:51:3",
  1484.                       "typeDescriptions": {
  1485.                         "typeIdentifier": "t_function_external_payable$_t_contract$_ERC20_$790_$_t_uint256_$returns$_t_uint256_$value",
  1486.                         "typeString": "function (contract ERC20,uint256) payable external returns (uint256)"
  1487.                       }
  1488.                     },
  1489.                     "id": 877,
  1490.                     "isConstant": false,
  1491.                     "isLValue": false,
  1492.                     "isPure": false,
  1493.                     "kind": "functionCall",
  1494.                     "lValueRequested": false,
  1495.                     "names": [],
  1496.                     "nodeType": "FunctionCall",
  1497.                     "src": "1452:68:3",
  1498.                     "typeDescriptions": {
  1499.                       "typeIdentifier": "t_uint256",
  1500.                       "typeString": "uint256"
  1501.                     }
  1502.                   },
  1503.                   "nodeType": "VariableDeclarationStatement",
  1504.                   "src": "1438:82:3"
  1505.                 },
  1506.                 {
  1507.                   "expression": {
  1508.                     "argumentTypes": null,
  1509.                     "id": 879,
  1510.                     "name": "result",
  1511.                     "nodeType": "Identifier",
  1512.                     "overloadedDeclarations": [],
  1513.                     "referencedDeclaration": 868,
  1514.                     "src": "1537:6:3",
  1515.                     "typeDescriptions": {
  1516.                       "typeIdentifier": "t_uint256",
  1517.                       "typeString": "uint256"
  1518.                     }
  1519.                   },
  1520.                   "functionReturnParameters": 854,
  1521.                   "id": 880,
  1522.                   "nodeType": "Return",
  1523.                   "src": "1530:13:3"
  1524.                 }
  1525.               ]
  1526.             },
  1527.             "documentation": null,
  1528.             "id": 882,
  1529.             "implemented": true,
  1530.             "kind": "function",
  1531.             "modifiers": [],
  1532.             "name": "swapEtherToToken",
  1533.             "nodeType": "FunctionDefinition",
  1534.             "parameters": {
  1535.               "id": 851,
  1536.               "nodeType": "ParameterList",
  1537.               "parameters": [],
  1538.               "src": "1244:2:3"
  1539.             },
  1540.             "returnParameters": {
  1541.               "id": 854,
  1542.               "nodeType": "ParameterList",
  1543.               "parameters": [
  1544.                 {
  1545.                   "constant": false,
  1546.                   "id": 853,
  1547.                   "name": "_receivedAmount",
  1548.                   "nodeType": "VariableDeclaration",
  1549.                   "scope": 882,
  1550.                   "src": "1295:20:3",
  1551.                   "stateVariable": false,
  1552.                   "storageLocation": "default",
  1553.                   "typeDescriptions": {
  1554.                     "typeIdentifier": "t_uint256",
  1555.                     "typeString": "uint256"
  1556.                   },
  1557.                   "typeName": {
  1558.                     "id": 852,
  1559.                     "name": "uint",
  1560.                     "nodeType": "ElementaryTypeName",
  1561.                     "src": "1295:4:3",
  1562.                     "typeDescriptions": {
  1563.                       "typeIdentifier": "t_uint256",
  1564.                       "typeString": "uint256"
  1565.                     }
  1566.                   },
  1567.                   "value": null,
  1568.                   "visibility": "internal"
  1569.                 }
  1570.               ],
  1571.               "src": "1294:22:3"
  1572.             },
  1573.             "scope": 947,
  1574.             "src": "1219:331:3",
  1575.             "stateMutability": "payable",
  1576.             "superFunction": null,
  1577.             "visibility": "public"
  1578.           },
  1579.           {
  1580.             "body": {
  1581.               "id": 945,
  1582.               "nodeType": "Block",
  1583.               "src": "1696:883:3",
  1584.               "statements": [
  1585.                 {
  1586.                   "assignments": [
  1587.                     null,
  1588.                     892
  1589.                   ],
  1590.                   "declarations": [
  1591.                     null,
  1592.                     {
  1593.                       "constant": false,
  1594.                       "id": 892,
  1595.                       "name": "minRate",
  1596.                       "nodeType": "VariableDeclaration",
  1597.                       "scope": 945,
  1598.                       "src": "1827:12:3",
  1599.                       "stateVariable": false,
  1600.                       "storageLocation": "default",
  1601.                       "typeDescriptions": {
  1602.                         "typeIdentifier": "t_uint256",
  1603.                         "typeString": "uint256"
  1604.                       },
  1605.                       "typeName": {
  1606.                         "id": 891,
  1607.                         "name": "uint",
  1608.                         "nodeType": "ElementaryTypeName",
  1609.                         "src": "1827:4:3",
  1610.                         "typeDescriptions": {
  1611.                           "typeIdentifier": "t_uint256",
  1612.                           "typeString": "uint256"
  1613.                         }
  1614.                       },
  1615.                       "value": null,
  1616.                       "visibility": "internal"
  1617.                     }
  1618.                   ],
  1619.                   "id": 899,
  1620.                   "initialValue": {
  1621.                     "argumentTypes": null,
  1622.                     "arguments": [
  1623.                       {
  1624.                         "argumentTypes": null,
  1625.                         "id": 895,
  1626.                         "name": "_srcToken",
  1627.                         "nodeType": "Identifier",
  1628.                         "overloadedDeclarations": [],
  1629.                         "referencedDeclaration": 884,
  1630.                         "src": "1877:9:3",
  1631.                         "typeDescriptions": {
  1632.                           "typeIdentifier": "t_contract$_ERC20_$790",
  1633.                           "typeString": "contract ERC20"
  1634.                         }
  1635.                       },
  1636.                       {
  1637.                         "argumentTypes": null,
  1638.                         "id": 896,
  1639.                         "name": "mcdDai",
  1640.                         "nodeType": "Identifier",
  1641.                         "overloadedDeclarations": [],
  1642.                         "referencedDeclaration": 850,
  1643.                         "src": "1888:6:3",
  1644.                         "typeDescriptions": {
  1645.                           "typeIdentifier": "t_contract$_ERC20_$790",
  1646.                           "typeString": "contract ERC20"
  1647.                         }
  1648.                       },
  1649.                       {
  1650.                         "argumentTypes": null,
  1651.                         "id": 897,
  1652.                         "name": "_srcQty",
  1653.                         "nodeType": "Identifier",
  1654.                         "overloadedDeclarations": [],
  1655.                         "referencedDeclaration": 886,
  1656.                         "src": "1896:7:3",
  1657.                         "typeDescriptions": {
  1658.                           "typeIdentifier": "t_uint256",
  1659.                           "typeString": "uint256"
  1660.                         }
  1661.                       }
  1662.                     ],
  1663.                     "expression": {
  1664.                       "argumentTypes": [
  1665.                         {
  1666.                           "typeIdentifier": "t_contract$_ERC20_$790",
  1667.                           "typeString": "contract ERC20"
  1668.                         },
  1669.                         {
  1670.                           "typeIdentifier": "t_contract$_ERC20_$790",
  1671.                           "typeString": "contract ERC20"
  1672.                         },
  1673.                         {
  1674.                           "typeIdentifier": "t_uint256",
  1675.                           "typeString": "uint256"
  1676.                         }
  1677.                       ],
  1678.                       "expression": {
  1679.                         "argumentTypes": null,
  1680.                         "id": 893,
  1681.                         "name": "kyberNetworkProxy",
  1682.                         "nodeType": "Identifier",
  1683.                         "overloadedDeclarations": [],
  1684.                         "referencedDeclaration": 848,
  1685.                         "src": "1843:17:3",
  1686.                         "typeDescriptions": {
  1687.                           "typeIdentifier": "t_contract$_KyberNetworkInterface_$843",
  1688.                           "typeString": "contract KyberNetworkInterface"
  1689.                         }
  1690.                       },
  1691.                       "id": 894,
  1692.                       "isConstant": false,
  1693.                       "isLValue": false,
  1694.                       "isPure": false,
  1695.                       "lValueRequested": false,
  1696.                       "memberName": "getExpectedRate",
  1697.                       "nodeType": "MemberAccess",
  1698.                       "referencedDeclaration": 842,
  1699.                       "src": "1843:33:3",
  1700.                       "typeDescriptions": {
  1701.                         "typeIdentifier": "t_function_external_view$_t_contract$_ERC20_$790_$_t_contract$_ERC20_$790_$_t_uint256_$returns$_t_uint256_$_t_uint256_$",
  1702.                         "typeString": "function (contract ERC20,contract ERC20,uint256) view external returns (uint256,uint256)"
  1703.                       }
  1704.                     },
  1705.                     "id": 898,
  1706.                     "isConstant": false,
  1707.                     "isLValue": false,
  1708.                     "isPure": false,
  1709.                     "kind": "functionCall",
  1710.                     "lValueRequested": false,
  1711.                     "names": [],
  1712.                     "nodeType": "FunctionCall",
  1713.                     "src": "1843:61:3",
  1714.                     "typeDescriptions": {
  1715.                       "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
  1716.                       "typeString": "tuple(uint256,uint256)"
  1717.                     }
  1718.                   },
  1719.                   "nodeType": "VariableDeclarationStatement",
  1720.                   "src": "1824:80:3"
  1721.                 },
  1722.                 {
  1723.                   "expression": {
  1724.                     "argumentTypes": null,
  1725.                     "arguments": [
  1726.                       {
  1727.                         "argumentTypes": null,
  1728.                         "arguments": [
  1729.                           {
  1730.                             "argumentTypes": null,
  1731.                             "expression": {
  1732.                               "argumentTypes": null,
  1733.                               "id": 903,
  1734.                               "name": "msg",
  1735.                               "nodeType": "Identifier",
  1736.                               "overloadedDeclarations": [],
  1737.                               "referencedDeclaration": 2821,
  1738.                               "src": "2005:3:3",
  1739.                               "typeDescriptions": {
  1740.                                 "typeIdentifier": "t_magic_message",
  1741.                                 "typeString": "msg"
  1742.                               }
  1743.                             },
  1744.                             "id": 904,
  1745.                             "isConstant": false,
  1746.                             "isLValue": false,
  1747.                             "isPure": false,
  1748.                             "lValueRequested": false,
  1749.                             "memberName": "sender",
  1750.                             "nodeType": "MemberAccess",
  1751.                             "referencedDeclaration": null,
  1752.                             "src": "2005:10:3",
  1753.                             "typeDescriptions": {
  1754.                               "typeIdentifier": "t_address_payable",
  1755.                               "typeString": "address payable"
  1756.                             }
  1757.                           },
  1758.                           {
  1759.                             "argumentTypes": null,
  1760.                             "arguments": [
  1761.                               {
  1762.                                 "argumentTypes": null,
  1763.                                 "id": 906,
  1764.                                 "name": "this",
  1765.                                 "nodeType": "Identifier",
  1766.                                 "overloadedDeclarations": [],
  1767.                                 "referencedDeclaration": 2875,
  1768.                                 "src": "2025:4:3",
  1769.                                 "typeDescriptions": {
  1770.                                   "typeIdentifier": "t_contract$_KyberTrader_$947",
  1771.                                   "typeString": "contract KyberTrader"
  1772.                                 }
  1773.                               }
  1774.                             ],
  1775.                             "expression": {
  1776.                               "argumentTypes": [
  1777.                                 {
  1778.                                   "typeIdentifier": "t_contract$_KyberTrader_$947",
  1779.                                   "typeString": "contract KyberTrader"
  1780.                                 }
  1781.                               ],
  1782.                               "id": 905,
  1783.                               "isConstant": false,
  1784.                               "isLValue": false,
  1785.                               "isPure": true,
  1786.                               "lValueRequested": false,
  1787.                               "nodeType": "ElementaryTypeNameExpression",
  1788.                               "src": "2017:7:3",
  1789.                               "typeDescriptions": {
  1790.                                 "typeIdentifier": "t_type$_t_address_$",
  1791.                                 "typeString": "type(address)"
  1792.                               },
  1793.                               "typeName": "address"
  1794.                             },
  1795.                             "id": 907,
  1796.                             "isConstant": false,
  1797.                             "isLValue": false,
  1798.                             "isPure": false,
  1799.                             "kind": "typeConversion",
  1800.                             "lValueRequested": false,
  1801.                             "names": [],
  1802.                             "nodeType": "FunctionCall",
  1803.                             "src": "2017:13:3",
  1804.                             "typeDescriptions": {
  1805.                               "typeIdentifier": "t_address",
  1806.                               "typeString": "address"
  1807.                             }
  1808.                           },
  1809.                           {
  1810.                             "argumentTypes": null,
  1811.                             "id": 908,
  1812.                             "name": "_srcQty",
  1813.                             "nodeType": "Identifier",
  1814.                             "overloadedDeclarations": [],
  1815.                             "referencedDeclaration": 886,
  1816.                             "src": "2032:7:3",
  1817.                             "typeDescriptions": {
  1818.                               "typeIdentifier": "t_uint256",
  1819.                               "typeString": "uint256"
  1820.                             }
  1821.                           }
  1822.                         ],
  1823.                         "expression": {
  1824.                           "argumentTypes": [
  1825.                             {
  1826.                               "typeIdentifier": "t_address_payable",
  1827.                               "typeString": "address payable"
  1828.                             },
  1829.                             {
  1830.                               "typeIdentifier": "t_address",
  1831.                               "typeString": "address"
  1832.                             },
  1833.                             {
  1834.                               "typeIdentifier": "t_uint256",
  1835.                               "typeString": "uint256"
  1836.                             }
  1837.                           ],
  1838.                           "expression": {
  1839.                             "argumentTypes": null,
  1840.                             "id": 901,
  1841.                             "name": "_srcToken",
  1842.                             "nodeType": "Identifier",
  1843.                             "overloadedDeclarations": [],
  1844.                             "referencedDeclaration": 884,
  1845.                             "src": "1982:9:3",
  1846.                             "typeDescriptions": {
  1847.                               "typeIdentifier": "t_contract$_ERC20_$790",
  1848.                               "typeString": "contract ERC20"
  1849.                             }
  1850.                           },
  1851.                           "id": 902,
  1852.                           "isConstant": false,
  1853.                           "isLValue": false,
  1854.                           "isPure": false,
  1855.                           "lValueRequested": false,
  1856.                           "memberName": "transferFrom",
  1857.                           "nodeType": "MemberAccess",
  1858.                           "referencedDeclaration": 789,
  1859.                           "src": "1982:22:3",
  1860.                           "typeDescriptions": {
  1861.                             "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
  1862.                             "typeString": "function (address,address,uint256) external returns (bool)"
  1863.                           }
  1864.                         },
  1865.                         "id": 909,
  1866.                         "isConstant": false,
  1867.                         "isLValue": false,
  1868.                         "isPure": false,
  1869.                         "kind": "functionCall",
  1870.                         "lValueRequested": false,
  1871.                         "names": [],
  1872.                         "nodeType": "FunctionCall",
  1873.                         "src": "1982:58:3",
  1874.                         "typeDescriptions": {
  1875.                           "typeIdentifier": "t_bool",
  1876.                           "typeString": "bool"
  1877.                         }
  1878.                       },
  1879.                       {
  1880.                         "argumentTypes": null,
  1881.                         "hexValue": "5472616e73666572206f6620696e636f6d696e67204552433230206661696c6564",
  1882.                         "id": 910,
  1883.                         "isConstant": false,
  1884.                         "isLValue": false,
  1885.                         "isPure": true,
  1886.                         "kind": "string",
  1887.                         "lValueRequested": false,
  1888.                         "nodeType": "Literal",
  1889.                         "src": "2042:35:3",
  1890.                         "subdenomination": null,
  1891.                         "typeDescriptions": {
  1892.                           "typeIdentifier": "t_stringliteral_cd8a26f843eff9b2bf99b352dcd2a0d6ce6e2f8c493a2424530bffc1932f5b6e",
  1893.                           "typeString": "literal_string \"Transfer of incoming ERC20 failed\""
  1894.                         },
  1895.                         "value": "Transfer of incoming ERC20 failed"
  1896.                       }
  1897.                     ],
  1898.                     "expression": {
  1899.                       "argumentTypes": [
  1900.                         {
  1901.                           "typeIdentifier": "t_bool",
  1902.                           "typeString": "bool"
  1903.                         },
  1904.                         {
  1905.                           "typeIdentifier": "t_stringliteral_cd8a26f843eff9b2bf99b352dcd2a0d6ce6e2f8c493a2424530bffc1932f5b6e",
  1906.                           "typeString": "literal_string \"Transfer of incoming ERC20 failed\""
  1907.                         }
  1908.                       ],
  1909.                       "id": 900,
  1910.                       "name": "require",
  1911.                       "nodeType": "Identifier",
  1912.                       "overloadedDeclarations": [
  1913.                         2824,
  1914.                         2825
  1915.                       ],
  1916.                       "referencedDeclaration": 2825,
  1917.                       "src": "1974:7:3",
  1918.                       "typeDescriptions": {
  1919.                         "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
  1920.                         "typeString": "function (bool,string memory) pure"
  1921.                       }
  1922.                     },
  1923.                     "id": 911,
  1924.                     "isConstant": false,
  1925.                     "isLValue": false,
  1926.                     "isPure": false,
  1927.                     "kind": "functionCall",
  1928.                     "lValueRequested": false,
  1929.                     "names": [],
  1930.                     "nodeType": "FunctionCall",
  1931.                     "src": "1974:104:3",
  1932.                     "typeDescriptions": {
  1933.                       "typeIdentifier": "t_tuple$__$",
  1934.                       "typeString": "tuple()"
  1935.                     }
  1936.                   },
  1937.                   "id": 912,
  1938.                   "nodeType": "ExpressionStatement",
  1939.                   "src": "1974:104:3"
  1940.                 },
  1941.                 {
  1942.                   "expression": {
  1943.                     "argumentTypes": null,
  1944.                     "arguments": [
  1945.                       {
  1946.                         "argumentTypes": null,
  1947.                         "arguments": [
  1948.                           {
  1949.                             "argumentTypes": null,
  1950.                             "arguments": [
  1951.                               {
  1952.                                 "argumentTypes": null,
  1953.                                 "id": 917,
  1954.                                 "name": "kyberNetworkProxy",
  1955.                                 "nodeType": "Identifier",
  1956.                                 "overloadedDeclarations": [],
  1957.                                 "referencedDeclaration": 848,
  1958.                                 "src": "2226:17:3",
  1959.                                 "typeDescriptions": {
  1960.                                   "typeIdentifier": "t_contract$_KyberNetworkInterface_$843",
  1961.                                   "typeString": "contract KyberNetworkInterface"
  1962.                                 }
  1963.                               }
  1964.                             ],
  1965.                             "expression": {
  1966.                               "argumentTypes": [
  1967.                                 {
  1968.                                   "typeIdentifier": "t_contract$_KyberNetworkInterface_$843",
  1969.                                   "typeString": "contract KyberNetworkInterface"
  1970.                                 }
  1971.                               ],
  1972.                               "id": 916,
  1973.                               "isConstant": false,
  1974.                               "isLValue": false,
  1975.                               "isPure": true,
  1976.                               "lValueRequested": false,
  1977.                               "nodeType": "ElementaryTypeNameExpression",
  1978.                               "src": "2218:7:3",
  1979.                               "typeDescriptions": {
  1980.                                 "typeIdentifier": "t_type$_t_address_$",
  1981.                                 "typeString": "type(address)"
  1982.                               },
  1983.                               "typeName": "address"
  1984.                             },
  1985.                             "id": 918,
  1986.                             "isConstant": false,
  1987.                             "isLValue": false,
  1988.                             "isPure": false,
  1989.                             "kind": "typeConversion",
  1990.                             "lValueRequested": false,
  1991.                             "names": [],
  1992.                             "nodeType": "FunctionCall",
  1993.                             "src": "2218:26:3",
  1994.                             "typeDescriptions": {
  1995.                               "typeIdentifier": "t_address",
  1996.                               "typeString": "address"
  1997.                             }
  1998.                           },
  1999.                           {
  2000.                             "argumentTypes": null,
  2001.                             "hexValue": "30",
  2002.                             "id": 919,
  2003.                             "isConstant": false,
  2004.                             "isLValue": false,
  2005.                             "isPure": true,
  2006.                             "kind": "number",
  2007.                             "lValueRequested": false,
  2008.                             "nodeType": "Literal",
  2009.                             "src": "2246:1:3",
  2010.                             "subdenomination": null,
  2011.                             "typeDescriptions": {
  2012.                               "typeIdentifier": "t_rational_0_by_1",
  2013.                               "typeString": "int_const 0"
  2014.                             },
  2015.                             "value": "0"
  2016.                           }
  2017.                         ],
  2018.                         "expression": {
  2019.                           "argumentTypes": [
  2020.                             {
  2021.                               "typeIdentifier": "t_address",
  2022.                               "typeString": "address"
  2023.                             },
  2024.                             {
  2025.                               "typeIdentifier": "t_rational_0_by_1",
  2026.                               "typeString": "int_const 0"
  2027.                             }
  2028.                           ],
  2029.                           "expression": {
  2030.                             "argumentTypes": null,
  2031.                             "id": 914,
  2032.                             "name": "_srcToken",
  2033.                             "nodeType": "Identifier",
  2034.                             "overloadedDeclarations": [],
  2035.                             "referencedDeclaration": 884,
  2036.                             "src": "2200:9:3",
  2037.                             "typeDescriptions": {
  2038.                               "typeIdentifier": "t_contract$_ERC20_$790",
  2039.                               "typeString": "contract ERC20"
  2040.                             }
  2041.                           },
  2042.                           "id": 915,
  2043.                           "isConstant": false,
  2044.                           "isLValue": false,
  2045.                           "isPure": false,
  2046.                           "lValueRequested": false,
  2047.                           "memberName": "approve",
  2048.                           "nodeType": "MemberAccess",
  2049.                           "referencedDeclaration": 778,
  2050.                           "src": "2200:17:3",
  2051.                           "typeDescriptions": {
  2052.                             "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
  2053.                             "typeString": "function (address,uint256) external returns (bool)"
  2054.                           }
  2055.                         },
  2056.                         "id": 920,
  2057.                         "isConstant": false,
  2058.                         "isLValue": false,
  2059.                         "isPure": false,
  2060.                         "kind": "functionCall",
  2061.                         "lValueRequested": false,
  2062.                         "names": [],
  2063.                         "nodeType": "FunctionCall",
  2064.                         "src": "2200:48:3",
  2065.                         "typeDescriptions": {
  2066.                           "typeIdentifier": "t_bool",
  2067.                           "typeString": "bool"
  2068.                         }
  2069.                       },
  2070.                       {
  2071.                         "argumentTypes": null,
  2072.                         "hexValue": "436f756c64206e6f7420726573657420696e636f6d696e6720455243323020616c6c6f77616e6365",
  2073.                         "id": 921,
  2074.                         "isConstant": false,
  2075.                         "isLValue": false,
  2076.                         "isPure": true,
  2077.                         "kind": "string",
  2078.                         "lValueRequested": false,
  2079.                         "nodeType": "Literal",
  2080.                         "src": "2250:42:3",
  2081.                         "subdenomination": null,
  2082.                         "typeDescriptions": {
  2083.                           "typeIdentifier": "t_stringliteral_d31ea363c9a235e5ac003b13cce657c446344b42ccccf806e7e8d722ee92802f",
  2084.                           "typeString": "literal_string \"Could not reset incoming ERC20 allowance\""
  2085.                         },
  2086.                         "value": "Could not reset incoming ERC20 allowance"
  2087.                       }
  2088.                     ],
  2089.                     "expression": {
  2090.                       "argumentTypes": [
  2091.                         {
  2092.                           "typeIdentifier": "t_bool",
  2093.                           "typeString": "bool"
  2094.                         },
  2095.                         {
  2096.                           "typeIdentifier": "t_stringliteral_d31ea363c9a235e5ac003b13cce657c446344b42ccccf806e7e8d722ee92802f",
  2097.                           "typeString": "literal_string \"Could not reset incoming ERC20 allowance\""
  2098.                         }
  2099.                       ],
  2100.                       "id": 913,
  2101.                       "name": "require",
  2102.                       "nodeType": "Identifier",
  2103.                       "overloadedDeclarations": [
  2104.                         2824,
  2105.                         2825
  2106.                       ],
  2107.                       "referencedDeclaration": 2825,
  2108.                       "src": "2192:7:3",
  2109.                       "typeDescriptions": {
  2110.                         "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
  2111.                         "typeString": "function (bool,string memory) pure"
  2112.                       }
  2113.                     },
  2114.                     "id": 922,
  2115.                     "isConstant": false,
  2116.                     "isLValue": false,
  2117.                     "isPure": false,
  2118.                     "kind": "functionCall",
  2119.                     "lValueRequested": false,
  2120.                     "names": [],
  2121.                     "nodeType": "FunctionCall",
  2122.                     "src": "2192:101:3",
  2123.                     "typeDescriptions": {
  2124.                       "typeIdentifier": "t_tuple$__$",
  2125.                       "typeString": "tuple()"
  2126.                     }
  2127.                   },
  2128.                   "id": 923,
  2129.                   "nodeType": "ExpressionStatement",
  2130.                   "src": "2192:101:3"
  2131.                 },
  2132.                 {
  2133.                   "expression": {
  2134.                     "argumentTypes": null,
  2135.                     "arguments": [
  2136.                       {
  2137.                         "argumentTypes": null,
  2138.                         "arguments": [
  2139.                           {
  2140.                             "argumentTypes": null,
  2141.                             "id": 928,
  2142.                             "name": "kyberNetworkProxy",
  2143.                             "nodeType": "Identifier",
  2144.                             "overloadedDeclarations": [],
  2145.                             "referencedDeclaration": 848,
  2146.                             "src": "2397:17:3",
  2147.                             "typeDescriptions": {
  2148.                               "typeIdentifier": "t_contract$_KyberNetworkInterface_$843",
  2149.                               "typeString": "contract KyberNetworkInterface"
  2150.                             }
  2151.                           }
  2152.                         ],
  2153.                         "expression": {
  2154.                           "argumentTypes": [
  2155.                             {
  2156.                               "typeIdentifier": "t_contract$_KyberNetworkInterface_$843",
  2157.                               "typeString": "contract KyberNetworkInterface"
  2158.                             }
  2159.                           ],
  2160.                           "id": 927,
  2161.                           "isConstant": false,
  2162.                           "isLValue": false,
  2163.                           "isPure": true,
  2164.                           "lValueRequested": false,
  2165.                           "nodeType": "ElementaryTypeNameExpression",
  2166.                           "src": "2389:7:3",
  2167.                           "typeDescriptions": {
  2168.                             "typeIdentifier": "t_type$_t_address_$",
  2169.                             "typeString": "type(address)"
  2170.                           },
  2171.                           "typeName": "address"
  2172.                         },
  2173.                         "id": 929,
  2174.                         "isConstant": false,
  2175.                         "isLValue": false,
  2176.                         "isPure": false,
  2177.                         "kind": "typeConversion",
  2178.                         "lValueRequested": false,
  2179.                         "names": [],
  2180.                         "nodeType": "FunctionCall",
  2181.                         "src": "2389:26:3",
  2182.                         "typeDescriptions": {
  2183.                           "typeIdentifier": "t_address",
  2184.                           "typeString": "address"
  2185.                         }
  2186.                       },
  2187.                       {
  2188.                         "argumentTypes": null,
  2189.                         "id": 930,
  2190.                         "name": "_srcQty",
  2191.                         "nodeType": "Identifier",
  2192.                         "overloadedDeclarations": [],
  2193.                         "referencedDeclaration": 886,
  2194.                         "src": "2417:7:3",
  2195.                         "typeDescriptions": {
  2196.                           "typeIdentifier": "t_uint256",
  2197.                           "typeString": "uint256"
  2198.                         }
  2199.                       }
  2200.                     ],
  2201.                     "expression": {
  2202.                       "argumentTypes": [
  2203.                         {
  2204.                           "typeIdentifier": "t_address",
  2205.                           "typeString": "address"
  2206.                         },
  2207.                         {
  2208.                           "typeIdentifier": "t_uint256",
  2209.                           "typeString": "uint256"
  2210.                         }
  2211.                       ],
  2212.                       "expression": {
  2213.                         "argumentTypes": null,
  2214.                         "id": 924,
  2215.                         "name": "_srcToken",
  2216.                         "nodeType": "Identifier",
  2217.                         "overloadedDeclarations": [],
  2218.                         "referencedDeclaration": 884,
  2219.                         "src": "2371:9:3",
  2220.                         "typeDescriptions": {
  2221.                           "typeIdentifier": "t_contract$_ERC20_$790",
  2222.                           "typeString": "contract ERC20"
  2223.                         }
  2224.                       },
  2225.                       "id": 926,
  2226.                       "isConstant": false,
  2227.                       "isLValue": false,
  2228.                       "isPure": false,
  2229.                       "lValueRequested": false,
  2230.                       "memberName": "approve",
  2231.                       "nodeType": "MemberAccess",
  2232.                       "referencedDeclaration": 778,
  2233.                       "src": "2371:17:3",
  2234.                       "typeDescriptions": {
  2235.                         "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
  2236.                         "typeString": "function (address,uint256) external returns (bool)"
  2237.                       }
  2238.                     },
  2239.                     "id": 931,
  2240.                     "isConstant": false,
  2241.                     "isLValue": false,
  2242.                     "isPure": false,
  2243.                     "kind": "functionCall",
  2244.                     "lValueRequested": false,
  2245.                     "names": [],
  2246.                     "nodeType": "FunctionCall",
  2247.                     "src": "2371:54:3",
  2248.                     "typeDescriptions": {
  2249.                       "typeIdentifier": "t_bool",
  2250.                       "typeString": "bool"
  2251.                     }
  2252.                   },
  2253.                   "id": 932,
  2254.                   "nodeType": "ExpressionStatement",
  2255.                   "src": "2371:54:3"
  2256.                 },
  2257.                 {
  2258.                   "assignments": [
  2259.                     934
  2260.                   ],
  2261.                   "declarations": [
  2262.                     {
  2263.                       "constant": false,
  2264.                       "id": 934,
  2265.                       "name": "result",
  2266.                       "nodeType": "VariableDeclaration",
  2267.                       "scope": 945,
  2268.                       "src": "2464:11:3",
  2269.                       "stateVariable": false,
  2270.                       "storageLocation": "default",
  2271.                       "typeDescriptions": {
  2272.                         "typeIdentifier": "t_uint256",
  2273.                         "typeString": "uint256"
  2274.                       },
  2275.                       "typeName": {
  2276.                         "id": 933,
  2277.                         "name": "uint",
  2278.                         "nodeType": "ElementaryTypeName",
  2279.                         "src": "2464:4:3",
  2280.                         "typeDescriptions": {
  2281.                           "typeIdentifier": "t_uint256",
  2282.                           "typeString": "uint256"
  2283.                         }
  2284.                       },
  2285.                       "value": null,
  2286.                       "visibility": "internal"
  2287.                     }
  2288.                   ],
  2289.                   "id": 942,
  2290.                   "initialValue": {
  2291.                     "argumentTypes": null,
  2292.                     "arguments": [
  2293.                       {
  2294.                         "argumentTypes": null,
  2295.                         "id": 937,
  2296.                         "name": "_srcToken",
  2297.                         "nodeType": "Identifier",
  2298.                         "overloadedDeclarations": [],
  2299.                         "referencedDeclaration": 884,
  2300.                         "src": "2513:9:3",
  2301.                         "typeDescriptions": {
  2302.                           "typeIdentifier": "t_contract$_ERC20_$790",
  2303.                           "typeString": "contract ERC20"
  2304.                         }
  2305.                       },
  2306.                       {
  2307.                         "argumentTypes": null,
  2308.                         "id": 938,
  2309.                         "name": "_srcQty",
  2310.                         "nodeType": "Identifier",
  2311.                         "overloadedDeclarations": [],
  2312.                         "referencedDeclaration": 886,
  2313.                         "src": "2524:7:3",
  2314.                         "typeDescriptions": {
  2315.                           "typeIdentifier": "t_uint256",
  2316.                           "typeString": "uint256"
  2317.                         }
  2318.                       },
  2319.                       {
  2320.                         "argumentTypes": null,
  2321.                         "id": 939,
  2322.                         "name": "mcdDai",
  2323.                         "nodeType": "Identifier",
  2324.                         "overloadedDeclarations": [],
  2325.                         "referencedDeclaration": 850,
  2326.                         "src": "2533:6:3",
  2327.                         "typeDescriptions": {
  2328.                           "typeIdentifier": "t_contract$_ERC20_$790",
  2329.                           "typeString": "contract ERC20"
  2330.                         }
  2331.                       },
  2332.                       {
  2333.                         "argumentTypes": null,
  2334.                         "id": 940,
  2335.                         "name": "minRate",
  2336.                         "nodeType": "Identifier",
  2337.                         "overloadedDeclarations": [],
  2338.                         "referencedDeclaration": 892,
  2339.                         "src": "2541:7:3",
  2340.                         "typeDescriptions": {
  2341.                           "typeIdentifier": "t_uint256",
  2342.                           "typeString": "uint256"
  2343.                         }
  2344.                       }
  2345.                     ],
  2346.                     "expression": {
  2347.                       "argumentTypes": [
  2348.                         {
  2349.                           "typeIdentifier": "t_contract$_ERC20_$790",
  2350.                           "typeString": "contract ERC20"
  2351.                         },
  2352.                         {
  2353.                           "typeIdentifier": "t_uint256",
  2354.                           "typeString": "uint256"
  2355.                         },
  2356.                         {
  2357.                           "typeIdentifier": "t_contract$_ERC20_$790",
  2358.                           "typeString": "contract ERC20"
  2359.                         },
  2360.                         {
  2361.                           "typeIdentifier": "t_uint256",
  2362.                           "typeString": "uint256"
  2363.                         }
  2364.                       ],
  2365.                       "expression": {
  2366.                         "argumentTypes": null,
  2367.                         "id": 935,
  2368.                         "name": "kyberNetworkProxy",
  2369.                         "nodeType": "Identifier",
  2370.                         "overloadedDeclarations": [],
  2371.                         "referencedDeclaration": 848,
  2372.                         "src": "2478:17:3",
  2373.                         "typeDescriptions": {
  2374.                           "typeIdentifier": "t_contract$_KyberNetworkInterface_$843",
  2375.                           "typeString": "contract KyberNetworkInterface"
  2376.                         }
  2377.                       },
  2378.                       "id": 936,
  2379.                       "isConstant": false,
  2380.                       "isLValue": false,
  2381.                       "isPure": false,
  2382.                       "lValueRequested": false,
  2383.                       "memberName": "swapTokenToToken",
  2384.                       "nodeType": "MemberAccess",
  2385.                       "referencedDeclaration": 820,
  2386.                       "src": "2478:34:3",
  2387.                       "typeDescriptions": {
  2388.                         "typeIdentifier": "t_function_external_nonpayable$_t_contract$_ERC20_$790_$_t_uint256_$_t_contract$_ERC20_$790_$_t_uint256_$returns$_t_uint256_$",
  2389.                         "typeString": "function (contract ERC20,uint256,contract ERC20,uint256) external returns (uint256)"
  2390.                       }
  2391.                     },
  2392.                     "id": 941,
  2393.                     "isConstant": false,
  2394.                     "isLValue": false,
  2395.                     "isPure": false,
  2396.                     "kind": "functionCall",
  2397.                     "lValueRequested": false,
  2398.                     "names": [],
  2399.                     "nodeType": "FunctionCall",
  2400.                     "src": "2478:71:3",
  2401.                     "typeDescriptions": {
  2402.                       "typeIdentifier": "t_uint256",
  2403.                       "typeString": "uint256"
  2404.                     }
  2405.                   },
  2406.                   "nodeType": "VariableDeclarationStatement",
  2407.                   "src": "2464:85:3"
  2408.                 },
  2409.                 {
  2410.                   "expression": {
  2411.                     "argumentTypes": null,
  2412.                     "id": 943,
  2413.                     "name": "result",
  2414.                     "nodeType": "Identifier",
  2415.                     "overloadedDeclarations": [],
  2416.                     "referencedDeclaration": 934,
  2417.                     "src": "2566:6:3",
  2418.                     "typeDescriptions": {
  2419.                       "typeIdentifier": "t_uint256",
  2420.                       "typeString": "uint256"
  2421.                     }
  2422.                   },
  2423.                   "functionReturnParameters": 890,
  2424.                   "id": 944,
  2425.                   "nodeType": "Return",
  2426.                   "src": "2559:13:3"
  2427.                 }
  2428.               ]
  2429.             },
  2430.             "documentation": null,
  2431.             "id": 946,
  2432.             "implemented": true,
  2433.             "kind": "function",
  2434.             "modifiers": [],
  2435.             "name": "swapTokenToToken",
  2436.             "nodeType": "FunctionDefinition",
  2437.             "parameters": {
  2438.               "id": 887,
  2439.               "nodeType": "ParameterList",
  2440.               "parameters": [
  2441.                 {
  2442.                   "constant": false,
  2443.                   "id": 884,
  2444.                   "name": "_srcToken",
  2445.                   "nodeType": "VariableDeclaration",
  2446.                   "scope": 946,
  2447.                   "src": "1595:15:3",
  2448.                   "stateVariable": false,
  2449.                   "storageLocation": "default",
  2450.                   "typeDescriptions": {
  2451.                     "typeIdentifier": "t_contract$_ERC20_$790",
  2452.                     "typeString": "contract ERC20"
  2453.                   },
  2454.                   "typeName": {
  2455.                     "contractScope": null,
  2456.                     "id": 883,
  2457.                     "name": "ERC20",
  2458.                     "nodeType": "UserDefinedTypeName",
  2459.                     "referencedDeclaration": 790,
  2460.                     "src": "1595:5:3",
  2461.                     "typeDescriptions": {
  2462.                       "typeIdentifier": "t_contract$_ERC20_$790",
  2463.                       "typeString": "contract ERC20"
  2464.                     }
  2465.                   },
  2466.                   "value": null,
  2467.                   "visibility": "internal"
  2468.                 },
  2469.                 {
  2470.                   "constant": false,
  2471.                   "id": 886,
  2472.                   "name": "_srcQty",
  2473.                   "nodeType": "VariableDeclaration",
  2474.                   "scope": 946,
  2475.                   "src": "1624:12:3",
  2476.                   "stateVariable": false,
  2477.                   "storageLocation": "default",
  2478.                   "typeDescriptions": {
  2479.                     "typeIdentifier": "t_uint256",
  2480.                     "typeString": "uint256"
  2481.                   },
  2482.                   "typeName": {
  2483.                     "id": 885,
  2484.                     "name": "uint",
  2485.                     "nodeType": "ElementaryTypeName",
  2486.                     "src": "1624:4:3",
  2487.                     "typeDescriptions": {
  2488.                       "typeIdentifier": "t_uint256",
  2489.                       "typeString": "uint256"
  2490.                     }
  2491.                   },
  2492.                   "value": null,
  2493.                   "visibility": "internal"
  2494.                 }
  2495.               ],
  2496.               "src": "1581:56:3"
  2497.             },
  2498.             "returnParameters": {
  2499.               "id": 890,
  2500.               "nodeType": "ParameterList",
  2501.               "parameters": [
  2502.                 {
  2503.                   "constant": false,
  2504.                   "id": 889,
  2505.                   "name": "_receivedAmount",
  2506.                   "nodeType": "VariableDeclaration",
  2507.                   "scope": 946,
  2508.                   "src": "1670:20:3",
  2509.                   "stateVariable": false,
  2510.                   "storageLocation": "default",
  2511.                   "typeDescriptions": {
  2512.                     "typeIdentifier": "t_uint256",
  2513.                     "typeString": "uint256"
  2514.                   },
  2515.                   "typeName": {
  2516.                     "id": 888,
  2517.                     "name": "uint",
  2518.                     "nodeType": "ElementaryTypeName",
  2519.                     "src": "1670:4:3",
  2520.                     "typeDescriptions": {
  2521.                       "typeIdentifier": "t_uint256",
  2522.                       "typeString": "uint256"
  2523.                     }
  2524.                   },
  2525.                   "value": null,
  2526.                   "visibility": "internal"
  2527.                 }
  2528.               ],
  2529.               "src": "1669:22:3"
  2530.             },
  2531.             "scope": 947,
  2532.             "src": "1556:1023:3",
  2533.             "stateMutability": "nonpayable",
  2534.             "superFunction": null,
  2535.             "visibility": "public"
  2536.           }
  2537.         ],
  2538.         "scope": 1138,
  2539.         "src": "1022:1559:3"
  2540.       },
  2541.       {
  2542.         "baseContracts": [
  2543.           {
  2544.             "arguments": null,
  2545.             "baseName": {
  2546.               "contractScope": null,
  2547.               "id": 948,
  2548.               "name": "KyberTrader",
  2549.               "nodeType": "UserDefinedTypeName",
  2550.               "referencedDeclaration": 947,
  2551.               "src": "2604:11:3",
  2552.               "typeDescriptions": {
  2553.                 "typeIdentifier": "t_contract$_KyberTrader_$947",
  2554.                 "typeString": "contract KyberTrader"
  2555.               }
  2556.             },
  2557.             "id": 949,
  2558.             "nodeType": "InheritanceSpecifier",
  2559.             "src": "2604:11:3"
  2560.           }
  2561.         ],
  2562.         "contractDependencies": [
  2563.           947
  2564.         ],
  2565.         "contractKind": "contract",
  2566.         "documentation": null,
  2567.         "fullyImplemented": true,
  2568.         "id": 1122,
  2569.         "linearizedBaseContracts": [
  2570.           1122,
  2571.           947
  2572.         ],
  2573.         "name": "EntryBot",
  2574.         "nodeType": "ContractDefinition",
  2575.         "nodes": [
  2576.           {
  2577.             "constant": false,
  2578.             "id": 951,
  2579.             "name": "bucketSale",
  2580.             "nodeType": "VariableDeclaration",
  2581.             "scope": 1122,
  2582.             "src": "2622:21:3",
  2583.             "stateVariable": true,
  2584.             "storageLocation": "default",
  2585.             "typeDescriptions": {
  2586.               "typeIdentifier": "t_contract$_BucketSale_$807",
  2587.               "typeString": "contract BucketSale"
  2588.             },
  2589.             "typeName": {
  2590.               "contractScope": null,
  2591.               "id": 950,
  2592.               "name": "BucketSale",
  2593.               "nodeType": "UserDefinedTypeName",
  2594.               "referencedDeclaration": 807,
  2595.               "src": "2622:10:3",
  2596.               "typeDescriptions": {
  2597.                 "typeIdentifier": "t_contract$_BucketSale_$807",
  2598.                 "typeString": "contract BucketSale"
  2599.               }
  2600.             },
  2601.             "value": null,
  2602.             "visibility": "internal"
  2603.           },
  2604.           {
  2605.             "body": {
  2606.               "id": 986,
  2607.               "nodeType": "Block",
  2608.               "src": "2747:207:3",
  2609.               "statements": [
  2610.                 {
  2611.                   "expression": {
  2612.                     "argumentTypes": null,
  2613.                     "id": 960,
  2614.                     "isConstant": false,
  2615.                     "isLValue": false,
  2616.                     "isPure": false,
  2617.                     "lValueRequested": false,
  2618.                     "leftHandSide": {
  2619.                       "argumentTypes": null,
  2620.                       "id": 958,
  2621.                       "name": "bucketSale",
  2622.                       "nodeType": "Identifier",
  2623.                       "overloadedDeclarations": [],
  2624.                       "referencedDeclaration": 951,
  2625.                       "src": "2757:10:3",
  2626.                       "typeDescriptions": {
  2627.                         "typeIdentifier": "t_contract$_BucketSale_$807",
  2628.                         "typeString": "contract BucketSale"
  2629.                       }
  2630.                     },
  2631.                     "nodeType": "Assignment",
  2632.                     "operator": "=",
  2633.                     "rightHandSide": {
  2634.                       "argumentTypes": null,
  2635.                       "id": 959,
  2636.                       "name": "_bucketSale",
  2637.                       "nodeType": "Identifier",
  2638.                       "overloadedDeclarations": [],
  2639.                       "referencedDeclaration": 953,
  2640.                       "src": "2770:11:3",
  2641.                       "typeDescriptions": {
  2642.                         "typeIdentifier": "t_contract$_BucketSale_$807",
  2643.                         "typeString": "contract BucketSale"
  2644.                       }
  2645.                     },
  2646.                     "src": "2757:24:3",
  2647.                     "typeDescriptions": {
  2648.                       "typeIdentifier": "t_contract$_BucketSale_$807",
  2649.                       "typeString": "contract BucketSale"
  2650.                     }
  2651.                   },
  2652.                   "id": 961,
  2653.                   "nodeType": "ExpressionStatement",
  2654.                   "src": "2757:24:3"
  2655.                 },
  2656.                 {
  2657.                   "expression": {
  2658.                     "argumentTypes": null,
  2659.                     "id": 966,
  2660.                     "isConstant": false,
  2661.                     "isLValue": false,
  2662.                     "isPure": false,
  2663.                     "lValueRequested": false,
  2664.                     "leftHandSide": {
  2665.                       "argumentTypes": null,
  2666.                       "id": 962,
  2667.                       "name": "mcdDai",
  2668.                       "nodeType": "Identifier",
  2669.                       "overloadedDeclarations": [],
  2670.                       "referencedDeclaration": 850,
  2671.                       "src": "2791:6:3",
  2672.                       "typeDescriptions": {
  2673.                         "typeIdentifier": "t_contract$_ERC20_$790",
  2674.                         "typeString": "contract ERC20"
  2675.                       }
  2676.                     },
  2677.                     "nodeType": "Assignment",
  2678.                     "operator": "=",
  2679.                     "rightHandSide": {
  2680.                       "argumentTypes": null,
  2681.                       "arguments": [],
  2682.                       "expression": {
  2683.                         "argumentTypes": [],
  2684.                         "expression": {
  2685.                           "argumentTypes": null,
  2686.                           "id": 963,
  2687.                           "name": "bucketSale",
  2688.                           "nodeType": "Identifier",
  2689.                           "overloadedDeclarations": [],
  2690.                           "referencedDeclaration": 951,
  2691.                           "src": "2800:10:3",
  2692.                           "typeDescriptions": {
  2693.                             "typeIdentifier": "t_contract$_BucketSale_$807",
  2694.                             "typeString": "contract BucketSale"
  2695.                           }
  2696.                         },
  2697.                         "id": 964,
  2698.                         "isConstant": false,
  2699.                         "isLValue": false,
  2700.                         "isPure": false,
  2701.                         "lValueRequested": false,
  2702.                         "memberName": "tokenSoldFor",
  2703.                         "nodeType": "MemberAccess",
  2704.                         "referencedDeclaration": 795,
  2705.                         "src": "2800:23:3",
  2706.                         "typeDescriptions": {
  2707.                           "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_contract$_ERC20_$790_$",
  2708.                           "typeString": "function () external returns (contract ERC20)"
  2709.                         }
  2710.                       },
  2711.                       "id": 965,
  2712.                       "isConstant": false,
  2713.                       "isLValue": false,
  2714.                       "isPure": false,
  2715.                       "kind": "functionCall",
  2716.                       "lValueRequested": false,
  2717.                       "names": [],
  2718.                       "nodeType": "FunctionCall",
  2719.                       "src": "2800:25:3",
  2720.                       "typeDescriptions": {
  2721.                         "typeIdentifier": "t_contract$_ERC20_$790",
  2722.                         "typeString": "contract ERC20"
  2723.                       }
  2724.                     },
  2725.                     "src": "2791:34:3",
  2726.                     "typeDescriptions": {
  2727.                       "typeIdentifier": "t_contract$_ERC20_$790",
  2728.                       "typeString": "contract ERC20"
  2729.                     }
  2730.                   },
  2731.                   "id": 967,
  2732.                   "nodeType": "ExpressionStatement",
  2733.                   "src": "2791:34:3"
  2734.                 },
  2735.                 {
  2736.                   "expression": {
  2737.                     "argumentTypes": null,
  2738.                     "id": 970,
  2739.                     "isConstant": false,
  2740.                     "isLValue": false,
  2741.                     "isPure": false,
  2742.                     "lValueRequested": false,
  2743.                     "leftHandSide": {
  2744.                       "argumentTypes": null,
  2745.                       "id": 968,
  2746.                       "name": "kyberNetworkProxy",
  2747.                       "nodeType": "Identifier",
  2748.                       "overloadedDeclarations": [],
  2749.                       "referencedDeclaration": 848,
  2750.                       "src": "2835:17:3",
  2751.                       "typeDescriptions": {
  2752.                         "typeIdentifier": "t_contract$_KyberNetworkInterface_$843",
  2753.                         "typeString": "contract KyberNetworkInterface"
  2754.                       }
  2755.                     },
  2756.                     "nodeType": "Assignment",
  2757.                     "operator": "=",
  2758.                     "rightHandSide": {
  2759.                       "argumentTypes": null,
  2760.                       "id": 969,
  2761.                       "name": "_kyberNetworkProxy",
  2762.                       "nodeType": "Identifier",
  2763.                       "overloadedDeclarations": [],
  2764.                       "referencedDeclaration": 955,
  2765.                       "src": "2855:18:3",
  2766.                       "typeDescriptions": {
  2767.                         "typeIdentifier": "t_contract$_KyberNetworkInterface_$843",
  2768.                         "typeString": "contract KyberNetworkInterface"
  2769.                       }
  2770.                     },
  2771.                     "src": "2835:38:3",
  2772.                     "typeDescriptions": {
  2773.                       "typeIdentifier": "t_contract$_KyberNetworkInterface_$843",
  2774.                       "typeString": "contract KyberNetworkInterface"
  2775.                     }
  2776.                   },
  2777.                   "id": 971,
  2778.                   "nodeType": "ExpressionStatement",
  2779.                   "src": "2835:38:3"
  2780.                 },
  2781.                 {
  2782.                   "expression": {
  2783.                     "argumentTypes": null,
  2784.                     "arguments": [
  2785.                       {
  2786.                         "argumentTypes": null,
  2787.                         "arguments": [
  2788.                           {
  2789.                             "argumentTypes": null,
  2790.                             "id": 978,
  2791.                             "name": "bucketSale",
  2792.                             "nodeType": "Identifier",
  2793.                             "overloadedDeclarations": [],
  2794.                             "referencedDeclaration": 951,
  2795.                             "src": "2925:10:3",
  2796.                             "typeDescriptions": {
  2797.                               "typeIdentifier": "t_contract$_BucketSale_$807",
  2798.                               "typeString": "contract BucketSale"
  2799.                             }
  2800.                           }
  2801.                         ],
  2802.                         "expression": {
  2803.                           "argumentTypes": [
  2804.                             {
  2805.                               "typeIdentifier": "t_contract$_BucketSale_$807",
  2806.                               "typeString": "contract BucketSale"
  2807.                             }
  2808.                           ],
  2809.                           "id": 977,
  2810.                           "isConstant": false,
  2811.                           "isLValue": false,
  2812.                           "isPure": true,
  2813.                           "lValueRequested": false,
  2814.                           "nodeType": "ElementaryTypeNameExpression",
  2815.                           "src": "2917:7:3",
  2816.                           "typeDescriptions": {
  2817.                             "typeIdentifier": "t_type$_t_address_$",
  2818.                             "typeString": "type(address)"
  2819.                           },
  2820.                           "typeName": "address"
  2821.                         },
  2822.                         "id": 979,
  2823.                         "isConstant": false,
  2824.                         "isLValue": false,
  2825.                         "isPure": false,
  2826.                         "kind": "typeConversion",
  2827.                         "lValueRequested": false,
  2828.                         "names": [],
  2829.                         "nodeType": "FunctionCall",
  2830.                         "src": "2917:19:3",
  2831.                         "typeDescriptions": {
  2832.                           "typeIdentifier": "t_address",
  2833.                           "typeString": "address"
  2834.                         }
  2835.                       },
  2836.                       {
  2837.                         "argumentTypes": null,
  2838.                         "arguments": [
  2839.                           {
  2840.                             "argumentTypes": null,
  2841.                             "id": 982,
  2842.                             "isConstant": false,
  2843.                             "isLValue": false,
  2844.                             "isPure": true,
  2845.                             "lValueRequested": false,
  2846.                             "nodeType": "UnaryOperation",
  2847.                             "operator": "-",
  2848.                             "prefix": true,
  2849.                             "src": "2943:2:3",
  2850.                             "subExpression": {
  2851.                               "argumentTypes": null,
  2852.                               "hexValue": "31",
  2853.                               "id": 981,
  2854.                               "isConstant": false,
  2855.                               "isLValue": false,
  2856.                               "isPure": true,
  2857.                               "kind": "number",
  2858.                               "lValueRequested": false,
  2859.                               "nodeType": "Literal",
  2860.                               "src": "2944:1:3",
  2861.                               "subdenomination": null,
  2862.                               "typeDescriptions": {
  2863.                                 "typeIdentifier": "t_rational_1_by_1",
  2864.                                 "typeString": "int_const 1"
  2865.                               },
  2866.                               "value": "1"
  2867.                             },
  2868.                             "typeDescriptions": {
  2869.                               "typeIdentifier": "t_rational_minus_1_by_1",
  2870.                               "typeString": "int_const -1"
  2871.                             }
  2872.                           }
  2873.                         ],
  2874.                         "expression": {
  2875.                           "argumentTypes": [
  2876.                             {
  2877.                               "typeIdentifier": "t_rational_minus_1_by_1",
  2878.                               "typeString": "int_const -1"
  2879.                             }
  2880.                           ],
  2881.                           "id": 980,
  2882.                           "isConstant": false,
  2883.                           "isLValue": false,
  2884.                           "isPure": true,
  2885.                           "lValueRequested": false,
  2886.                           "nodeType": "ElementaryTypeNameExpression",
  2887.                           "src": "2938:4:3",
  2888.                           "typeDescriptions": {
  2889.                             "typeIdentifier": "t_type$_t_uint256_$",
  2890.                             "typeString": "type(uint256)"
  2891.                           },
  2892.                           "typeName": "uint"
  2893.                         },
  2894.                         "id": 983,
  2895.                         "isConstant": false,
  2896.                         "isLValue": false,
  2897.                         "isPure": true,
  2898.                         "kind": "typeConversion",
  2899.                         "lValueRequested": false,
  2900.                         "names": [],
  2901.                         "nodeType": "FunctionCall",
  2902.                         "src": "2938:8:3",
  2903.                         "typeDescriptions": {
  2904.                           "typeIdentifier": "t_uint256",
  2905.                           "typeString": "uint256"
  2906.                         }
  2907.                       }
  2908.                     ],
  2909.                     "expression": {
  2910.                       "argumentTypes": [
  2911.                         {
  2912.                           "typeIdentifier": "t_address",
  2913.                           "typeString": "address"
  2914.                         },
  2915.                         {
  2916.                           "typeIdentifier": "t_uint256",
  2917.                           "typeString": "uint256"
  2918.                         }
  2919.                       ],
  2920.                       "expression": {
  2921.                         "argumentTypes": null,
  2922.                         "arguments": [],
  2923.                         "expression": {
  2924.                           "argumentTypes": [],
  2925.                           "expression": {
  2926.                             "argumentTypes": null,
  2927.                             "id": 972,
  2928.                             "name": "bucketSale",
  2929.                             "nodeType": "Identifier",
  2930.                             "overloadedDeclarations": [],
  2931.                             "referencedDeclaration": 951,
  2932.                             "src": "2883:10:3",
  2933.                             "typeDescriptions": {
  2934.                               "typeIdentifier": "t_contract$_BucketSale_$807",
  2935.                               "typeString": "contract BucketSale"
  2936.                             }
  2937.                           },
  2938.                           "id": 974,
  2939.                           "isConstant": false,
  2940.                           "isLValue": false,
  2941.                           "isPure": false,
  2942.                           "lValueRequested": false,
  2943.                           "memberName": "tokenSoldFor",
  2944.                           "nodeType": "MemberAccess",
  2945.                           "referencedDeclaration": 795,
  2946.                           "src": "2883:23:3",
  2947.                           "typeDescriptions": {
  2948.                             "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_contract$_ERC20_$790_$",
  2949.                             "typeString": "function () external returns (contract ERC20)"
  2950.                           }
  2951.                         },
  2952.                         "id": 975,
  2953.                         "isConstant": false,
  2954.                         "isLValue": false,
  2955.                         "isPure": false,
  2956.                         "kind": "functionCall",
  2957.                         "lValueRequested": false,
  2958.                         "names": [],
  2959.                         "nodeType": "FunctionCall",
  2960.                         "src": "2883:25:3",
  2961.                         "typeDescriptions": {
  2962.                           "typeIdentifier": "t_contract$_ERC20_$790",
  2963.                           "typeString": "contract ERC20"
  2964.                         }
  2965.                       },
  2966.                       "id": 976,
  2967.                       "isConstant": false,
  2968.                       "isLValue": false,
  2969.                       "isPure": false,
  2970.                       "lValueRequested": false,
  2971.                       "memberName": "approve",
  2972.                       "nodeType": "MemberAccess",
  2973.                       "referencedDeclaration": 778,
  2974.                       "src": "2883:33:3",
  2975.                       "typeDescriptions": {
  2976.                         "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
  2977.                         "typeString": "function (address,uint256) external returns (bool)"
  2978.                       }
  2979.                     },
  2980.                     "id": 984,
  2981.                     "isConstant": false,
  2982.                     "isLValue": false,
  2983.                     "isPure": false,
  2984.                     "kind": "functionCall",
  2985.                     "lValueRequested": false,
  2986.                     "names": [],
  2987.                     "nodeType": "FunctionCall",
  2988.                     "src": "2883:64:3",
  2989.                     "typeDescriptions": {
  2990.                       "typeIdentifier": "t_bool",
  2991.                       "typeString": "bool"
  2992.                     }
  2993.                   },
  2994.                   "id": 985,
  2995.                   "nodeType": "ExpressionStatement",
  2996.                   "src": "2883:64:3"
  2997.                 }
  2998.               ]
  2999.             },
  3000.             "documentation": null,
  3001.             "id": 987,
  3002.             "implemented": true,
  3003.             "kind": "constructor",
  3004.             "modifiers": [],
  3005.             "name": "",
  3006.             "nodeType": "FunctionDefinition",
  3007.             "parameters": {
  3008.               "id": 956,
  3009.               "nodeType": "ParameterList",
  3010.               "parameters": [
  3011.                 {
  3012.                   "constant": false,
  3013.                   "id": 953,
  3014.                   "name": "_bucketSale",
  3015.                   "nodeType": "VariableDeclaration",
  3016.                   "scope": 987,
  3017.                   "src": "2662:22:3",
  3018.                   "stateVariable": false,
  3019.                   "storageLocation": "default",
  3020.                   "typeDescriptions": {
  3021.                     "typeIdentifier": "t_contract$_BucketSale_$807",
  3022.                     "typeString": "contract BucketSale"
  3023.                   },
  3024.                   "typeName": {
  3025.                     "contractScope": null,
  3026.                     "id": 952,
  3027.                     "name": "BucketSale",
  3028.                     "nodeType": "UserDefinedTypeName",
  3029.                     "referencedDeclaration": 807,
  3030.                     "src": "2662:10:3",
  3031.                     "typeDescriptions": {
  3032.                       "typeIdentifier": "t_contract$_BucketSale_$807",
  3033.                       "typeString": "contract BucketSale"
  3034.                     }
  3035.                   },
  3036.                   "value": null,
  3037.                   "visibility": "internal"
  3038.                 },
  3039.                 {
  3040.                   "constant": false,
  3041.                   "id": 955,
  3042.                   "name": "_kyberNetworkProxy",
  3043.                   "nodeType": "VariableDeclaration",
  3044.                   "scope": 987,
  3045.                   "src": "2686:40:3",
  3046.                   "stateVariable": false,
  3047.                   "storageLocation": "default",
  3048.                   "typeDescriptions": {
  3049.                     "typeIdentifier": "t_contract$_KyberNetworkInterface_$843",
  3050.                     "typeString": "contract KyberNetworkInterface"
  3051.                   },
  3052.                   "typeName": {
  3053.                     "contractScope": null,
  3054.                     "id": 954,
  3055.                     "name": "KyberNetworkInterface",
  3056.                     "nodeType": "UserDefinedTypeName",
  3057.                     "referencedDeclaration": 843,
  3058.                     "src": "2686:21:3",
  3059.                     "typeDescriptions": {
  3060.                       "typeIdentifier": "t_contract$_KyberNetworkInterface_$843",
  3061.                       "typeString": "contract KyberNetworkInterface"
  3062.                     }
  3063.                   },
  3064.                   "value": null,
  3065.                   "visibility": "internal"
  3066.                 }
  3067.               ],
  3068.               "src": "2661:66:3"
  3069.             },
  3070.             "returnParameters": {
  3071.               "id": 957,
  3072.               "nodeType": "ParameterList",
  3073.               "parameters": [],
  3074.               "src": "2747:0:3"
  3075.             },
  3076.             "scope": 1122,
  3077.             "src": "2650:304:3",
  3078.             "stateMutability": "nonpayable",
  3079.             "superFunction": null,
  3080.             "visibility": "public"
  3081.           },
  3082.           {
  3083.             "body": {
  3084.               "id": 1011,
  3085.               "nodeType": "Block",
  3086.               "src": "3204:196:3",
  3087.               "statements": [
  3088.                 {
  3089.                   "assignments": [
  3090.                     999
  3091.                   ],
  3092.                   "declarations": [
  3093.                     {
  3094.                       "constant": false,
  3095.                       "id": 999,
  3096.                       "name": "receivedDai",
  3097.                       "nodeType": "VariableDeclaration",
  3098.                       "scope": 1011,
  3099.                       "src": "3214:16:3",
  3100.                       "stateVariable": false,
  3101.                       "storageLocation": "default",
  3102.                       "typeDescriptions": {
  3103.                         "typeIdentifier": "t_uint256",
  3104.                         "typeString": "uint256"
  3105.                       },
  3106.                       "typeName": {
  3107.                         "id": 998,
  3108.                         "name": "uint",
  3109.                         "nodeType": "ElementaryTypeName",
  3110.                         "src": "3214:4:3",
  3111.                         "typeDescriptions": {
  3112.                           "typeIdentifier": "t_uint256",
  3113.                           "typeString": "uint256"
  3114.                         }
  3115.                       },
  3116.                       "value": null,
  3117.                       "visibility": "internal"
  3118.                     }
  3119.                   ],
  3120.                   "id": 1002,
  3121.                   "initialValue": {
  3122.                     "argumentTypes": null,
  3123.                     "arguments": [],
  3124.                     "expression": {
  3125.                       "argumentTypes": [],
  3126.                       "id": 1000,
  3127.                       "name": "swapEtherToToken",
  3128.                       "nodeType": "Identifier",
  3129.                       "overloadedDeclarations": [],
  3130.                       "referencedDeclaration": 882,
  3131.                       "src": "3233:16:3",
  3132.                       "typeDescriptions": {
  3133.                         "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_uint256_$",
  3134.                         "typeString": "function () returns (uint256)"
  3135.                       }
  3136.                     },
  3137.                     "id": 1001,
  3138.                     "isConstant": false,
  3139.                     "isLValue": false,
  3140.                     "isPure": false,
  3141.                     "kind": "functionCall",
  3142.                     "lValueRequested": false,
  3143.                     "names": [],
  3144.                     "nodeType": "FunctionCall",
  3145.                     "src": "3233:18:3",
  3146.                     "typeDescriptions": {
  3147.                       "typeIdentifier": "t_uint256",
  3148.                       "typeString": "uint256"
  3149.                     }
  3150.                   },
  3151.                   "nodeType": "VariableDeclarationStatement",
  3152.                   "src": "3214:37:3"
  3153.                 },
  3154.                 {
  3155.                   "expression": {
  3156.                     "argumentTypes": null,
  3157.                     "arguments": [
  3158.                       {
  3159.                         "argumentTypes": null,
  3160.                         "id": 1004,
  3161.                         "name": "_buyer",
  3162.                         "nodeType": "Identifier",
  3163.                         "overloadedDeclarations": [],
  3164.                         "referencedDeclaration": 989,
  3165.                         "src": "3285:6:3",
  3166.                         "typeDescriptions": {
  3167.                           "typeIdentifier": "t_address",
  3168.                           "typeString": "address"
  3169.                         }
  3170.                       },
  3171.                       {
  3172.                         "argumentTypes": null,
  3173.                         "id": 1005,
  3174.                         "name": "_bucketId",
  3175.                         "nodeType": "Identifier",
  3176.                         "overloadedDeclarations": [],
  3177.                         "referencedDeclaration": 991,
  3178.                         "src": "3305:9:3",
  3179.                         "typeDescriptions": {
  3180.                           "typeIdentifier": "t_uint256",
  3181.                           "typeString": "uint256"
  3182.                         }
  3183.                       },
  3184.                       {
  3185.                         "argumentTypes": null,
  3186.                         "id": 1006,
  3187.                         "name": "receivedDai",
  3188.                         "nodeType": "Identifier",
  3189.                         "overloadedDeclarations": [],
  3190.                         "referencedDeclaration": 999,
  3191.                         "src": "3328:11:3",
  3192.                         "typeDescriptions": {
  3193.                           "typeIdentifier": "t_uint256",
  3194.                           "typeString": "uint256"
  3195.                         }
  3196.                       },
  3197.                       {
  3198.                         "argumentTypes": null,
  3199.                         "id": 1007,
  3200.                         "name": "_numberOfBuckets",
  3201.                         "nodeType": "Identifier",
  3202.                         "overloadedDeclarations": [],
  3203.                         "referencedDeclaration": 993,
  3204.                         "src": "3353:16:3",
  3205.                         "typeDescriptions": {
  3206.                           "typeIdentifier": "t_uint256",
  3207.                           "typeString": "uint256"
  3208.                         }
  3209.                       },
  3210.                       {
  3211.                         "argumentTypes": null,
  3212.                         "id": 1008,
  3213.                         "name": "_referrer",
  3214.                         "nodeType": "Identifier",
  3215.                         "overloadedDeclarations": [],
  3216.                         "referencedDeclaration": 995,
  3217.                         "src": "3383:9:3",
  3218.                         "typeDescriptions": {
  3219.                           "typeIdentifier": "t_address",
  3220.                           "typeString": "address"
  3221.                         }
  3222.                       }
  3223.                     ],
  3224.                     "expression": {
  3225.                       "argumentTypes": [
  3226.                         {
  3227.                           "typeIdentifier": "t_address",
  3228.                           "typeString": "address"
  3229.                         },
  3230.                         {
  3231.                           "typeIdentifier": "t_uint256",
  3232.                           "typeString": "uint256"
  3233.                         },
  3234.                         {
  3235.                           "typeIdentifier": "t_uint256",
  3236.                           "typeString": "uint256"
  3237.                         },
  3238.                         {
  3239.                           "typeIdentifier": "t_uint256",
  3240.                           "typeString": "uint256"
  3241.                         },
  3242.                         {
  3243.                           "typeIdentifier": "t_address",
  3244.                           "typeString": "address"
  3245.                         }
  3246.                       ],
  3247.                       "id": 1003,
  3248.                       "name": "_enterSale",
  3249.                       "nodeType": "Identifier",
  3250.                       "overloadedDeclarations": [],
  3251.                       "referencedDeclaration": 1121,
  3252.                       "src": "3261:10:3",
  3253.                       "typeDescriptions": {
  3254.                         "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$returns$__$",
  3255.                         "typeString": "function (address,uint256,uint256,uint256,address)"
  3256.                       }
  3257.                     },
  3258.                     "id": 1009,
  3259.                     "isConstant": false,
  3260.                     "isLValue": false,
  3261.                     "isPure": false,
  3262.                     "kind": "functionCall",
  3263.                     "lValueRequested": false,
  3264.                     "names": [],
  3265.                     "nodeType": "FunctionCall",
  3266.                     "src": "3261:132:3",
  3267.                     "typeDescriptions": {
  3268.                       "typeIdentifier": "t_tuple$__$",
  3269.                       "typeString": "tuple()"
  3270.                     }
  3271.                   },
  3272.                   "id": 1010,
  3273.                   "nodeType": "ExpressionStatement",
  3274.                   "src": "3261:132:3"
  3275.                 }
  3276.               ]
  3277.             },
  3278.             "documentation": null,
  3279.             "id": 1012,
  3280.             "implemented": true,
  3281.             "kind": "function",
  3282.             "modifiers": [],
  3283.             "name": "agreeToTermsAndConditionsListedInThisBucketSaleContractAndEnterSaleWithEther",
  3284.             "nodeType": "FunctionDefinition",
  3285.             "parameters": {
  3286.               "id": 996,
  3287.               "nodeType": "ParameterList",
  3288.               "parameters": [
  3289.                 {
  3290.                   "constant": false,
  3291.                   "id": 989,
  3292.                   "name": "_buyer",
  3293.                   "nodeType": "VariableDeclaration",
  3294.                   "scope": 1012,
  3295.                   "src": "3059:14:3",
  3296.                   "stateVariable": false,
  3297.                   "storageLocation": "default",
  3298.                   "typeDescriptions": {
  3299.                     "typeIdentifier": "t_address",
  3300.                     "typeString": "address"
  3301.                   },
  3302.                   "typeName": {
  3303.                     "id": 988,
  3304.                     "name": "address",
  3305.                     "nodeType": "ElementaryTypeName",
  3306.                     "src": "3059:7:3",
  3307.                     "stateMutability": "nonpayable",
  3308.                     "typeDescriptions": {
  3309.                       "typeIdentifier": "t_address",
  3310.                       "typeString": "address"
  3311.                     }
  3312.                   },
  3313.                   "value": null,
  3314.                   "visibility": "internal"
  3315.                 },
  3316.                 {
  3317.                   "constant": false,
  3318.                   "id": 991,
  3319.                   "name": "_bucketId",
  3320.                   "nodeType": "VariableDeclaration",
  3321.                   "scope": 1012,
  3322.                   "src": "3087:14:3",
  3323.                   "stateVariable": false,
  3324.                   "storageLocation": "default",
  3325.                   "typeDescriptions": {
  3326.                     "typeIdentifier": "t_uint256",
  3327.                     "typeString": "uint256"
  3328.                   },
  3329.                   "typeName": {
  3330.                     "id": 990,
  3331.                     "name": "uint",
  3332.                     "nodeType": "ElementaryTypeName",
  3333.                     "src": "3087:4:3",
  3334.                     "typeDescriptions": {
  3335.                       "typeIdentifier": "t_uint256",
  3336.                       "typeString": "uint256"
  3337.                     }
  3338.                   },
  3339.                   "value": null,
  3340.                   "visibility": "internal"
  3341.                 },
  3342.                 {
  3343.                   "constant": false,
  3344.                   "id": 993,
  3345.                   "name": "_numberOfBuckets",
  3346.                   "nodeType": "VariableDeclaration",
  3347.                   "scope": 1012,
  3348.                   "src": "3115:21:3",
  3349.                   "stateVariable": false,
  3350.                   "storageLocation": "default",
  3351.                   "typeDescriptions": {
  3352.                     "typeIdentifier": "t_uint256",
  3353.                     "typeString": "uint256"
  3354.                   },
  3355.                   "typeName": {
  3356.                     "id": 992,
  3357.                     "name": "uint",
  3358.                     "nodeType": "ElementaryTypeName",
  3359.                     "src": "3115:4:3",
  3360.                     "typeDescriptions": {
  3361.                       "typeIdentifier": "t_uint256",
  3362.                       "typeString": "uint256"
  3363.                     }
  3364.                   },
  3365.                   "value": null,
  3366.                   "visibility": "internal"
  3367.                 },
  3368.                 {
  3369.                   "constant": false,
  3370.                   "id": 995,
  3371.                   "name": "_referrer",
  3372.                   "nodeType": "VariableDeclaration",
  3373.                   "scope": 1012,
  3374.                   "src": "3150:17:3",
  3375.                   "stateVariable": false,
  3376.                   "storageLocation": "default",
  3377.                   "typeDescriptions": {
  3378.                     "typeIdentifier": "t_address",
  3379.                     "typeString": "address"
  3380.                   },
  3381.                   "typeName": {
  3382.                     "id": 994,
  3383.                     "name": "address",
  3384.                     "nodeType": "ElementaryTypeName",
  3385.                     "src": "3150:7:3",
  3386.                     "stateMutability": "nonpayable",
  3387.                     "typeDescriptions": {
  3388.                       "typeIdentifier": "t_address",
  3389.                       "typeString": "address"
  3390.                     }
  3391.                   },
  3392.                   "value": null,
  3393.                   "visibility": "internal"
  3394.                 }
  3395.               ],
  3396.               "src": "3045:123:3"
  3397.             },
  3398.             "returnParameters": {
  3399.               "id": 997,
  3400.               "nodeType": "ParameterList",
  3401.               "parameters": [],
  3402.               "src": "3204:0:3"
  3403.             },
  3404.             "scope": 1122,
  3405.             "src": "2960:440:3",
  3406.             "stateMutability": "payable",
  3407.             "superFunction": null,
  3408.             "visibility": "public"
  3409.           },
  3410.           {
  3411.             "body": {
  3412.               "id": 1042,
  3413.               "nodeType": "Block",
  3414.               "src": "3694:219:3",
  3415.               "statements": [
  3416.                 {
  3417.                   "assignments": [
  3418.                     1028
  3419.                   ],
  3420.                   "declarations": [
  3421.                     {
  3422.                       "constant": false,
  3423.                       "id": 1028,
  3424.                       "name": "receivedDai",
  3425.                       "nodeType": "VariableDeclaration",
  3426.                       "scope": 1042,
  3427.                       "src": "3704:16:3",
  3428.                       "stateVariable": false,
  3429.                       "storageLocation": "default",
  3430.                       "typeDescriptions": {
  3431.                         "typeIdentifier": "t_uint256",
  3432.                         "typeString": "uint256"
  3433.                       },
  3434.                       "typeName": {
  3435.                         "id": 1027,
  3436.                         "name": "uint",
  3437.                         "nodeType": "ElementaryTypeName",
  3438.                         "src": "3704:4:3",
  3439.                         "typeDescriptions": {
  3440.                           "typeIdentifier": "t_uint256",
  3441.                           "typeString": "uint256"
  3442.                         }
  3443.                       },
  3444.                       "value": null,
  3445.                       "visibility": "internal"
  3446.                     }
  3447.                   ],
  3448.                   "id": 1033,
  3449.                   "initialValue": {
  3450.                     "argumentTypes": null,
  3451.                     "arguments": [
  3452.                       {
  3453.                         "argumentTypes": null,
  3454.                         "id": 1030,
  3455.                         "name": "_Erc20",
  3456.                         "nodeType": "Identifier",
  3457.                         "overloadedDeclarations": [],
  3458.                         "referencedDeclaration": 1018,
  3459.                         "src": "3740:6:3",
  3460.                         "typeDescriptions": {
  3461.                           "typeIdentifier": "t_contract$_ERC20_$790",
  3462.                           "typeString": "contract ERC20"
  3463.                         }
  3464.                       },
  3465.                       {
  3466.                         "argumentTypes": null,
  3467.                         "id": 1031,
  3468.                         "name": "_totalBuyAmount",
  3469.                         "nodeType": "Identifier",
  3470.                         "overloadedDeclarations": [],
  3471.                         "referencedDeclaration": 1020,
  3472.                         "src": "3748:15:3",
  3473.                         "typeDescriptions": {
  3474.                           "typeIdentifier": "t_uint256",
  3475.                           "typeString": "uint256"
  3476.                         }
  3477.                       }
  3478.                     ],
  3479.                     "expression": {
  3480.                       "argumentTypes": [
  3481.                         {
  3482.                           "typeIdentifier": "t_contract$_ERC20_$790",
  3483.                           "typeString": "contract ERC20"
  3484.                         },
  3485.                         {
  3486.                           "typeIdentifier": "t_uint256",
  3487.                           "typeString": "uint256"
  3488.                         }
  3489.                       ],
  3490.                       "id": 1029,
  3491.                       "name": "swapTokenToToken",
  3492.                       "nodeType": "Identifier",
  3493.                       "overloadedDeclarations": [],
  3494.                       "referencedDeclaration": 946,
  3495.                       "src": "3723:16:3",
  3496.                       "typeDescriptions": {
  3497.                         "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_ERC20_$790_$_t_uint256_$returns$_t_uint256_$",
  3498.                         "typeString": "function (contract ERC20,uint256) returns (uint256)"
  3499.                       }
  3500.                     },
  3501.                     "id": 1032,
  3502.                     "isConstant": false,
  3503.                     "isLValue": false,
  3504.                     "isPure": false,
  3505.                     "kind": "functionCall",
  3506.                     "lValueRequested": false,
  3507.                     "names": [],
  3508.                     "nodeType": "FunctionCall",
  3509.                     "src": "3723:41:3",
  3510.                     "typeDescriptions": {
  3511.                       "typeIdentifier": "t_uint256",
  3512.                       "typeString": "uint256"
  3513.                     }
  3514.                   },
  3515.                   "nodeType": "VariableDeclarationStatement",
  3516.                   "src": "3704:60:3"
  3517.                 },
  3518.                 {
  3519.                   "expression": {
  3520.                     "argumentTypes": null,
  3521.                     "arguments": [
  3522.                       {
  3523.                         "argumentTypes": null,
  3524.                         "id": 1035,
  3525.                         "name": "_buyer",
  3526.                         "nodeType": "Identifier",
  3527.                         "overloadedDeclarations": [],
  3528.                         "referencedDeclaration": 1014,
  3529.                         "src": "3798:6:3",
  3530.                         "typeDescriptions": {
  3531.                           "typeIdentifier": "t_address",
  3532.                           "typeString": "address"
  3533.                         }
  3534.                       },
  3535.                       {
  3536.                         "argumentTypes": null,
  3537.                         "id": 1036,
  3538.                         "name": "_bucketId",
  3539.                         "nodeType": "Identifier",
  3540.                         "overloadedDeclarations": [],
  3541.                         "referencedDeclaration": 1016,
  3542.                         "src": "3818:9:3",
  3543.                         "typeDescriptions": {
  3544.                           "typeIdentifier": "t_uint256",
  3545.                           "typeString": "uint256"
  3546.                         }
  3547.                       },
  3548.                       {
  3549.                         "argumentTypes": null,
  3550.                         "id": 1037,
  3551.                         "name": "receivedDai",
  3552.                         "nodeType": "Identifier",
  3553.                         "overloadedDeclarations": [],
  3554.                         "referencedDeclaration": 1028,
  3555.                         "src": "3841:11:3",
  3556.                         "typeDescriptions": {
  3557.                           "typeIdentifier": "t_uint256",
  3558.                           "typeString": "uint256"
  3559.                         }
  3560.                       },
  3561.                       {
  3562.                         "argumentTypes": null,
  3563.                         "id": 1038,
  3564.                         "name": "_numberOfBuckets",
  3565.                         "nodeType": "Identifier",
  3566.                         "overloadedDeclarations": [],
  3567.                         "referencedDeclaration": 1022,
  3568.                         "src": "3866:16:3",
  3569.                         "typeDescriptions": {
  3570.                           "typeIdentifier": "t_uint256",
  3571.                           "typeString": "uint256"
  3572.                         }
  3573.                       },
  3574.                       {
  3575.                         "argumentTypes": null,
  3576.                         "id": 1039,
  3577.                         "name": "_referrer",
  3578.                         "nodeType": "Identifier",
  3579.                         "overloadedDeclarations": [],
  3580.                         "referencedDeclaration": 1024,
  3581.                         "src": "3896:9:3",
  3582.                         "typeDescriptions": {
  3583.                           "typeIdentifier": "t_address",
  3584.                           "typeString": "address"
  3585.                         }
  3586.                       }
  3587.                     ],
  3588.                     "expression": {
  3589.                       "argumentTypes": [
  3590.                         {
  3591.                           "typeIdentifier": "t_address",
  3592.                           "typeString": "address"
  3593.                         },
  3594.                         {
  3595.                           "typeIdentifier": "t_uint256",
  3596.                           "typeString": "uint256"
  3597.                         },
  3598.                         {
  3599.                           "typeIdentifier": "t_uint256",
  3600.                           "typeString": "uint256"
  3601.                         },
  3602.                         {
  3603.                           "typeIdentifier": "t_uint256",
  3604.                           "typeString": "uint256"
  3605.                         },
  3606.                         {
  3607.                           "typeIdentifier": "t_address",
  3608.                           "typeString": "address"
  3609.                         }
  3610.                       ],
  3611.                       "id": 1034,
  3612.                       "name": "_enterSale",
  3613.                       "nodeType": "Identifier",
  3614.                       "overloadedDeclarations": [],
  3615.                       "referencedDeclaration": 1121,
  3616.                       "src": "3774:10:3",
  3617.                       "typeDescriptions": {
  3618.                         "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$returns$__$",
  3619.                         "typeString": "function (address,uint256,uint256,uint256,address)"
  3620.                       }
  3621.                     },
  3622.                     "id": 1040,
  3623.                     "isConstant": false,
  3624.                     "isLValue": false,
  3625.                     "isPure": false,
  3626.                     "kind": "functionCall",
  3627.                     "lValueRequested": false,
  3628.                     "names": [],
  3629.                     "nodeType": "FunctionCall",
  3630.                     "src": "3774:132:3",
  3631.                     "typeDescriptions": {
  3632.                       "typeIdentifier": "t_tuple$__$",
  3633.                       "typeString": "tuple()"
  3634.                     }
  3635.                   },
  3636.                   "id": 1041,
  3637.                   "nodeType": "ExpressionStatement",
  3638.                   "src": "3774:132:3"
  3639.                 }
  3640.               ]
  3641.             },
  3642.             "documentation": null,
  3643.             "id": 1043,
  3644.             "implemented": true,
  3645.             "kind": "function",
  3646.             "modifiers": [],
  3647.             "name": "agreeToTermsAndConditionsListedInThisBucketSaleContractAndEnterSaleWithErc20",
  3648.             "nodeType": "FunctionDefinition",
  3649.             "parameters": {
  3650.               "id": 1025,
  3651.               "nodeType": "ParameterList",
  3652.               "parameters": [
  3653.                 {
  3654.                   "constant": false,
  3655.                   "id": 1014,
  3656.                   "name": "_buyer",
  3657.                   "nodeType": "VariableDeclaration",
  3658.                   "scope": 1043,
  3659.                   "src": "3505:14:3",
  3660.                   "stateVariable": false,
  3661.                   "storageLocation": "default",
  3662.                   "typeDescriptions": {
  3663.                     "typeIdentifier": "t_address",
  3664.                     "typeString": "address"
  3665.                   },
  3666.                   "typeName": {
  3667.                     "id": 1013,
  3668.                     "name": "address",
  3669.                     "nodeType": "ElementaryTypeName",
  3670.                     "src": "3505:7:3",
  3671.                     "stateMutability": "nonpayable",
  3672.                     "typeDescriptions": {
  3673.                       "typeIdentifier": "t_address",
  3674.                       "typeString": "address"
  3675.                     }
  3676.                   },
  3677.                   "value": null,
  3678.                   "visibility": "internal"
  3679.                 },
  3680.                 {
  3681.                   "constant": false,
  3682.                   "id": 1016,
  3683.                   "name": "_bucketId",
  3684.                   "nodeType": "VariableDeclaration",
  3685.                   "scope": 1043,
  3686.                   "src": "3533:14:3",
  3687.                   "stateVariable": false,
  3688.                   "storageLocation": "default",
  3689.                   "typeDescriptions": {
  3690.                     "typeIdentifier": "t_uint256",
  3691.                     "typeString": "uint256"
  3692.                   },
  3693.                   "typeName": {
  3694.                     "id": 1015,
  3695.                     "name": "uint",
  3696.                     "nodeType": "ElementaryTypeName",
  3697.                     "src": "3533:4:3",
  3698.                     "typeDescriptions": {
  3699.                       "typeIdentifier": "t_uint256",
  3700.                       "typeString": "uint256"
  3701.                     }
  3702.                   },
  3703.                   "value": null,
  3704.                   "visibility": "internal"
  3705.                 },
  3706.                 {
  3707.                   "constant": false,
  3708.                   "id": 1018,
  3709.                   "name": "_Erc20",
  3710.                   "nodeType": "VariableDeclaration",
  3711.                   "scope": 1043,
  3712.                   "src": "3561:12:3",
  3713.                   "stateVariable": false,
  3714.                   "storageLocation": "default",
  3715.                   "typeDescriptions": {
  3716.                     "typeIdentifier": "t_contract$_ERC20_$790",
  3717.                     "typeString": "contract ERC20"
  3718.                   },
  3719.                   "typeName": {
  3720.                     "contractScope": null,
  3721.                     "id": 1017,
  3722.                     "name": "ERC20",
  3723.                     "nodeType": "UserDefinedTypeName",
  3724.                     "referencedDeclaration": 790,
  3725.                     "src": "3561:5:3",
  3726.                     "typeDescriptions": {
  3727.                       "typeIdentifier": "t_contract$_ERC20_$790",
  3728.                       "typeString": "contract ERC20"
  3729.                     }
  3730.                   },
  3731.                   "value": null,
  3732.                   "visibility": "internal"
  3733.                 },
  3734.                 {
  3735.                   "constant": false,
  3736.                   "id": 1020,
  3737.                   "name": "_totalBuyAmount",
  3738.                   "nodeType": "VariableDeclaration",
  3739.                   "scope": 1043,
  3740.                   "src": "3587:20:3",
  3741.                   "stateVariable": false,
  3742.                   "storageLocation": "default",
  3743.                   "typeDescriptions": {
  3744.                     "typeIdentifier": "t_uint256",
  3745.                     "typeString": "uint256"
  3746.                   },
  3747.                   "typeName": {
  3748.                     "id": 1019,
  3749.                     "name": "uint",
  3750.                     "nodeType": "ElementaryTypeName",
  3751.                     "src": "3587:4:3",
  3752.                     "typeDescriptions": {
  3753.                       "typeIdentifier": "t_uint256",
  3754.                       "typeString": "uint256"
  3755.                     }
  3756.                   },
  3757.                   "value": null,
  3758.                   "visibility": "internal"
  3759.                 },
  3760.                 {
  3761.                   "constant": false,
  3762.                   "id": 1022,
  3763.                   "name": "_numberOfBuckets",
  3764.                   "nodeType": "VariableDeclaration",
  3765.                   "scope": 1043,
  3766.                   "src": "3621:21:3",
  3767.                   "stateVariable": false,
  3768.                   "storageLocation": "default",
  3769.                   "typeDescriptions": {
  3770.                     "typeIdentifier": "t_uint256",
  3771.                     "typeString": "uint256"
  3772.                   },
  3773.                   "typeName": {
  3774.                     "id": 1021,
  3775.                     "name": "uint",
  3776.                     "nodeType": "ElementaryTypeName",
  3777.                     "src": "3621:4:3",
  3778.                     "typeDescriptions": {
  3779.                       "typeIdentifier": "t_uint256",
  3780.                       "typeString": "uint256"
  3781.                     }
  3782.                   },
  3783.                   "value": null,
  3784.                   "visibility": "internal"
  3785.                 },
  3786.                 {
  3787.                   "constant": false,
  3788.                   "id": 1024,
  3789.                   "name": "_referrer",
  3790.                   "nodeType": "VariableDeclaration",
  3791.                   "scope": 1043,
  3792.                   "src": "3656:17:3",
  3793.                   "stateVariable": false,
  3794.                   "storageLocation": "default",
  3795.                   "typeDescriptions": {
  3796.                     "typeIdentifier": "t_address",
  3797.                     "typeString": "address"
  3798.                   },
  3799.                   "typeName": {
  3800.                     "id": 1023,
  3801.                     "name": "address",
  3802.                     "nodeType": "ElementaryTypeName",
  3803.                     "src": "3656:7:3",
  3804.                     "stateMutability": "nonpayable",
  3805.                     "typeDescriptions": {
  3806.                       "typeIdentifier": "t_address",
  3807.                       "typeString": "address"
  3808.                     }
  3809.                   },
  3810.                   "value": null,
  3811.                   "visibility": "internal"
  3812.                 }
  3813.               ],
  3814.               "src": "3491:183:3"
  3815.             },
  3816.             "returnParameters": {
  3817.               "id": 1026,
  3818.               "nodeType": "ParameterList",
  3819.               "parameters": [],
  3820.               "src": "3694:0:3"
  3821.             },
  3822.             "scope": 1122,
  3823.             "src": "3406:507:3",
  3824.             "stateMutability": "nonpayable",
  3825.             "superFunction": null,
  3826.             "visibility": "public"
  3827.           },
  3828.           {
  3829.             "body": {
  3830.               "id": 1077,
  3831.               "nodeType": "Block",
  3832.               "src": "4179:184:3",
  3833.               "statements": [
  3834.                 {
  3835.                   "expression": {
  3836.                     "argumentTypes": null,
  3837.                     "arguments": [
  3838.                       {
  3839.                         "argumentTypes": null,
  3840.                         "expression": {
  3841.                           "argumentTypes": null,
  3842.                           "id": 1061,
  3843.                           "name": "msg",
  3844.                           "nodeType": "Identifier",
  3845.                           "overloadedDeclarations": [],
  3846.                           "referencedDeclaration": 2821,
  3847.                           "src": "4228:3:3",
  3848.                           "typeDescriptions": {
  3849.                             "typeIdentifier": "t_magic_message",
  3850.                             "typeString": "msg"
  3851.                           }
  3852.                         },
  3853.                         "id": 1062,
  3854.                         "isConstant": false,
  3855.                         "isLValue": false,
  3856.                         "isPure": false,
  3857.                         "lValueRequested": false,
  3858.                         "memberName": "sender",
  3859.                         "nodeType": "MemberAccess",
  3860.                         "referencedDeclaration": null,
  3861.                         "src": "4228:10:3",
  3862.                         "typeDescriptions": {
  3863.                           "typeIdentifier": "t_address_payable",
  3864.                           "typeString": "address payable"
  3865.                         }
  3866.                       },
  3867.                       {
  3868.                         "argumentTypes": null,
  3869.                         "arguments": [
  3870.                           {
  3871.                             "argumentTypes": null,
  3872.                             "id": 1064,
  3873.                             "name": "this",
  3874.                             "nodeType": "Identifier",
  3875.                             "overloadedDeclarations": [],
  3876.                             "referencedDeclaration": 2877,
  3877.                             "src": "4248:4:3",
  3878.                             "typeDescriptions": {
  3879.                               "typeIdentifier": "t_contract$_EntryBot_$1122",
  3880.                               "typeString": "contract EntryBot"
  3881.                             }
  3882.                           }
  3883.                         ],
  3884.                         "expression": {
  3885.                           "argumentTypes": [
  3886.                             {
  3887.                               "typeIdentifier": "t_contract$_EntryBot_$1122",
  3888.                               "typeString": "contract EntryBot"
  3889.                             }
  3890.                           ],
  3891.                           "id": 1063,
  3892.                           "isConstant": false,
  3893.                           "isLValue": false,
  3894.                           "isPure": true,
  3895.                           "lValueRequested": false,
  3896.                           "nodeType": "ElementaryTypeNameExpression",
  3897.                           "src": "4240:7:3",
  3898.                           "typeDescriptions": {
  3899.                             "typeIdentifier": "t_type$_t_address_$",
  3900.                             "typeString": "type(address)"
  3901.                           },
  3902.                           "typeName": "address"
  3903.                         },
  3904.                         "id": 1065,
  3905.                         "isConstant": false,
  3906.                         "isLValue": false,
  3907.                         "isPure": false,
  3908.                         "kind": "typeConversion",
  3909.                         "lValueRequested": false,
  3910.                         "names": [],
  3911.                         "nodeType": "FunctionCall",
  3912.                         "src": "4240:13:3",
  3913.                         "typeDescriptions": {
  3914.                           "typeIdentifier": "t_address",
  3915.                           "typeString": "address"
  3916.                         }
  3917.                       },
  3918.                       {
  3919.                         "argumentTypes": null,
  3920.                         "id": 1066,
  3921.                         "name": "_totalBuyAmount",
  3922.                         "nodeType": "Identifier",
  3923.                         "overloadedDeclarations": [],
  3924.                         "referencedDeclaration": 1049,
  3925.                         "src": "4255:15:3",
  3926.                         "typeDescriptions": {
  3927.                           "typeIdentifier": "t_uint256",
  3928.                           "typeString": "uint256"
  3929.                         }
  3930.                       }
  3931.                     ],
  3932.                     "expression": {
  3933.                       "argumentTypes": [
  3934.                         {
  3935.                           "typeIdentifier": "t_address_payable",
  3936.                           "typeString": "address payable"
  3937.                         },
  3938.                         {
  3939.                           "typeIdentifier": "t_address",
  3940.                           "typeString": "address"
  3941.                         },
  3942.                         {
  3943.                           "typeIdentifier": "t_uint256",
  3944.                           "typeString": "uint256"
  3945.                         }
  3946.                       ],
  3947.                       "expression": {
  3948.                         "argumentTypes": null,
  3949.                         "arguments": [],
  3950.                         "expression": {
  3951.                           "argumentTypes": [],
  3952.                           "expression": {
  3953.                             "argumentTypes": null,
  3954.                             "id": 1056,
  3955.                             "name": "bucketSale",
  3956.                             "nodeType": "Identifier",
  3957.                             "overloadedDeclarations": [],
  3958.                             "referencedDeclaration": 951,
  3959.                             "src": "4189:10:3",
  3960.                             "typeDescriptions": {
  3961.                               "typeIdentifier": "t_contract$_BucketSale_$807",
  3962.                               "typeString": "contract BucketSale"
  3963.                             }
  3964.                           },
  3965.                           "id": 1058,
  3966.                           "isConstant": false,
  3967.                           "isLValue": false,
  3968.                           "isPure": false,
  3969.                           "lValueRequested": false,
  3970.                           "memberName": "tokenSoldFor",
  3971.                           "nodeType": "MemberAccess",
  3972.                           "referencedDeclaration": 795,
  3973.                           "src": "4189:23:3",
  3974.                           "typeDescriptions": {
  3975.                             "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_contract$_ERC20_$790_$",
  3976.                             "typeString": "function () external returns (contract ERC20)"
  3977.                           }
  3978.                         },
  3979.                         "id": 1059,
  3980.                         "isConstant": false,
  3981.                         "isLValue": false,
  3982.                         "isPure": false,
  3983.                         "kind": "functionCall",
  3984.                         "lValueRequested": false,
  3985.                         "names": [],
  3986.                         "nodeType": "FunctionCall",
  3987.                         "src": "4189:25:3",
  3988.                         "typeDescriptions": {
  3989.                           "typeIdentifier": "t_contract$_ERC20_$790",
  3990.                           "typeString": "contract ERC20"
  3991.                         }
  3992.                       },
  3993.                       "id": 1060,
  3994.                       "isConstant": false,
  3995.                       "isLValue": false,
  3996.                       "isPure": false,
  3997.                       "lValueRequested": false,
  3998.                       "memberName": "transferFrom",
  3999.                       "nodeType": "MemberAccess",
  4000.                       "referencedDeclaration": 789,
  4001.                       "src": "4189:38:3",
  4002.                       "typeDescriptions": {
  4003.                         "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
  4004.                         "typeString": "function (address,address,uint256) external returns (bool)"
  4005.                       }
  4006.                     },
  4007.                     "id": 1067,
  4008.                     "isConstant": false,
  4009.                     "isLValue": false,
  4010.                     "isPure": false,
  4011.                     "kind": "functionCall",
  4012.                     "lValueRequested": false,
  4013.                     "names": [],
  4014.                     "nodeType": "FunctionCall",
  4015.                     "src": "4189:82:3",
  4016.                     "typeDescriptions": {
  4017.                       "typeIdentifier": "t_bool",
  4018.                       "typeString": "bool"
  4019.                     }
  4020.                   },
  4021.                   "id": 1068,
  4022.                   "nodeType": "ExpressionStatement",
  4023.                   "src": "4189:82:3"
  4024.                 },
  4025.                 {
  4026.                   "expression": {
  4027.                     "argumentTypes": null,
  4028.                     "arguments": [
  4029.                       {
  4030.                         "argumentTypes": null,
  4031.                         "id": 1070,
  4032.                         "name": "_buyer",
  4033.                         "nodeType": "Identifier",
  4034.                         "overloadedDeclarations": [],
  4035.                         "referencedDeclaration": 1045,
  4036.                         "src": "4292:6:3",
  4037.                         "typeDescriptions": {
  4038.                           "typeIdentifier": "t_address",
  4039.                           "typeString": "address"
  4040.                         }
  4041.                       },
  4042.                       {
  4043.                         "argumentTypes": null,
  4044.                         "id": 1071,
  4045.                         "name": "_bucketId",
  4046.                         "nodeType": "Identifier",
  4047.                         "overloadedDeclarations": [],
  4048.                         "referencedDeclaration": 1047,
  4049.                         "src": "4300:9:3",
  4050.                         "typeDescriptions": {
  4051.                           "typeIdentifier": "t_uint256",
  4052.                           "typeString": "uint256"
  4053.                         }
  4054.                       },
  4055.                       {
  4056.                         "argumentTypes": null,
  4057.                         "id": 1072,
  4058.                         "name": "_totalBuyAmount",
  4059.                         "nodeType": "Identifier",
  4060.                         "overloadedDeclarations": [],
  4061.                         "referencedDeclaration": 1049,
  4062.                         "src": "4311:15:3",
  4063.                         "typeDescriptions": {
  4064.                           "typeIdentifier": "t_uint256",
  4065.                           "typeString": "uint256"
  4066.                         }
  4067.                       },
  4068.                       {
  4069.                         "argumentTypes": null,
  4070.                         "id": 1073,
  4071.                         "name": "_numberOfBuckets",
  4072.                         "nodeType": "Identifier",
  4073.                         "overloadedDeclarations": [],
  4074.                         "referencedDeclaration": 1051,
  4075.                         "src": "4328:16:3",
  4076.                         "typeDescriptions": {
  4077.                           "typeIdentifier": "t_uint256",
  4078.                           "typeString": "uint256"
  4079.                         }
  4080.                       },
  4081.                       {
  4082.                         "argumentTypes": null,
  4083.                         "id": 1074,
  4084.                         "name": "_referrer",
  4085.                         "nodeType": "Identifier",
  4086.                         "overloadedDeclarations": [],
  4087.                         "referencedDeclaration": 1053,
  4088.                         "src": "4346:9:3",
  4089.                         "typeDescriptions": {
  4090.                           "typeIdentifier": "t_address",
  4091.                           "typeString": "address"
  4092.                         }
  4093.                       }
  4094.                     ],
  4095.                     "expression": {
  4096.                       "argumentTypes": [
  4097.                         {
  4098.                           "typeIdentifier": "t_address",
  4099.                           "typeString": "address"
  4100.                         },
  4101.                         {
  4102.                           "typeIdentifier": "t_uint256",
  4103.                           "typeString": "uint256"
  4104.                         },
  4105.                         {
  4106.                           "typeIdentifier": "t_uint256",
  4107.                           "typeString": "uint256"
  4108.                         },
  4109.                         {
  4110.                           "typeIdentifier": "t_uint256",
  4111.                           "typeString": "uint256"
  4112.                         },
  4113.                         {
  4114.                           "typeIdentifier": "t_address",
  4115.                           "typeString": "address"
  4116.                         }
  4117.                       ],
  4118.                       "id": 1069,
  4119.                       "name": "_enterSale",
  4120.                       "nodeType": "Identifier",
  4121.                       "overloadedDeclarations": [],
  4122.                       "referencedDeclaration": 1121,
  4123.                       "src": "4281:10:3",
  4124.                       "typeDescriptions": {
  4125.                         "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$returns$__$",
  4126.                         "typeString": "function (address,uint256,uint256,uint256,address)"
  4127.                       }
  4128.                     },
  4129.                     "id": 1075,
  4130.                     "isConstant": false,
  4131.                     "isLValue": false,
  4132.                     "isPure": false,
  4133.                     "kind": "functionCall",
  4134.                     "lValueRequested": false,
  4135.                     "names": [],
  4136.                     "nodeType": "FunctionCall",
  4137.                     "src": "4281:75:3",
  4138.                     "typeDescriptions": {
  4139.                       "typeIdentifier": "t_tuple$__$",
  4140.                       "typeString": "tuple()"
  4141.                     }
  4142.                   },
  4143.                   "id": 1076,
  4144.                   "nodeType": "ExpressionStatement",
  4145.                   "src": "4281:75:3"
  4146.                 }
  4147.               ]
  4148.             },
  4149.             "documentation": null,
  4150.             "id": 1078,
  4151.             "implemented": true,
  4152.             "kind": "function",
  4153.             "modifiers": [],
  4154.             "name": "agreeToTermsAndConditionsListedInThisBucketSaleContractAndEnterSaleWithDai",
  4155.             "nodeType": "FunctionDefinition",
  4156.             "parameters": {
  4157.               "id": 1054,
  4158.               "nodeType": "ParameterList",
  4159.               "parameters": [
  4160.                 {
  4161.                   "constant": false,
  4162.                   "id": 1045,
  4163.                   "name": "_buyer",
  4164.                   "nodeType": "VariableDeclaration",
  4165.                   "scope": 1078,
  4166.                   "src": "4016:14:3",
  4167.                   "stateVariable": false,
  4168.                   "storageLocation": "default",
  4169.                   "typeDescriptions": {
  4170.                     "typeIdentifier": "t_address",
  4171.                     "typeString": "address"
  4172.                   },
  4173.                   "typeName": {
  4174.                     "id": 1044,
  4175.                     "name": "address",
  4176.                     "nodeType": "ElementaryTypeName",
  4177.                     "src": "4016:7:3",
  4178.                     "stateMutability": "nonpayable",
  4179.                     "typeDescriptions": {
  4180.                       "typeIdentifier": "t_address",
  4181.                       "typeString": "address"
  4182.                     }
  4183.                   },
  4184.                   "value": null,
  4185.                   "visibility": "internal"
  4186.                 },
  4187.                 {
  4188.                   "constant": false,
  4189.                   "id": 1047,
  4190.                   "name": "_bucketId",
  4191.                   "nodeType": "VariableDeclaration",
  4192.                   "scope": 1078,
  4193.                   "src": "4044:14:3",
  4194.                   "stateVariable": false,
  4195.                   "storageLocation": "default",
  4196.                   "typeDescriptions": {
  4197.                     "typeIdentifier": "t_uint256",
  4198.                     "typeString": "uint256"
  4199.                   },
  4200.                   "typeName": {
  4201.                     "id": 1046,
  4202.                     "name": "uint",
  4203.                     "nodeType": "ElementaryTypeName",
  4204.                     "src": "4044:4:3",
  4205.                     "typeDescriptions": {
  4206.                       "typeIdentifier": "t_uint256",
  4207.                       "typeString": "uint256"
  4208.                     }
  4209.                   },
  4210.                   "value": null,
  4211.                   "visibility": "internal"
  4212.                 },
  4213.                 {
  4214.                   "constant": false,
  4215.                   "id": 1049,
  4216.                   "name": "_totalBuyAmount",
  4217.                   "nodeType": "VariableDeclaration",
  4218.                   "scope": 1078,
  4219.                   "src": "4072:20:3",
  4220.                   "stateVariable": false,
  4221.                   "storageLocation": "default",
  4222.                   "typeDescriptions": {
  4223.                     "typeIdentifier": "t_uint256",
  4224.                     "typeString": "uint256"
  4225.                   },
  4226.                   "typeName": {
  4227.                     "id": 1048,
  4228.                     "name": "uint",
  4229.                     "nodeType": "ElementaryTypeName",
  4230.                     "src": "4072:4:3",
  4231.                     "typeDescriptions": {
  4232.                       "typeIdentifier": "t_uint256",
  4233.                       "typeString": "uint256"
  4234.                     }
  4235.                   },
  4236.                   "value": null,
  4237.                   "visibility": "internal"
  4238.                 },
  4239.                 {
  4240.                   "constant": false,
  4241.                   "id": 1051,
  4242.                   "name": "_numberOfBuckets",
  4243.                   "nodeType": "VariableDeclaration",
  4244.                   "scope": 1078,
  4245.                   "src": "4106:21:3",
  4246.                   "stateVariable": false,
  4247.                   "storageLocation": "default",
  4248.                   "typeDescriptions": {
  4249.                     "typeIdentifier": "t_uint256",
  4250.                     "typeString": "uint256"
  4251.                   },
  4252.                   "typeName": {
  4253.                     "id": 1050,
  4254.                     "name": "uint",
  4255.                     "nodeType": "ElementaryTypeName",
  4256.                     "src": "4106:4:3",
  4257.                     "typeDescriptions": {
  4258.                       "typeIdentifier": "t_uint256",
  4259.                       "typeString": "uint256"
  4260.                     }
  4261.                   },
  4262.                   "value": null,
  4263.                   "visibility": "internal"
  4264.                 },
  4265.                 {
  4266.                   "constant": false,
  4267.                   "id": 1053,
  4268.                   "name": "_referrer",
  4269.                   "nodeType": "VariableDeclaration",
  4270.                   "scope": 1078,
  4271.                   "src": "4141:17:3",
  4272.                   "stateVariable": false,
  4273.                   "storageLocation": "default",
  4274.                   "typeDescriptions": {
  4275.                     "typeIdentifier": "t_address",
  4276.                     "typeString": "address"
  4277.                   },
  4278.                   "typeName": {
  4279.                     "id": 1052,
  4280.                     "name": "address",
  4281.                     "nodeType": "ElementaryTypeName",
  4282.                     "src": "4141:7:3",
  4283.                     "stateMutability": "nonpayable",
  4284.                     "typeDescriptions": {
  4285.                       "typeIdentifier": "t_address",
  4286.                       "typeString": "address"
  4287.                     }
  4288.                   },
  4289.                   "value": null,
  4290.                   "visibility": "internal"
  4291.                 }
  4292.               ],
  4293.               "src": "4002:157:3"
  4294.             },
  4295.             "returnParameters": {
  4296.               "id": 1055,
  4297.               "nodeType": "ParameterList",
  4298.               "parameters": [],
  4299.               "src": "4179:0:3"
  4300.             },
  4301.             "scope": 1122,
  4302.             "src": "3919:444:3",
  4303.             "stateMutability": "nonpayable",
  4304.             "superFunction": null,
  4305.             "visibility": "public"
  4306.           },
  4307.           {
  4308.             "body": {
  4309.               "id": 1120,
  4310.               "nodeType": "Block",
  4311.               "src": "4566:357:3",
  4312.               "statements": [
  4313.                 {
  4314.                   "assignments": [
  4315.                     1092
  4316.                   ],
  4317.                   "declarations": [
  4318.                     {
  4319.                       "constant": false,
  4320.                       "id": 1092,
  4321.                       "name": "amountPerBucket",
  4322.                       "nodeType": "VariableDeclaration",
  4323.                       "scope": 1120,
  4324.                       "src": "4576:20:3",
  4325.                       "stateVariable": false,
  4326.                       "storageLocation": "default",
  4327.                       "typeDescriptions": {
  4328.                         "typeIdentifier": "t_uint256",
  4329.                         "typeString": "uint256"
  4330.                       },
  4331.                       "typeName": {
  4332.                         "id": 1091,
  4333.                         "name": "uint",
  4334.                         "nodeType": "ElementaryTypeName",
  4335.                         "src": "4576:4:3",
  4336.                         "typeDescriptions": {
  4337.                           "typeIdentifier": "t_uint256",
  4338.                           "typeString": "uint256"
  4339.                         }
  4340.                       },
  4341.                       "value": null,
  4342.                       "visibility": "internal"
  4343.                     }
  4344.                   ],
  4345.                   "id": 1096,
  4346.                   "initialValue": {
  4347.                     "argumentTypes": null,
  4348.                     "commonType": {
  4349.                       "typeIdentifier": "t_uint256",
  4350.                       "typeString": "uint256"
  4351.                     },
  4352.                     "id": 1095,
  4353.                     "isConstant": false,
  4354.                     "isLValue": false,
  4355.                     "isPure": false,
  4356.                     "lValueRequested": false,
  4357.                     "leftExpression": {
  4358.                       "argumentTypes": null,
  4359.                       "id": 1093,
  4360.                       "name": "_totalBuyAmount",
  4361.                       "nodeType": "Identifier",
  4362.                       "overloadedDeclarations": [],
  4363.                       "referencedDeclaration": 1084,
  4364.                       "src": "4599:15:3",
  4365.                       "typeDescriptions": {
  4366.                         "typeIdentifier": "t_uint256",
  4367.                         "typeString": "uint256"
  4368.                       }
  4369.                     },
  4370.                     "nodeType": "BinaryOperation",
  4371.                     "operator": "/",
  4372.                     "rightExpression": {
  4373.                       "argumentTypes": null,
  4374.                       "id": 1094,
  4375.                       "name": "_numberOfBuckets",
  4376.                       "nodeType": "Identifier",
  4377.                       "overloadedDeclarations": [],
  4378.                       "referencedDeclaration": 1086,
  4379.                       "src": "4617:16:3",
  4380.                       "typeDescriptions": {
  4381.                         "typeIdentifier": "t_uint256",
  4382.                         "typeString": "uint256"
  4383.                       }
  4384.                     },
  4385.                     "src": "4599:34:3",
  4386.                     "typeDescriptions": {
  4387.                       "typeIdentifier": "t_uint256",
  4388.                       "typeString": "uint256"
  4389.                     }
  4390.                   },
  4391.                   "nodeType": "VariableDeclarationStatement",
  4392.                   "src": "4576:57:3"
  4393.                 },
  4394.                 {
  4395.                   "body": {
  4396.                     "id": 1118,
  4397.                     "nodeType": "Block",
  4398.                     "src": "4695:222:3",
  4399.                     "statements": [
  4400.                       {
  4401.                         "expression": {
  4402.                           "argumentTypes": null,
  4403.                           "arguments": [
  4404.                             {
  4405.                               "argumentTypes": null,
  4406.                               "id": 1110,
  4407.                               "name": "_buyer",
  4408.                               "nodeType": "Identifier",
  4409.                               "overloadedDeclarations": [],
  4410.                               "referencedDeclaration": 1080,
  4411.                               "src": "4795:6:3",
  4412.                               "typeDescriptions": {
  4413.                                 "typeIdentifier": "t_address",
  4414.                                 "typeString": "address"
  4415.                               }
  4416.                             },
  4417.                             {
  4418.                               "argumentTypes": null,
  4419.                               "commonType": {
  4420.                                 "typeIdentifier": "t_uint256",
  4421.                                 "typeString": "uint256"
  4422.                               },
  4423.                               "id": 1113,
  4424.                               "isConstant": false,
  4425.                               "isLValue": false,
  4426.                               "isPure": false,
  4427.                               "lValueRequested": false,
  4428.                               "leftExpression": {
  4429.                                 "argumentTypes": null,
  4430.                                 "id": 1111,
  4431.                                 "name": "_bucketId",
  4432.                                 "nodeType": "Identifier",
  4433.                                 "overloadedDeclarations": [],
  4434.                                 "referencedDeclaration": 1082,
  4435.                                 "src": "4819:9:3",
  4436.                                 "typeDescriptions": {
  4437.                                   "typeIdentifier": "t_uint256",
  4438.                                   "typeString": "uint256"
  4439.                                 }
  4440.                               },
  4441.                               "nodeType": "BinaryOperation",
  4442.                               "operator": "+",
  4443.                               "rightExpression": {
  4444.                                 "argumentTypes": null,
  4445.                                 "id": 1112,
  4446.                                 "name": "i",
  4447.                                 "nodeType": "Identifier",
  4448.                                 "overloadedDeclarations": [],
  4449.                                 "referencedDeclaration": 1098,
  4450.                                 "src": "4831:1:3",
  4451.                                 "typeDescriptions": {
  4452.                                   "typeIdentifier": "t_uint256",
  4453.                                   "typeString": "uint256"
  4454.                                 }
  4455.                               },
  4456.                               "src": "4819:13:3",
  4457.                               "typeDescriptions": {
  4458.                                 "typeIdentifier": "t_uint256",
  4459.                                 "typeString": "uint256"
  4460.                               }
  4461.                             },
  4462.                             {
  4463.                               "argumentTypes": null,
  4464.                               "id": 1114,
  4465.                               "name": "amountPerBucket",
  4466.                               "nodeType": "Identifier",
  4467.                               "overloadedDeclarations": [],
  4468.                               "referencedDeclaration": 1092,
  4469.                               "src": "4850:15:3",
  4470.                               "typeDescriptions": {
  4471.                                 "typeIdentifier": "t_uint256",
  4472.                                 "typeString": "uint256"
  4473.                               }
  4474.                             },
  4475.                             {
  4476.                               "argumentTypes": null,
  4477.                               "id": 1115,
  4478.                               "name": "_referrer",
  4479.                               "nodeType": "Identifier",
  4480.                               "overloadedDeclarations": [],
  4481.                               "referencedDeclaration": 1088,
  4482.                               "src": "4883:9:3",
  4483.                               "typeDescriptions": {
  4484.                                 "typeIdentifier": "t_address",
  4485.                                 "typeString": "address"
  4486.                               }
  4487.                             }
  4488.                           ],
  4489.                           "expression": {
  4490.                             "argumentTypes": [
  4491.                               {
  4492.                                 "typeIdentifier": "t_address",
  4493.                                 "typeString": "address"
  4494.                               },
  4495.                               {
  4496.                                 "typeIdentifier": "t_uint256",
  4497.                                 "typeString": "uint256"
  4498.                               },
  4499.                               {
  4500.                                 "typeIdentifier": "t_uint256",
  4501.                                 "typeString": "uint256"
  4502.                               },
  4503.                               {
  4504.                                 "typeIdentifier": "t_address",
  4505.                                 "typeString": "address"
  4506.                               }
  4507.                             ],
  4508.                             "expression": {
  4509.                               "argumentTypes": null,
  4510.                               "id": 1107,
  4511.                               "name": "bucketSale",
  4512.                               "nodeType": "Identifier",
  4513.                               "overloadedDeclarations": [],
  4514.                               "referencedDeclaration": 951,
  4515.                               "src": "4709:10:3",
  4516.                               "typeDescriptions": {
  4517.                                 "typeIdentifier": "t_contract$_BucketSale_$807",
  4518.                                 "typeString": "contract BucketSale"
  4519.                               }
  4520.                             },
  4521.                             "id": 1109,
  4522.                             "isConstant": false,
  4523.                             "isLValue": false,
  4524.                             "isPure": false,
  4525.                             "lValueRequested": false,
  4526.                             "memberName": "agreeToTermsAndConditionsListedInThisContractAndEnterSale",
  4527.                             "nodeType": "MemberAccess",
  4528.                             "referencedDeclaration": 806,
  4529.                             "src": "4709:68:3",
  4530.                             "typeDescriptions": {
  4531.                               "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_address_$returns$__$",
  4532.                               "typeString": "function (address,uint256,uint256,address) external"
  4533.                             }
  4534.                           },
  4535.                           "id": 1116,
  4536.                           "isConstant": false,
  4537.                           "isLValue": false,
  4538.                           "isPure": false,
  4539.                           "kind": "functionCall",
  4540.                           "lValueRequested": false,
  4541.                           "names": [],
  4542.                           "nodeType": "FunctionCall",
  4543.                           "src": "4709:197:3",
  4544.                           "typeDescriptions": {
  4545.                             "typeIdentifier": "t_tuple$__$",
  4546.                             "typeString": "tuple()"
  4547.                           }
  4548.                         },
  4549.                         "id": 1117,
  4550.                         "nodeType": "ExpressionStatement",
  4551.                         "src": "4709:197:3"
  4552.                       }
  4553.                     ]
  4554.                   },
  4555.                   "condition": {
  4556.                     "argumentTypes": null,
  4557.                     "commonType": {
  4558.                       "typeIdentifier": "t_uint256",
  4559.                       "typeString": "uint256"
  4560.                     },
  4561.                     "id": 1103,
  4562.                     "isConstant": false,
  4563.                     "isLValue": false,
  4564.                     "isPure": false,
  4565.                     "lValueRequested": false,
  4566.                     "leftExpression": {
  4567.                       "argumentTypes": null,
  4568.                       "id": 1101,
  4569.                       "name": "i",
  4570.                       "nodeType": "Identifier",
  4571.                       "overloadedDeclarations": [],
  4572.                       "referencedDeclaration": 1098,
  4573.                       "src": "4660:1:3",
  4574.                       "typeDescriptions": {
  4575.                         "typeIdentifier": "t_uint256",
  4576.                         "typeString": "uint256"
  4577.                       }
  4578.                     },
  4579.                     "nodeType": "BinaryOperation",
  4580.                     "operator": "<",
  4581.                     "rightExpression": {
  4582.                       "argumentTypes": null,
  4583.                       "id": 1102,
  4584.                       "name": "_numberOfBuckets",
  4585.                       "nodeType": "Identifier",
  4586.                       "overloadedDeclarations": [],
  4587.                       "referencedDeclaration": 1086,
  4588.                       "src": "4664:16:3",
  4589.                       "typeDescriptions": {
  4590.                         "typeIdentifier": "t_uint256",
  4591.                         "typeString": "uint256"
  4592.                       }
  4593.                     },
  4594.                     "src": "4660:20:3",
  4595.                     "typeDescriptions": {
  4596.                       "typeIdentifier": "t_bool",
  4597.                       "typeString": "bool"
  4598.                     }
  4599.                   },
  4600.                   "id": 1119,
  4601.                   "initializationExpression": {
  4602.                     "assignments": [
  4603.                       1098
  4604.                     ],
  4605.                     "declarations": [
  4606.                       {
  4607.                         "constant": false,
  4608.                         "id": 1098,
  4609.                         "name": "i",
  4610.                         "nodeType": "VariableDeclaration",
  4611.                         "scope": 1119,
  4612.                         "src": "4648:6:3",
  4613.                         "stateVariable": false,
  4614.                         "storageLocation": "default",
  4615.                         "typeDescriptions": {
  4616.                           "typeIdentifier": "t_uint256",
  4617.                           "typeString": "uint256"
  4618.                         },
  4619.                         "typeName": {
  4620.                           "id": 1097,
  4621.                           "name": "uint",
  4622.                           "nodeType": "ElementaryTypeName",
  4623.                           "src": "4648:4:3",
  4624.                           "typeDescriptions": {
  4625.                             "typeIdentifier": "t_uint256",
  4626.                             "typeString": "uint256"
  4627.                           }
  4628.                         },
  4629.                         "value": null,
  4630.                         "visibility": "internal"
  4631.                       }
  4632.                     ],
  4633.                     "id": 1100,
  4634.                     "initialValue": {
  4635.                       "argumentTypes": null,
  4636.                       "hexValue": "30",
  4637.                       "id": 1099,
  4638.                       "isConstant": false,
  4639.                       "isLValue": false,
  4640.                       "isPure": true,
  4641.                       "kind": "number",
  4642.                       "lValueRequested": false,
  4643.                       "nodeType": "Literal",
  4644.                       "src": "4657:1:3",
  4645.                       "subdenomination": null,
  4646.                       "typeDescriptions": {
  4647.                         "typeIdentifier": "t_rational_0_by_1",
  4648.                         "typeString": "int_const 0"
  4649.                       },
  4650.                       "value": "0"
  4651.                     },
  4652.                     "nodeType": "VariableDeclarationStatement",
  4653.                     "src": "4648:10:3"
  4654.                   },
  4655.                   "loopExpression": {
  4656.                     "expression": {
  4657.                       "argumentTypes": null,
  4658.                       "id": 1105,
  4659.                       "isConstant": false,
  4660.                       "isLValue": false,
  4661.                       "isPure": false,
  4662.                       "lValueRequested": false,
  4663.                       "nodeType": "UnaryOperation",
  4664.                       "operator": "++",
  4665.                       "prefix": false,
  4666.                       "src": "4682:3:3",
  4667.                       "subExpression": {
  4668.                         "argumentTypes": null,
  4669.                         "id": 1104,
  4670.                         "name": "i",
  4671.                         "nodeType": "Identifier",
  4672.                         "overloadedDeclarations": [],
  4673.                         "referencedDeclaration": 1098,
  4674.                         "src": "4682:1:3",
  4675.                         "typeDescriptions": {
  4676.                           "typeIdentifier": "t_uint256",
  4677.                           "typeString": "uint256"
  4678.                         }
  4679.                       },
  4680.                       "typeDescriptions": {
  4681.                         "typeIdentifier": "t_uint256",
  4682.                         "typeString": "uint256"
  4683.                       }
  4684.                     },
  4685.                     "id": 1106,
  4686.                     "nodeType": "ExpressionStatement",
  4687.                     "src": "4682:3:3"
  4688.                   },
  4689.                   "nodeType": "ForStatement",
  4690.                   "src": "4644:273:3"
  4691.                 }
  4692.               ]
  4693.             },
  4694.             "documentation": null,
  4695.             "id": 1121,
  4696.             "implemented": true,
  4697.             "kind": "function",
  4698.             "modifiers": [],
  4699.             "name": "_enterSale",
  4700.             "nodeType": "FunctionDefinition",
  4701.             "parameters": {
  4702.               "id": 1089,
  4703.               "nodeType": "ParameterList",
  4704.               "parameters": [
  4705.                 {
  4706.                   "constant": false,
  4707.                   "id": 1080,
  4708.                   "name": "_buyer",
  4709.                   "nodeType": "VariableDeclaration",
  4710.                   "scope": 1121,
  4711.                   "src": "4402:14:3",
  4712.                   "stateVariable": false,
  4713.                   "storageLocation": "default",
  4714.                   "typeDescriptions": {
  4715.                     "typeIdentifier": "t_address",
  4716.                     "typeString": "address"
  4717.                   },
  4718.                   "typeName": {
  4719.                     "id": 1079,
  4720.                     "name": "address",
  4721.                     "nodeType": "ElementaryTypeName",
  4722.                     "src": "4402:7:3",
  4723.                     "stateMutability": "nonpayable",
  4724.                     "typeDescriptions": {
  4725.                       "typeIdentifier": "t_address",
  4726.                       "typeString": "address"
  4727.                     }
  4728.                   },
  4729.                   "value": null,
  4730.                   "visibility": "internal"
  4731.                 },
  4732.                 {
  4733.                   "constant": false,
  4734.                   "id": 1082,
  4735.                   "name": "_bucketId",
  4736.                   "nodeType": "VariableDeclaration",
  4737.                   "scope": 1121,
  4738.                   "src": "4430:14:3",
  4739.                   "stateVariable": false,
  4740.                   "storageLocation": "default",
  4741.                   "typeDescriptions": {
  4742.                     "typeIdentifier": "t_uint256",
  4743.                     "typeString": "uint256"
  4744.                   },
  4745.                   "typeName": {
  4746.                     "id": 1081,
  4747.                     "name": "uint",
  4748.                     "nodeType": "ElementaryTypeName",
  4749.                     "src": "4430:4:3",
  4750.                     "typeDescriptions": {
  4751.                       "typeIdentifier": "t_uint256",
  4752.                       "typeString": "uint256"
  4753.                     }
  4754.                   },
  4755.                   "value": null,
  4756.                   "visibility": "internal"
  4757.                 },
  4758.                 {
  4759.                   "constant": false,
  4760.                   "id": 1084,
  4761.                   "name": "_totalBuyAmount",
  4762.                   "nodeType": "VariableDeclaration",
  4763.                   "scope": 1121,
  4764.                   "src": "4458:20:3",
  4765.                   "stateVariable": false,
  4766.                   "storageLocation": "default",
  4767.                   "typeDescriptions": {
  4768.                     "typeIdentifier": "t_uint256",
  4769.                     "typeString": "uint256"
  4770.                   },
  4771.                   "typeName": {
  4772.                     "id": 1083,
  4773.                     "name": "uint",
  4774.                     "nodeType": "ElementaryTypeName",
  4775.                     "src": "4458:4:3",
  4776.                     "typeDescriptions": {
  4777.                       "typeIdentifier": "t_uint256",
  4778.                       "typeString": "uint256"
  4779.                     }
  4780.                   },
  4781.                   "value": null,
  4782.                   "visibility": "internal"
  4783.                 },
  4784.                 {
  4785.                   "constant": false,
  4786.                   "id": 1086,
  4787.                   "name": "_numberOfBuckets",
  4788.                   "nodeType": "VariableDeclaration",
  4789.                   "scope": 1121,
  4790.                   "src": "4492:21:3",
  4791.                   "stateVariable": false,
  4792.                   "storageLocation": "default",
  4793.                   "typeDescriptions": {
  4794.                     "typeIdentifier": "t_uint256",
  4795.                     "typeString": "uint256"
  4796.                   },
  4797.                   "typeName": {
  4798.                     "id": 1085,
  4799.                     "name": "uint",
  4800.                     "nodeType": "ElementaryTypeName",
  4801.                     "src": "4492:4:3",
  4802.                     "typeDescriptions": {
  4803.                       "typeIdentifier": "t_uint256",
  4804.                       "typeString": "uint256"
  4805.                     }
  4806.                   },
  4807.                   "value": null,
  4808.                   "visibility": "internal"
  4809.                 },
  4810.                 {
  4811.                   "constant": false,
  4812.                   "id": 1088,
  4813.                   "name": "_referrer",
  4814.                   "nodeType": "VariableDeclaration",
  4815.                   "scope": 1121,
  4816.                   "src": "4527:17:3",
  4817.                   "stateVariable": false,
  4818.                   "storageLocation": "default",
  4819.                   "typeDescriptions": {
  4820.                     "typeIdentifier": "t_address",
  4821.                     "typeString": "address"
  4822.                   },
  4823.                   "typeName": {
  4824.                     "id": 1087,
  4825.                     "name": "address",
  4826.                     "nodeType": "ElementaryTypeName",
  4827.                     "src": "4527:7:3",
  4828.                     "stateMutability": "nonpayable",
  4829.                     "typeDescriptions": {
  4830.                       "typeIdentifier": "t_address",
  4831.                       "typeString": "address"
  4832.                     }
  4833.                   },
  4834.                   "value": null,
  4835.                   "visibility": "internal"
  4836.                 }
  4837.               ],
  4838.               "src": "4388:157:3"
  4839.             },
  4840.             "returnParameters": {
  4841.               "id": 1090,
  4842.               "nodeType": "ParameterList",
  4843.               "parameters": [],
  4844.               "src": "4566:0:3"
  4845.             },
  4846.             "scope": 1122,
  4847.             "src": "4369:554:3",
  4848.             "stateMutability": "nonpayable",
  4849.             "superFunction": null,
  4850.             "visibility": "private"
  4851.           }
  4852.         ],
  4853.         "scope": 1138,
  4854.         "src": "2583:2342:3"
  4855.       },
  4856.       {
  4857.         "baseContracts": [
  4858.           {
  4859.             "arguments": null,
  4860.             "baseName": {
  4861.               "contractScope": null,
  4862.               "id": 1123,
  4863.               "name": "EntryBot",
  4864.               "nodeType": "UserDefinedTypeName",
  4865.               "referencedDeclaration": 1122,
  4866.               "src": "4955:8:3",
  4867.               "typeDescriptions": {
  4868.                 "typeIdentifier": "t_contract$_EntryBot_$1122",
  4869.                 "typeString": "contract EntryBot"
  4870.               }
  4871.             },
  4872.             "id": 1124,
  4873.             "nodeType": "InheritanceSpecifier",
  4874.             "src": "4955:8:3"
  4875.           }
  4876.         ],
  4877.         "contractDependencies": [
  4878.           947,
  4879.           1122
  4880.         ],
  4881.         "contractKind": "contract",
  4882.         "documentation": null,
  4883.         "fullyImplemented": true,
  4884.         "id": 1137,
  4885.         "linearizedBaseContracts": [
  4886.           1137,
  4887.           1122,
  4888.           947
  4889.         ],
  4890.         "name": "EntryBotMainNet",
  4891.         "nodeType": "ContractDefinition",
  4892.         "nodes": [
  4893.           {
  4894.             "body": {
  4895.               "id": 1135,
  4896.               "nodeType": "Block",
  4897.               "src": "5139:2:3",
  4898.               "statements": []
  4899.             },
  4900.             "documentation": null,
  4901.             "id": 1136,
  4902.             "implemented": true,
  4903.             "kind": "constructor",
  4904.             "modifiers": [
  4905.               {
  4906.                 "arguments": [
  4907.                   {
  4908.                     "argumentTypes": null,
  4909.                     "arguments": [
  4910.                       {
  4911.                         "argumentTypes": null,
  4912.                         "hexValue": "307833303037366646373433366145383232303762396330334162644637434230353633313041393541",
  4913.                         "id": 1128,
  4914.                         "isConstant": false,
  4915.                         "isLValue": false,
  4916.                         "isPure": true,
  4917.                         "kind": "number",
  4918.                         "lValueRequested": false,
  4919.                         "nodeType": "Literal",
  4920.                         "src": "5008:42:3",
  4921.                         "subdenomination": null,
  4922.                         "typeDescriptions": {
  4923.                           "typeIdentifier": "t_address_payable",
  4924.                           "typeString": "address payable"
  4925.                         },
  4926.                         "value": "0x30076fF7436aE82207b9c03AbdF7CB056310A95A"
  4927.                       }
  4928.                     ],
  4929.                     "expression": {
  4930.                       "argumentTypes": [
  4931.                         {
  4932.                           "typeIdentifier": "t_address_payable",
  4933.                           "typeString": "address payable"
  4934.                         }
  4935.                       ],
  4936.                       "id": 1127,
  4937.                       "name": "BucketSale",
  4938.                       "nodeType": "Identifier",
  4939.                       "overloadedDeclarations": [],
  4940.                       "referencedDeclaration": 807,
  4941.                       "src": "4997:10:3",
  4942.                       "typeDescriptions": {
  4943.                         "typeIdentifier": "t_type$_t_contract$_BucketSale_$807_$",
  4944.                         "typeString": "type(contract BucketSale)"
  4945.                       }
  4946.                     },
  4947.                     "id": 1129,
  4948.                     "isConstant": false,
  4949.                     "isLValue": false,
  4950.                     "isPure": true,
  4951.                     "kind": "typeConversion",
  4952.                     "lValueRequested": false,
  4953.                     "names": [],
  4954.                     "nodeType": "FunctionCall",
  4955.                     "src": "4997:54:3",
  4956.                     "typeDescriptions": {
  4957.                       "typeIdentifier": "t_contract$_BucketSale_$807",
  4958.                       "typeString": "contract BucketSale"
  4959.                     }
  4960.                   },
  4961.                   {
  4962.                     "argumentTypes": null,
  4963.                     "arguments": [
  4964.                       {
  4965.                         "argumentTypes": null,
  4966.                         "hexValue": "307838313845364645434435313645636333383439444166363834356533454338363830383742373535",
  4967.                         "id": 1131,
  4968.                         "isConstant": false,
  4969.                         "isLValue": false,
  4970.                         "isPure": true,
  4971.                         "kind": "number",
  4972.                         "lValueRequested": false,
  4973.                         "nodeType": "Literal",
  4974.                         "src": "5075:42:3",
  4975.                         "subdenomination": null,
  4976.                         "typeDescriptions": {
  4977.                           "typeIdentifier": "t_address_payable",
  4978.                           "typeString": "address payable"
  4979.                         },
  4980.                         "value": "0x818E6FECD516Ecc3849DAf6845e3EC868087B755"
  4981.                       }
  4982.                     ],
  4983.                     "expression": {
  4984.                       "argumentTypes": [
  4985.                         {
  4986.                           "typeIdentifier": "t_address_payable",
  4987.                           "typeString": "address payable"
  4988.                         }
  4989.                       ],
  4990.                       "id": 1130,
  4991.                       "name": "KyberNetworkInterface",
  4992.                       "nodeType": "Identifier",
  4993.                       "overloadedDeclarations": [],
  4994.                       "referencedDeclaration": 843,
  4995.                       "src": "5053:21:3",
  4996.                       "typeDescriptions": {
  4997.                         "typeIdentifier": "t_type$_t_contract$_KyberNetworkInterface_$843_$",
  4998.                         "typeString": "type(contract KyberNetworkInterface)"
  4999.                       }
  5000.                     },
  5001.                     "id": 1132,
  5002.                     "isConstant": false,
  5003.                     "isLValue": false,
  5004.                     "isPure": true,
  5005.                     "kind": "typeConversion",
  5006.                     "lValueRequested": false,
  5007.                     "names": [],
  5008.                     "nodeType": "FunctionCall",
  5009.                     "src": "5053:65:3",
  5010.                     "typeDescriptions": {
  5011.                       "typeIdentifier": "t_contract$_KyberNetworkInterface_$843",
  5012.                       "typeString": "contract KyberNetworkInterface"
  5013.                     }
  5014.                   }
  5015.                 ],
  5016.                 "id": 1133,
  5017.                 "modifierName": {
  5018.                   "argumentTypes": null,
  5019.                   "id": 1126,
  5020.                   "name": "EntryBot",
  5021.                   "nodeType": "Identifier",
  5022.                   "overloadedDeclarations": [],
  5023.                   "referencedDeclaration": 1122,
  5024.                   "src": "4988:8:3",
  5025.                   "typeDescriptions": {
  5026.                     "typeIdentifier": "t_type$_t_contract$_EntryBot_$1122_$",
  5027.                     "typeString": "type(contract EntryBot)"
  5028.                   }
  5029.                 },
  5030.                 "nodeType": "ModifierInvocation",
  5031.                 "src": "4988:131:3"
  5032.               }
  5033.             ],
  5034.             "name": "",
  5035.             "nodeType": "FunctionDefinition",
  5036.             "parameters": {
  5037.               "id": 1125,
  5038.               "nodeType": "ParameterList",
  5039.               "parameters": [],
  5040.               "src": "4981:2:3"
  5041.             },
  5042.             "returnParameters": {
  5043.               "id": 1134,
  5044.               "nodeType": "ParameterList",
  5045.               "parameters": [],
  5046.               "src": "5139:0:3"
  5047.             },
  5048.             "scope": 1137,
  5049.             "src": "4970:171:3",
  5050.             "stateMutability": "nonpayable",
  5051.             "superFunction": null,
  5052.             "visibility": "public"
  5053.           }
  5054.         ],
  5055.         "scope": 1138,
  5056.         "src": "4927:216:3"
  5057.       }
  5058.     ],
  5059.     "src": "0:5143:3"
  5060.   },
  5061.   "legacyAST": {
  5062.     "attributes": {
  5063.       "absolutePath": "/home/mark/git/Foundry/smart-contracts/bucket-sale/contracts/EntryBot.sol",
  5064.       "exportedSymbols": {
  5065.         "BucketSale": [
  5066.           807
  5067.         ],
  5068.         "ERC20": [
  5069.           790
  5070.         ],
  5071.         "EntryBot": [
  5072.           1122
  5073.         ],
  5074.         "EntryBotMainNet": [
  5075.           1137
  5076.         ],
  5077.         "KyberNetworkInterface": [
  5078.           843
  5079.         ],
  5080.         "KyberTrader": [
  5081.           947
  5082.         ]
  5083.       }
  5084.     },
  5085.     "children": [
  5086.       {
  5087.         "attributes": {
  5088.           "literals": [
  5089.             "solidity",
  5090.             "^",
  5091.             "0.5",
  5092.             ".17"
  5093.           ]
  5094.         },
  5095.         "id": 769,
  5096.         "name": "PragmaDirective",
  5097.         "src": "0:24:3"
  5098.       },
  5099.       {
  5100.         "attributes": {
  5101.           "baseContracts": [
  5102.             null
  5103.           ],
  5104.           "contractDependencies": [
  5105.             null
  5106.           ],
  5107.           "contractKind": "contract",
  5108.           "documentation": null,
  5109.           "fullyImplemented": false,
  5110.           "linearizedBaseContracts": [
  5111.             790
  5112.           ],
  5113.           "name": "ERC20",
  5114.           "scope": 1138
  5115.         },
  5116.         "children": [
  5117.           {
  5118.             "attributes": {
  5119.               "body": null,
  5120.               "documentation": null,
  5121.               "implemented": false,
  5122.               "isConstructor": false,
  5123.               "kind": "function",
  5124.               "modifiers": [
  5125.                 null
  5126.               ],
  5127.               "name": "approve",
  5128.               "scope": 790,
  5129.               "stateMutability": "nonpayable",
  5130.               "superFunction": null,
  5131.               "visibility": "public"
  5132.             },
  5133.             "children": [
  5134.               {
  5135.                 "children": [
  5136.                   {
  5137.                     "attributes": {
  5138.                       "constant": false,
  5139.                       "name": "_spender",
  5140.                       "scope": 778,
  5141.                       "stateVariable": false,
  5142.                       "storageLocation": "default",
  5143.                       "type": "address",
  5144.                       "value": null,
  5145.                       "visibility": "internal"
  5146.                     },
  5147.                     "children": [
  5148.                       {
  5149.                         "attributes": {
  5150.                           "name": "address",
  5151.                           "stateMutability": "nonpayable",
  5152.                           "type": "address"
  5153.                         },
  5154.                         "id": 770,
  5155.                         "name": "ElementaryTypeName",
  5156.                         "src": "64:7:3"
  5157.                       }
  5158.                     ],
  5159.                     "id": 771,
  5160.                     "name": "VariableDeclaration",
  5161.                     "src": "64:16:3"
  5162.                   },
  5163.                   {
  5164.                     "attributes": {
  5165.                       "constant": false,
  5166.                       "name": "_amount",
  5167.                       "scope": 778,
  5168.                       "stateVariable": false,
  5169.                       "storageLocation": "default",
  5170.                       "type": "uint256",
  5171.                       "value": null,
  5172.                       "visibility": "internal"
  5173.                     },
  5174.                     "children": [
  5175.                       {
  5176.                         "attributes": {
  5177.                           "name": "uint",
  5178.                           "type": "uint256"
  5179.                         },
  5180.                         "id": 772,
  5181.                         "name": "ElementaryTypeName",
  5182.                         "src": "82:4:3"
  5183.                       }
  5184.                     ],
  5185.                     "id": 773,
  5186.                     "name": "VariableDeclaration",
  5187.                     "src": "82:12:3"
  5188.                   }
  5189.                 ],
  5190.                 "id": 774,
  5191.                 "name": "ParameterList",
  5192.                 "src": "63:32:3"
  5193.               },
  5194.               {
  5195.                 "children": [
  5196.                   {
  5197.                     "attributes": {
  5198.                       "constant": false,
  5199.                       "name": "",
  5200.                       "scope": 778,
  5201.                       "stateVariable": false,
  5202.                       "storageLocation": "default",
  5203.                       "type": "bool",
  5204.                       "value": null,
  5205.                       "visibility": "internal"
  5206.                     },
  5207.                     "children": [
  5208.                       {
  5209.                         "attributes": {
  5210.                           "name": "bool",
  5211.                           "type": "bool"
  5212.                         },
  5213.                         "id": 775,
  5214.                         "name": "ElementaryTypeName",
  5215.                         "src": "128:4:3"
  5216.                       }
  5217.                     ],
  5218.                     "id": 776,
  5219.                     "name": "VariableDeclaration",
  5220.                     "src": "128:4:3"
  5221.                   }
  5222.                 ],
  5223.                 "id": 777,
  5224.                 "name": "ParameterList",
  5225.                 "src": "127:6:3"
  5226.               }
  5227.             ],
  5228.             "id": 778,
  5229.             "name": "FunctionDefinition",
  5230.             "src": "47:87:3"
  5231.           },
  5232.           {
  5233.             "attributes": {
  5234.               "body": null,
  5235.               "documentation": null,
  5236.               "implemented": false,
  5237.               "isConstructor": false,
  5238.               "kind": "function",
  5239.               "modifiers": [
  5240.                 null
  5241.               ],
  5242.               "name": "transferFrom",
  5243.               "scope": 790,
  5244.               "stateMutability": "nonpayable",
  5245.               "superFunction": null,
  5246.               "visibility": "public"
  5247.             },
  5248.             "children": [
  5249.               {
  5250.                 "children": [
  5251.                   {
  5252.                     "attributes": {
  5253.                       "constant": false,
  5254.                       "name": "_sender",
  5255.                       "scope": 789,
  5256.                       "stateVariable": false,
  5257.                       "storageLocation": "default",
  5258.                       "type": "address",
  5259.                       "value": null,
  5260.                       "visibility": "internal"
  5261.                     },
  5262.                     "children": [
  5263.                       {
  5264.                         "attributes": {
  5265.                           "name": "address",
  5266.                           "stateMutability": "nonpayable",
  5267.                           "type": "address"
  5268.                         },
  5269.                         "id": 779,
  5270.                         "name": "ElementaryTypeName",
  5271.                         "src": "161:7:3"
  5272.                       }
  5273.                     ],
  5274.                     "id": 780,
  5275.                     "name": "VariableDeclaration",
  5276.                     "src": "161:15:3"
  5277.                   },
  5278.                   {
  5279.                     "attributes": {
  5280.                       "constant": false,
  5281.                       "name": "_receiver",
  5282.                       "scope": 789,
  5283.                       "stateVariable": false,
  5284.                       "storageLocation": "default",
  5285.                       "type": "address",
  5286.                       "value": null,
  5287.                       "visibility": "internal"
  5288.                     },
  5289.                     "children": [
  5290.                       {
  5291.                         "attributes": {
  5292.                           "name": "address",
  5293.                           "stateMutability": "nonpayable",
  5294.                           "type": "address"
  5295.                         },
  5296.                         "id": 781,
  5297.                         "name": "ElementaryTypeName",
  5298.                         "src": "178:7:3"
  5299.                       }
  5300.                     ],
  5301.                     "id": 782,
  5302.                     "name": "VariableDeclaration",
  5303.                     "src": "178:17:3"
  5304.                   },
  5305.                   {
  5306.                     "attributes": {
  5307.                       "constant": false,
  5308.                       "name": "_amount",
  5309.                       "scope": 789,
  5310.                       "stateVariable": false,
  5311.                       "storageLocation": "default",
  5312.                       "type": "uint256",
  5313.                       "value": null,
  5314.                       "visibility": "internal"
  5315.                     },
  5316.                     "children": [
  5317.                       {
  5318.                         "attributes": {
  5319.                           "name": "uint",
  5320.                           "type": "uint256"
  5321.                         },
  5322.                         "id": 783,
  5323.                         "name": "ElementaryTypeName",
  5324.                         "src": "197:4:3"
  5325.                       }
  5326.                     ],
  5327.                     "id": 784,
  5328.                     "name": "VariableDeclaration",
  5329.                     "src": "197:12:3"
  5330.                   }
  5331.                 ],
  5332.                 "id": 785,
  5333.                 "name": "ParameterList",
  5334.                 "src": "160:50:3"
  5335.               },
  5336.               {
  5337.                 "children": [
  5338.                   {
  5339.                     "attributes": {
  5340.                       "constant": false,
  5341.                       "name": "",
  5342.                       "scope": 789,
  5343.                       "stateVariable": false,
  5344.                       "storageLocation": "default",
  5345.                       "type": "bool",
  5346.                       "value": null,
  5347.                       "visibility": "internal"
  5348.                     },
  5349.                     "children": [
  5350.                       {
  5351.                         "attributes": {
  5352.                           "name": "bool",
  5353.                           "type": "bool"
  5354.                         },
  5355.                         "id": 786,
  5356.                         "name": "ElementaryTypeName",
  5357.                         "src": "243:4:3"
  5358.                       }
  5359.                     ],
  5360.                     "id": 787,
  5361.                     "name": "VariableDeclaration",
  5362.                     "src": "243:4:3"
  5363.                   }
  5364.                 ],
  5365.                 "id": 788,
  5366.                 "name": "ParameterList",
  5367.                 "src": "242:6:3"
  5368.               }
  5369.             ],
  5370.             "id": 789,
  5371.             "name": "FunctionDefinition",
  5372.             "src": "139:110:3"
  5373.           }
  5374.         ],
  5375.         "id": 790,
  5376.         "name": "ContractDefinition",
  5377.         "src": "26:225:3"
  5378.       },
  5379.       {
  5380.         "attributes": {
  5381.           "baseContracts": [
  5382.             null
  5383.           ],
  5384.           "contractDependencies": [
  5385.             null
  5386.           ],
  5387.           "contractKind": "contract",
  5388.           "documentation": null,
  5389.           "fullyImplemented": false,
  5390.           "linearizedBaseContracts": [
  5391.             807
  5392.           ],
  5393.           "name": "BucketSale",
  5394.           "scope": 1138
  5395.         },
  5396.         "children": [
  5397.           {
  5398.             "attributes": {
  5399.               "body": null,
  5400.               "documentation": null,
  5401.               "implemented": false,
  5402.               "isConstructor": false,
  5403.               "kind": "function",
  5404.               "modifiers": [
  5405.                 null
  5406.               ],
  5407.               "name": "tokenSoldFor",
  5408.               "scope": 807,
  5409.               "stateMutability": "nonpayable",
  5410.               "superFunction": null,
  5411.               "visibility": "public"
  5412.             },
  5413.             "children": [
  5414.               {
  5415.                 "attributes": {
  5416.                   "parameters": [
  5417.                     null
  5418.                   ]
  5419.                 },
  5420.                 "children": [],
  5421.                 "id": 791,
  5422.                 "name": "ParameterList",
  5423.                 "src": "300:2:3"
  5424.               },
  5425.               {
  5426.                 "children": [
  5427.                   {
  5428.                     "attributes": {
  5429.                       "constant": false,
  5430.                       "name": "",
  5431.                       "scope": 795,
  5432.                       "stateVariable": false,
  5433.                       "storageLocation": "default",
  5434.                       "type": "contract ERC20",
  5435.                       "value": null,
  5436.                       "visibility": "internal"
  5437.                     },
  5438.                     "children": [
  5439.                       {
  5440.                         "attributes": {
  5441.                           "contractScope": null,
  5442.                           "name": "ERC20",
  5443.                           "referencedDeclaration": 790,
  5444.                           "type": "contract ERC20"
  5445.                         },
  5446.                         "id": 792,
  5447.                         "name": "UserDefinedTypeName",
  5448.                         "src": "335:5:3"
  5449.                       }
  5450.                     ],
  5451.                     "id": 793,
  5452.                     "name": "VariableDeclaration",
  5453.                     "src": "335:5:3"
  5454.                   }
  5455.                 ],
  5456.                 "id": 794,
  5457.                 "name": "ParameterList",
  5458.                 "src": "334:7:3"
  5459.               }
  5460.             ],
  5461.             "id": 795,
  5462.             "name": "FunctionDefinition",
  5463.             "src": "279:63:3"
  5464.           },
  5465.           {
  5466.             "attributes": {
  5467.               "body": null,
  5468.               "documentation": null,
  5469.               "implemented": false,
  5470.               "isConstructor": false,
  5471.               "kind": "function",
  5472.               "modifiers": [
  5473.                 null
  5474.               ],
  5475.               "name": "agreeToTermsAndConditionsListedInThisContractAndEnterSale",
  5476.               "scope": 807,
  5477.               "stateMutability": "nonpayable",
  5478.               "superFunction": null,
  5479.               "visibility": "public"
  5480.             },
  5481.             "children": [
  5482.               {
  5483.                 "children": [
  5484.                   {
  5485.                     "attributes": {
  5486.                       "constant": false,
  5487.                       "name": "_buyer",
  5488.                       "scope": 806,
  5489.                       "stateVariable": false,
  5490.                       "storageLocation": "default",
  5491.                       "type": "address",
  5492.                       "value": null,
  5493.                       "visibility": "internal"
  5494.                     },
  5495.                     "children": [
  5496.                       {
  5497.                         "attributes": {
  5498.                           "name": "address",
  5499.                           "stateMutability": "nonpayable",
  5500.                           "type": "address"
  5501.                         },
  5502.                         "id": 796,
  5503.                         "name": "ElementaryTypeName",
  5504.                         "src": "424:7:3"
  5505.                       }
  5506.                     ],
  5507.                     "id": 797,
  5508.                     "name": "VariableDeclaration",
  5509.                     "src": "424:14:3"
  5510.                   },
  5511.                   {
  5512.                     "attributes": {
  5513.                       "constant": false,
  5514.                       "name": "_bucketId",
  5515.                       "scope": 806,
  5516.                       "stateVariable": false,
  5517.                       "storageLocation": "default",
  5518.                       "type": "uint256",
  5519.                       "value": null,
  5520.                       "visibility": "internal"
  5521.                     },
  5522.                     "children": [
  5523.                       {
  5524.                         "attributes": {
  5525.                           "name": "uint",
  5526.                           "type": "uint256"
  5527.                         },
  5528.                         "id": 798,
  5529.                         "name": "ElementaryTypeName",
  5530.                         "src": "448:4:3"
  5531.                       }
  5532.                     ],
  5533.                     "id": 799,
  5534.                     "name": "VariableDeclaration",
  5535.                     "src": "448:14:3"
  5536.                   },
  5537.                   {
  5538.                     "attributes": {
  5539.                       "constant": false,
  5540.                       "name": "_amount",
  5541.                       "scope": 806,
  5542.                       "stateVariable": false,
  5543.                       "storageLocation": "default",
  5544.                       "type": "uint256",
  5545.                       "value": null,
  5546.                       "visibility": "internal"
  5547.                     },
  5548.                     "children": [
  5549.                       {
  5550.                         "attributes": {
  5551.                           "name": "uint",
  5552.                           "type": "uint256"
  5553.                         },
  5554.                         "id": 800,
  5555.                         "name": "ElementaryTypeName",
  5556.                         "src": "472:4:3"
  5557.                       }
  5558.                     ],
  5559.                     "id": 801,
  5560.                     "name": "VariableDeclaration",
  5561.                     "src": "472:12:3"
  5562.                   },
  5563.                   {
  5564.                     "attributes": {
  5565.                       "constant": false,
  5566.                       "name": "_referrer",
  5567.                       "scope": 806,
  5568.                       "stateVariable": false,
  5569.                       "storageLocation": "default",
  5570.                       "type": "address",
  5571.                       "value": null,
  5572.                       "visibility": "internal"
  5573.                     },
  5574.                     "children": [
  5575.                       {
  5576.                         "attributes": {
  5577.                           "name": "address",
  5578.                           "stateMutability": "nonpayable",
  5579.                           "type": "address"
  5580.                         },
  5581.                         "id": 802,
  5582.                         "name": "ElementaryTypeName",
  5583.                         "src": "494:7:3"
  5584.                       }
  5585.                     ],
  5586.                     "id": 803,
  5587.                     "name": "VariableDeclaration",
  5588.                     "src": "494:17:3"
  5589.                   }
  5590.                 ],
  5591.                 "id": 804,
  5592.                 "name": "ParameterList",
  5593.                 "src": "414:98:3"
  5594.               },
  5595.               {
  5596.                 "attributes": {
  5597.                   "parameters": [
  5598.                     null
  5599.                   ]
  5600.                 },
  5601.                 "children": [],
  5602.                 "id": 805,
  5603.                 "name": "ParameterList",
  5604.                 "src": "523:0:3"
  5605.               }
  5606.             ],
  5607.             "id": 806,
  5608.             "name": "FunctionDefinition",
  5609.             "src": "348:176:3"
  5610.           }
  5611.         ],
  5612.         "id": 807,
  5613.         "name": "ContractDefinition",
  5614.         "src": "253:273:3"
  5615.       },
  5616.       {
  5617.         "attributes": {
  5618.           "baseContracts": [
  5619.             null
  5620.           ],
  5621.           "contractDependencies": [
  5622.             null
  5623.           ],
  5624.           "contractKind": "interface",
  5625.           "documentation": null,
  5626.           "fullyImplemented": false,
  5627.           "linearizedBaseContracts": [
  5628.             843
  5629.           ],
  5630.           "name": "KyberNetworkInterface",
  5631.           "scope": 1138
  5632.         },
  5633.         "children": [
  5634.           {
  5635.             "attributes": {
  5636.               "body": null,
  5637.               "documentation": null,
  5638.               "implemented": false,
  5639.               "isConstructor": false,
  5640.               "kind": "function",
  5641.               "modifiers": [
  5642.                 null
  5643.               ],
  5644.               "name": "swapTokenToToken",
  5645.               "scope": 843,
  5646.               "stateMutability": "nonpayable",
  5647.               "superFunction": null,
  5648.               "visibility": "external"
  5649.             },
  5650.             "children": [
  5651.               {
  5652.                 "children": [
  5653.                   {
  5654.                     "attributes": {
  5655.                       "constant": false,
  5656.                       "name": "src",
  5657.                       "scope": 820,
  5658.                       "stateVariable": false,
  5659.                       "storageLocation": "default",
  5660.                       "type": "contract ERC20",
  5661.                       "value": null,
  5662.                       "visibility": "internal"
  5663.                     },
  5664.                     "children": [
  5665.                       {
  5666.                         "attributes": {
  5667.                           "contractScope": null,
  5668.                           "name": "ERC20",
  5669.                           "referencedDeclaration": 790,
  5670.                           "type": "contract ERC20"
  5671.                         },
  5672.                         "id": 808,
  5673.                         "name": "UserDefinedTypeName",
  5674.                         "src": "605:5:3"
  5675.                       }
  5676.                     ],
  5677.                     "id": 809,
  5678.                     "name": "VariableDeclaration",
  5679.                     "src": "605:9:3"
  5680.                   },
  5681.                   {
  5682.                     "attributes": {
  5683.                       "constant": false,
  5684.                       "name": "srcAmount",
  5685.                       "scope": 820,
  5686.                       "stateVariable": false,
  5687.                       "storageLocation": "default",
  5688.                       "type": "uint256",
  5689.                       "value": null,
  5690.                       "visibility": "internal"
  5691.                     },
  5692.                     "children": [
  5693.                       {
  5694.                         "attributes": {
  5695.                           "name": "uint",
  5696.                           "type": "uint256"
  5697.                         },
  5698.                         "id": 810,
  5699.                         "name": "ElementaryTypeName",
  5700.                         "src": "628:4:3"
  5701.                       }
  5702.                     ],
  5703.                     "id": 811,
  5704.                     "name": "VariableDeclaration",
  5705.                     "src": "628:14:3"
  5706.                   },
  5707.                   {
  5708.                     "attributes": {
  5709.                       "constant": false,
  5710.                       "name": "dest",
  5711.                       "scope": 820,
  5712.                       "stateVariable": false,
  5713.                       "storageLocation": "default",
  5714.                       "type": "contract ERC20",
  5715.                       "value": null,
  5716.                       "visibility": "internal"
  5717.                     },
  5718.                     "children": [
  5719.                       {
  5720.                         "attributes": {
  5721.                           "contractScope": null,
  5722.                           "name": "ERC20",
  5723.                           "referencedDeclaration": 790,
  5724.                           "type": "contract ERC20"
  5725.                         },
  5726.                         "id": 812,
  5727.                         "name": "UserDefinedTypeName",
  5728.                         "src": "656:5:3"
  5729.                       }
  5730.                     ],
  5731.                     "id": 813,
  5732.                     "name": "VariableDeclaration",
  5733.                     "src": "656:10:3"
  5734.                   },
  5735.                   {
  5736.                     "attributes": {
  5737.                       "constant": false,
  5738.                       "name": "minConversionRate",
  5739.                       "scope": 820,
  5740.                       "stateVariable": false,
  5741.                       "storageLocation": "default",
  5742.                       "type": "uint256",
  5743.                       "value": null,
  5744.                       "visibility": "internal"
  5745.                     },
  5746.                     "children": [
  5747.                       {
  5748.                         "attributes": {
  5749.                           "name": "uint",
  5750.                           "type": "uint256"
  5751.                         },
  5752.                         "id": 814,
  5753.                         "name": "ElementaryTypeName",
  5754.                         "src": "680:4:3"
  5755.                       }
  5756.                     ],
  5757.                     "id": 815,
  5758.                     "name": "VariableDeclaration",
  5759.                     "src": "680:22:3"
  5760.                   }
  5761.                 ],
  5762.                 "id": 816,
  5763.                 "name": "ParameterList",
  5764.                 "src": "591:112:3"
  5765.               },
  5766.               {
  5767.                 "children": [
  5768.                   {
  5769.                     "attributes": {
  5770.                       "constant": false,
  5771.                       "name": "",
  5772.                       "scope": 820,
  5773.                       "stateVariable": false,
  5774.                       "storageLocation": "default",
  5775.                       "type": "uint256",
  5776.                       "value": null,
  5777.                       "visibility": "internal"
  5778.                     },
  5779.                     "children": [
  5780.                       {
  5781.                         "attributes": {
  5782.                           "name": "uint",
  5783.                           "type": "uint256"
  5784.                         },
  5785.                         "id": 817,
  5786.                         "name": "ElementaryTypeName",
  5787.                         "src": "737:4:3"
  5788.                       }
  5789.                     ],
  5790.                     "id": 818,
  5791.                     "name": "VariableDeclaration",
  5792.                     "src": "737:4:3"
  5793.                   }
  5794.                 ],
  5795.                 "id": 819,
  5796.                 "name": "ParameterList",
  5797.                 "src": "736:6:3"
  5798.               }
  5799.             ],
  5800.             "id": 820,
  5801.             "name": "FunctionDefinition",
  5802.             "src": "566:177:3"
  5803.           },
  5804.           {
  5805.             "attributes": {
  5806.               "body": null,
  5807.               "documentation": null,
  5808.               "implemented": false,
  5809.               "isConstructor": false,
  5810.               "kind": "function",
  5811.               "modifiers": [
  5812.                 null
  5813.               ],
  5814.               "name": "swapEtherToToken",
  5815.               "scope": 843,
  5816.               "stateMutability": "payable",
  5817.               "superFunction": null,
  5818.               "visibility": "external"
  5819.             },
  5820.             "children": [
  5821.               {
  5822.                 "children": [
  5823.                   {
  5824.                     "attributes": {
  5825.                       "constant": false,
  5826.                       "name": "token",
  5827.                       "scope": 829,
  5828.                       "stateVariable": false,
  5829.                       "storageLocation": "default",
  5830.                       "type": "contract ERC20",
  5831.                       "value": null,
  5832.                       "visibility": "internal"
  5833.                     },
  5834.                     "children": [
  5835.                       {
  5836.                         "attributes": {
  5837.                           "contractScope": null,
  5838.                           "name": "ERC20",
  5839.                           "referencedDeclaration": 790,
  5840.                           "type": "contract ERC20"
  5841.                         },
  5842.                         "id": 821,
  5843.                         "name": "UserDefinedTypeName",
  5844.                         "src": "774:5:3"
  5845.                       }
  5846.                     ],
  5847.                     "id": 822,
  5848.                     "name": "VariableDeclaration",
  5849.                     "src": "774:11:3"
  5850.                   },
  5851.                   {
  5852.                     "attributes": {
  5853.                       "constant": false,
  5854.                       "name": "minConversionRate",
  5855.                       "scope": 829,
  5856.                       "stateVariable": false,
  5857.                       "storageLocation": "default",
  5858.                       "type": "uint256",
  5859.                       "value": null,
  5860.                       "visibility": "internal"
  5861.                     },
  5862.                     "children": [
  5863.                       {
  5864.                         "attributes": {
  5865.                           "name": "uint",
  5866.                           "type": "uint256"
  5867.                         },
  5868.                         "id": 823,
  5869.                         "name": "ElementaryTypeName",
  5870.                         "src": "787:4:3"
  5871.                       }
  5872.                     ],
  5873.                     "id": 824,
  5874.                     "name": "VariableDeclaration",
  5875.                     "src": "787:22:3"
  5876.                   }
  5877.                 ],
  5878.                 "id": 825,
  5879.                 "name": "ParameterList",
  5880.                 "src": "773:37:3"
  5881.               },
  5882.               {
  5883.                 "children": [
  5884.                   {
  5885.                     "attributes": {
  5886.                       "constant": false,
  5887.                       "name": "",
  5888.                       "scope": 829,
  5889.                       "stateVariable": false,
  5890.                       "storageLocation": "default",
  5891.                       "type": "uint256",
  5892.                       "value": null,
  5893.                       "visibility": "internal"
  5894.                     },
  5895.                     "children": [
  5896.                       {
  5897.                         "attributes": {
  5898.                           "name": "uint",
  5899.                           "type": "uint256"
  5900.                         },
  5901.                         "id": 826,
  5902.                         "name": "ElementaryTypeName",
  5903.                         "src": "860:4:3"
  5904.                       }
  5905.                     ],
  5906.                     "id": 827,
  5907.                     "name": "VariableDeclaration",
  5908.                     "src": "860:4:3"
  5909.                   }
  5910.                 ],
  5911.                 "id": 828,
  5912.                 "name": "ParameterList",
  5913.                 "src": "859:6:3"
  5914.               }
  5915.             ],
  5916.             "id": 829,
  5917.             "name": "FunctionDefinition",
  5918.             "src": "748:118:3"
  5919.           },
  5920.           {
  5921.             "attributes": {
  5922.               "body": null,
  5923.               "documentation": null,
  5924.               "implemented": false,
  5925.               "isConstructor": false,
  5926.               "kind": "function",
  5927.               "modifiers": [
  5928.                 null
  5929.               ],
  5930.               "name": "getExpectedRate",
  5931.               "scope": 843,
  5932.               "stateMutability": "view",
  5933.               "superFunction": null,
  5934.               "visibility": "external"
  5935.             },
  5936.             "children": [
  5937.               {
  5938.                 "children": [
  5939.                   {
  5940.                     "attributes": {
  5941.                       "constant": false,
  5942.                       "name": "src",
  5943.                       "scope": 842,
  5944.                       "stateVariable": false,
  5945.                       "storageLocation": "default",
  5946.                       "type": "contract ERC20",
  5947.                       "value": null,
  5948.                       "visibility": "internal"
  5949.                     },
  5950.                     "children": [
  5951.                       {
  5952.                         "attributes": {
  5953.                           "contractScope": null,
  5954.                           "name": "ERC20",
  5955.                           "referencedDeclaration": 790,
  5956.                           "type": "contract ERC20"
  5957.                         },
  5958.                         "id": 830,
  5959.                         "name": "UserDefinedTypeName",
  5960.                         "src": "896:5:3"
  5961.                       }
  5962.                     ],
  5963.                     "id": 831,
  5964.                     "name": "VariableDeclaration",
  5965.                     "src": "896:9:3"
  5966.                   },
  5967.                   {
  5968.                     "attributes": {
  5969.                       "constant": false,
  5970.                       "name": "dest",
  5971.                       "scope": 842,
  5972.                       "stateVariable": false,
  5973.                       "storageLocation": "default",
  5974.                       "type": "contract ERC20",
  5975.                       "value": null,
  5976.                       "visibility": "internal"
  5977.                     },
  5978.                     "children": [
  5979.                       {
  5980.                         "attributes": {
  5981.                           "contractScope": null,
  5982.                           "name": "ERC20",
  5983.                           "referencedDeclaration": 790,
  5984.                           "type": "contract ERC20"
  5985.                         },
  5986.                         "id": 832,
  5987.                         "name": "UserDefinedTypeName",
  5988.                         "src": "907:5:3"
  5989.                       }
  5990.                     ],
  5991.                     "id": 833,
  5992.                     "name": "VariableDeclaration",
  5993.                     "src": "907:10:3"
  5994.                   },
  5995.                   {
  5996.                     "attributes": {
  5997.                       "constant": false,
  5998.                       "name": "_srcQty",
  5999.                       "scope": 842,
  6000.                       "stateVariable": false,
  6001.                       "storageLocation": "default",
  6002.                       "type": "uint256",
  6003.                       "value": null,
  6004.                       "visibility": "internal"
  6005.                     },
  6006.                     "children": [
  6007.                       {
  6008.                         "attributes": {
  6009.                           "name": "uint",
  6010.                           "type": "uint256"
  6011.                         },
  6012.                         "id": 834,
  6013.                         "name": "ElementaryTypeName",
  6014.                         "src": "919:4:3"
  6015.                       }
  6016.                     ],
  6017.                     "id": 835,
  6018.                     "name": "VariableDeclaration",
  6019.                     "src": "919:12:3"
  6020.                   }
  6021.                 ],
  6022.                 "id": 836,
  6023.                 "name": "ParameterList",
  6024.                 "src": "895:37:3"
  6025.               },
  6026.               {
  6027.                 "children": [
  6028.                   {
  6029.                     "attributes": {
  6030.                       "constant": false,
  6031.                       "name": "expectedRate",
  6032.                       "scope": 842,
  6033.                       "stateVariable": false,
  6034.                       "storageLocation": "default",
  6035.                       "type": "uint256",
  6036.                       "value": null,
  6037.                       "visibility": "internal"
  6038.                     },
  6039.                     "children": [
  6040.                       {
  6041.                         "attributes": {
  6042.                           "name": "uint",
  6043.                           "type": "uint256"
  6044.                         },
  6045.                         "id": 837,
  6046.                         "name": "ElementaryTypeName",
  6047.                         "src": "980:4:3"
  6048.                       }
  6049.                     ],
  6050.                     "id": 838,
  6051.                     "name": "VariableDeclaration",
  6052.                     "src": "980:17:3"
  6053.                   },
  6054.                   {
  6055.                     "attributes": {
  6056.                       "constant": false,
  6057.                       "name": "slippageRate",
  6058.                       "scope": 842,
  6059.                       "stateVariable": false,
  6060.                       "storageLocation": "default",
  6061.                       "type": "uint256",
  6062.                       "value": null,
  6063.                       "visibility": "internal"
  6064.                     },
  6065.                     "children": [
  6066.                       {
  6067.                         "attributes": {
  6068.                           "name": "uint",
  6069.                           "type": "uint256"
  6070.                         },
  6071.                         "id": 839,
  6072.                         "name": "ElementaryTypeName",
  6073.                         "src": "999:4:3"
  6074.                       }
  6075.                     ],
  6076.                     "id": 840,
  6077.                     "name": "VariableDeclaration",
  6078.                     "src": "999:17:3"
  6079.                   }
  6080.                 ],
  6081.                 "id": 841,
  6082.                 "name": "ParameterList",
  6083.                 "src": "979:38:3"
  6084.               }
  6085.             ],
  6086.             "id": 842,
  6087.             "name": "FunctionDefinition",
  6088.             "src": "871:147:3"
  6089.           }
  6090.         ],
  6091.         "id": 843,
  6092.         "name": "ContractDefinition",
  6093.         "src": "528:492:3"
  6094.       },
  6095.       {
  6096.         "attributes": {
  6097.           "baseContracts": [
  6098.             null
  6099.           ],
  6100.           "contractDependencies": [
  6101.             null
  6102.           ],
  6103.           "contractKind": "contract",
  6104.           "documentation": null,
  6105.           "fullyImplemented": true,
  6106.           "linearizedBaseContracts": [
  6107.             947
  6108.           ],
  6109.           "name": "KyberTrader",
  6110.           "scope": 1138
  6111.         },
  6112.         "children": [
  6113.           {
  6114.             "attributes": {
  6115.               "constant": true,
  6116.               "name": "ETH_TOKEN_ADDRESS",
  6117.               "scope": 947,
  6118.               "stateVariable": true,
  6119.               "storageLocation": "default",
  6120.               "type": "address",
  6121.               "visibility": "public"
  6122.             },
  6123.             "children": [
  6124.               {
  6125.                 "attributes": {
  6126.                   "name": "address",
  6127.                   "stateMutability": "nonpayable",
  6128.                   "type": "address"
  6129.                 },
  6130.                 "id": 844,
  6131.                 "name": "ElementaryTypeName",
  6132.                 "src": "1049:7:3"
  6133.               },
  6134.               {
  6135.                 "attributes": {
  6136.                   "argumentTypes": null,
  6137.                   "hexvalue": "307845656565654565656545654565654565456545656545454565656565456565656565656545456545",
  6138.                   "isConstant": false,
  6139.                   "isLValue": false,
  6140.                   "isPure": true,
  6141.                   "lValueRequested": false,
  6142.                   "subdenomination": null,
  6143.                   "token": "number",
  6144.                   "type": "address payable",
  6145.                   "value": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"
  6146.                 },
  6147.                 "id": 845,
  6148.                 "name": "Literal",
  6149.                 "src": "1093:42:3"
  6150.               }
  6151.             ],
  6152.             "id": 846,
  6153.             "name": "VariableDeclaration",
  6154.             "src": "1049:86:3"
  6155.           },
  6156.           {
  6157.             "attributes": {
  6158.               "constant": false,
  6159.               "name": "kyberNetworkProxy",
  6160.               "scope": 947,
  6161.               "stateVariable": true,
  6162.               "storageLocation": "default",
  6163.               "type": "contract KyberNetworkInterface",
  6164.               "value": null,
  6165.               "visibility": "public"
  6166.             },
  6167.             "children": [
  6168.               {
  6169.                 "attributes": {
  6170.                   "contractScope": null,
  6171.                   "name": "KyberNetworkInterface",
  6172.                   "referencedDeclaration": 843,
  6173.                   "type": "contract KyberNetworkInterface"
  6174.                 },
  6175.                 "id": 847,
  6176.                 "name": "UserDefinedTypeName",
  6177.                 "src": "1141:21:3"
  6178.               }
  6179.             ],
  6180.             "id": 848,
  6181.             "name": "VariableDeclaration",
  6182.             "src": "1141:46:3"
  6183.           },
  6184.           {
  6185.             "attributes": {
  6186.               "constant": false,
  6187.               "name": "mcdDai",
  6188.               "scope": 947,
  6189.               "stateVariable": true,
  6190.               "storageLocation": "default",
  6191.               "type": "contract ERC20",
  6192.               "value": null,
  6193.               "visibility": "public"
  6194.             },
  6195.             "children": [
  6196.               {
  6197.                 "attributes": {
  6198.                   "contractScope": null,
  6199.                   "name": "ERC20",
  6200.                   "referencedDeclaration": 790,
  6201.                   "type": "contract ERC20"
  6202.                 },
  6203.                 "id": 849,
  6204.                 "name": "UserDefinedTypeName",
  6205.                 "src": "1193:5:3"
  6206.               }
  6207.             ],
  6208.             "id": 850,
  6209.             "name": "VariableDeclaration",
  6210.             "src": "1193:19:3"
  6211.           },
  6212.           {
  6213.             "attributes": {
  6214.               "documentation": null,
  6215.               "implemented": true,
  6216.               "isConstructor": false,
  6217.               "kind": "function",
  6218.               "modifiers": [
  6219.                 null
  6220.               ],
  6221.               "name": "swapEtherToToken",
  6222.               "scope": 947,
  6223.               "stateMutability": "payable",
  6224.               "superFunction": null,
  6225.               "visibility": "public"
  6226.             },
  6227.             "children": [
  6228.               {
  6229.                 "attributes": {
  6230.                   "parameters": [
  6231.                     null
  6232.                   ]
  6233.                 },
  6234.                 "children": [],
  6235.                 "id": 851,
  6236.                 "name": "ParameterList",
  6237.                 "src": "1244:2:3"
  6238.               },
  6239.               {
  6240.                 "children": [
  6241.                   {
  6242.                     "attributes": {
  6243.                       "constant": false,
  6244.                       "name": "_receivedAmount",
  6245.                       "scope": 882,
  6246.                       "stateVariable": false,
  6247.                       "storageLocation": "default",
  6248.                       "type": "uint256",
  6249.                       "value": null,
  6250.                       "visibility": "internal"
  6251.                     },
  6252.                     "children": [
  6253.                       {
  6254.                         "attributes": {
  6255.                           "name": "uint",
  6256.                           "type": "uint256"
  6257.                         },
  6258.                         "id": 852,
  6259.                         "name": "ElementaryTypeName",
  6260.                         "src": "1295:4:3"
  6261.                       }
  6262.                     ],
  6263.                     "id": 853,
  6264.                     "name": "VariableDeclaration",
  6265.                     "src": "1295:20:3"
  6266.                   }
  6267.                 ],
  6268.                 "id": 854,
  6269.                 "name": "ParameterList",
  6270.                 "src": "1294:22:3"
  6271.               },
  6272.               {
  6273.                 "children": [
  6274.                   {
  6275.                     "attributes": {
  6276.                       "assignments": [
  6277.                         null,
  6278.                         856
  6279.                       ]
  6280.                     },
  6281.                     "children": [
  6282.                       {
  6283.                         "attributes": {
  6284.                           "constant": false,
  6285.                           "name": "minRate",
  6286.                           "scope": 881,
  6287.                           "stateVariable": false,
  6288.                           "storageLocation": "default",
  6289.                           "type": "uint256",
  6290.                           "value": null,
  6291.                           "visibility": "internal"
  6292.                         },
  6293.                         "children": [
  6294.                           {
  6295.                             "attributes": {
  6296.                               "name": "uint",
  6297.                               "type": "uint256"
  6298.                             },
  6299.                             "id": 855,
  6300.                             "name": "ElementaryTypeName",
  6301.                             "src": "1334:4:3"
  6302.                           }
  6303.                         ],
  6304.                         "id": 856,
  6305.                         "name": "VariableDeclaration",
  6306.                         "src": "1334:12:3"
  6307.                       },
  6308.                       {
  6309.                         "attributes": {
  6310.                           "argumentTypes": null,
  6311.                           "isConstant": false,
  6312.                           "isLValue": false,
  6313.                           "isPure": false,
  6314.                           "isStructConstructorCall": false,
  6315.                           "lValueRequested": false,
  6316.                           "names": [
  6317.                             null
  6318.                           ],
  6319.                           "type": "tuple(uint256,uint256)",
  6320.                           "type_conversion": false
  6321.                         },
  6322.                         "children": [
  6323.                           {
  6324.                             "attributes": {
  6325.                               "argumentTypes": [
  6326.                                 {
  6327.                                   "typeIdentifier": "t_contract$_ERC20_$790",
  6328.                                   "typeString": "contract ERC20"
  6329.                                 },
  6330.                                 {
  6331.                                   "typeIdentifier": "t_contract$_ERC20_$790",
  6332.                                   "typeString": "contract ERC20"
  6333.                                 },
  6334.                                 {
  6335.                                   "typeIdentifier": "t_uint256",
  6336.                                   "typeString": "uint256"
  6337.                                 }
  6338.                               ],
  6339.                               "isConstant": false,
  6340.                               "isLValue": false,
  6341.                               "isPure": false,
  6342.                               "lValueRequested": false,
  6343.                               "member_name": "getExpectedRate",
  6344.                               "referencedDeclaration": 842,
  6345.                               "type": "function (contract ERC20,contract ERC20,uint256) view external returns (uint256,uint256)"
  6346.                             },
  6347.                             "children": [
  6348.                               {
  6349.                                 "attributes": {
  6350.                                   "argumentTypes": null,
  6351.                                   "overloadedDeclarations": [
  6352.                                     null
  6353.                                   ],
  6354.                                   "referencedDeclaration": 848,
  6355.                                   "type": "contract KyberNetworkInterface",
  6356.                                   "value": "kyberNetworkProxy"
  6357.                                 },
  6358.                                 "id": 857,
  6359.                                 "name": "Identifier",
  6360.                                 "src": "1350:17:3"
  6361.                               }
  6362.                             ],
  6363.                             "id": 858,
  6364.                             "name": "MemberAccess",
  6365.                             "src": "1350:33:3"
  6366.                           },
  6367.                           {
  6368.                             "attributes": {
  6369.                               "argumentTypes": null,
  6370.                               "isConstant": false,
  6371.                               "isLValue": false,
  6372.                               "isPure": true,
  6373.                               "isStructConstructorCall": false,
  6374.                               "lValueRequested": false,
  6375.                               "names": [
  6376.                                 null
  6377.                               ],
  6378.                               "type": "contract ERC20",
  6379.                               "type_conversion": true
  6380.                             },
  6381.                             "children": [
  6382.                               {
  6383.                                 "attributes": {
  6384.                                   "argumentTypes": [
  6385.                                     {
  6386.                                       "typeIdentifier": "t_address",
  6387.                                       "typeString": "address"
  6388.                                     }
  6389.                                   ],
  6390.                                   "overloadedDeclarations": [
  6391.                                     null
  6392.                                   ],
  6393.                                   "referencedDeclaration": 790,
  6394.                                   "type": "type(contract ERC20)",
  6395.                                   "value": "ERC20"
  6396.                                 },
  6397.                                 "id": 859,
  6398.                                 "name": "Identifier",
  6399.                                 "src": "1384:5:3"
  6400.                               },
  6401.                               {
  6402.                                 "attributes": {
  6403.                                   "argumentTypes": null,
  6404.                                   "overloadedDeclarations": [
  6405.                                     null
  6406.                                   ],
  6407.                                   "referencedDeclaration": 846,
  6408.                                   "type": "address",
  6409.                                   "value": "ETH_TOKEN_ADDRESS"
  6410.                                 },
  6411.                                 "id": 860,
  6412.                                 "name": "Identifier",
  6413.                                 "src": "1390:17:3"
  6414.                               }
  6415.                             ],
  6416.                             "id": 861,
  6417.                             "name": "FunctionCall",
  6418.                             "src": "1384:24:3"
  6419.                           },
  6420.                           {
  6421.                             "attributes": {
  6422.                               "argumentTypes": null,
  6423.                               "overloadedDeclarations": [
  6424.                                 null
  6425.                               ],
  6426.                               "referencedDeclaration": 850,
  6427.                               "type": "contract ERC20",
  6428.                               "value": "mcdDai"
  6429.                             },
  6430.                             "id": 862,
  6431.                             "name": "Identifier",
  6432.                             "src": "1410:6:3"
  6433.                           },
  6434.                           {
  6435.                             "attributes": {
  6436.                               "argumentTypes": null,
  6437.                               "isConstant": false,
  6438.                               "isLValue": false,
  6439.                               "isPure": false,
  6440.                               "lValueRequested": false,
  6441.                               "member_name": "value",
  6442.                               "referencedDeclaration": null,
  6443.                               "type": "uint256"
  6444.                             },
  6445.                             "children": [
  6446.                               {
  6447.                                 "attributes": {
  6448.                                   "argumentTypes": null,
  6449.                                   "overloadedDeclarations": [
  6450.                                     null
  6451.                                   ],
  6452.                                   "referencedDeclaration": 2821,
  6453.                                   "type": "msg",
  6454.                                   "value": "msg"
  6455.                                 },
  6456.                                 "id": 863,
  6457.                                 "name": "Identifier",
  6458.                                 "src": "1418:3:3"
  6459.                               }
  6460.                             ],
  6461.                             "id": 864,
  6462.                             "name": "MemberAccess",
  6463.                             "src": "1418:9:3"
  6464.                           }
  6465.                         ],
  6466.                         "id": 865,
  6467.                         "name": "FunctionCall",
  6468.                         "src": "1350:78:3"
  6469.                       }
  6470.                     ],
  6471.                     "id": 866,
  6472.                     "name": "VariableDeclarationStatement",
  6473.                     "src": "1331:97:3"
  6474.                   },
  6475.                   {
  6476.                     "attributes": {
  6477.                       "assignments": [
  6478.                         868
  6479.                       ]
  6480.                     },
  6481.                     "children": [
  6482.                       {
  6483.                         "attributes": {
  6484.                           "constant": false,
  6485.                           "name": "result",
  6486.                           "scope": 881,
  6487.                           "stateVariable": false,
  6488.                           "storageLocation": "default",
  6489.                           "type": "uint256",
  6490.                           "value": null,
  6491.                           "visibility": "internal"
  6492.                         },
  6493.                         "children": [
  6494.                           {
  6495.                             "attributes": {
  6496.                               "name": "uint",
  6497.                               "type": "uint256"
  6498.                             },
  6499.                             "id": 867,
  6500.                             "name": "ElementaryTypeName",
  6501.                             "src": "1438:4:3"
  6502.                           }
  6503.                         ],
  6504.                         "id": 868,
  6505.                         "name": "VariableDeclaration",
  6506.                         "src": "1438:11:3"
  6507.                       },
  6508.                       {
  6509.                         "attributes": {
  6510.                           "argumentTypes": null,
  6511.                           "isConstant": false,
  6512.                           "isLValue": false,
  6513.                           "isPure": false,
  6514.                           "isStructConstructorCall": false,
  6515.                           "lValueRequested": false,
  6516.                           "names": [
  6517.                             null
  6518.                           ],
  6519.                           "type": "uint256",
  6520.                           "type_conversion": false
  6521.                         },
  6522.                         "children": [
  6523.                           {
  6524.                             "attributes": {
  6525.                               "argumentTypes": [
  6526.                                 {
  6527.                                   "typeIdentifier": "t_contract$_ERC20_$790",
  6528.                                   "typeString": "contract ERC20"
  6529.                                 },
  6530.                                 {
  6531.                                   "typeIdentifier": "t_uint256",
  6532.                                   "typeString": "uint256"
  6533.                                 }
  6534.                               ],
  6535.                               "isConstant": false,
  6536.                               "isLValue": false,
  6537.                               "isPure": false,
  6538.                               "isStructConstructorCall": false,
  6539.                               "lValueRequested": false,
  6540.                               "names": [
  6541.                                 null
  6542.                               ],
  6543.                               "type": "function (contract ERC20,uint256) payable external returns (uint256)",
  6544.                               "type_conversion": false
  6545.                             },
  6546.                             "children": [
  6547.                               {
  6548.                                 "attributes": {
  6549.                                   "argumentTypes": [
  6550.                                     {
  6551.                                       "typeIdentifier": "t_uint256",
  6552.                                       "typeString": "uint256"
  6553.                                     }
  6554.                                   ],
  6555.                                   "isConstant": false,
  6556.                                   "isLValue": false,
  6557.                                   "isPure": false,
  6558.                                   "lValueRequested": false,
  6559.                                   "member_name": "value",
  6560.                                   "referencedDeclaration": null,
  6561.                                   "type": "function (uint256) pure returns (function (contract ERC20,uint256) payable external returns (uint256))"
  6562.                                 },
  6563.                                 "children": [
  6564.                                   {
  6565.                                     "attributes": {
  6566.                                       "argumentTypes": null,
  6567.                                       "isConstant": false,
  6568.                                       "isLValue": false,
  6569.                                       "isPure": false,
  6570.                                       "lValueRequested": false,
  6571.                                       "member_name": "swapEtherToToken",
  6572.                                       "referencedDeclaration": 829,
  6573.                                       "type": "function (contract ERC20,uint256) payable external returns (uint256)"
  6574.                                     },
  6575.                                     "children": [
  6576.                                       {
  6577.                                         "attributes": {
  6578.                                           "argumentTypes": null,
  6579.                                           "overloadedDeclarations": [
  6580.                                             null
  6581.                                           ],
  6582.                                           "referencedDeclaration": 848,
  6583.                                           "type": "contract KyberNetworkInterface",
  6584.                                           "value": "kyberNetworkProxy"
  6585.                                         },
  6586.                                         "id": 869,
  6587.                                         "name": "Identifier",
  6588.                                         "src": "1452:17:3"
  6589.                                       }
  6590.                                     ],
  6591.                                     "id": 870,
  6592.                                     "name": "MemberAccess",
  6593.                                     "src": "1452:34:3"
  6594.                                   }
  6595.                                 ],
  6596.                                 "id": 871,
  6597.                                 "name": "MemberAccess",
  6598.                                 "src": "1452:40:3"
  6599.                               },
  6600.                               {
  6601.                                 "attributes": {
  6602.                                   "argumentTypes": null,
  6603.                                   "isConstant": false,
  6604.                                   "isLValue": false,
  6605.                                   "isPure": false,
  6606.                                   "lValueRequested": false,
  6607.                                   "member_name": "value",
  6608.                                   "referencedDeclaration": null,
  6609.                                   "type": "uint256"
  6610.                                 },
  6611.                                 "children": [
  6612.                                   {
  6613.                                     "attributes": {
  6614.                                       "argumentTypes": null,
  6615.                                       "overloadedDeclarations": [
  6616.                                         null
  6617.                                       ],
  6618.                                       "referencedDeclaration": 2821,
  6619.                                       "type": "msg",
  6620.                                       "value": "msg"
  6621.                                     },
  6622.                                     "id": 872,
  6623.                                     "name": "Identifier",
  6624.                                     "src": "1493:3:3"
  6625.                                   }
  6626.                                 ],
  6627.                                 "id": 873,
  6628.                                 "name": "MemberAccess",
  6629.                                 "src": "1493:9:3"
  6630.                               }
  6631.                             ],
  6632.                             "id": 874,
  6633.                             "name": "FunctionCall",
  6634.                             "src": "1452:51:3"
  6635.                           },
  6636.                           {
  6637.                             "attributes": {
  6638.                               "argumentTypes": null,
  6639.                               "overloadedDeclarations": [
  6640.                                 null
  6641.                               ],
  6642.                               "referencedDeclaration": 850,
  6643.                               "type": "contract ERC20",
  6644.                               "value": "mcdDai"
  6645.                             },
  6646.                             "id": 875,
  6647.                             "name": "Identifier",
  6648.                             "src": "1504:6:3"
  6649.                           },
  6650.                           {
  6651.                             "attributes": {
  6652.                               "argumentTypes": null,
  6653.                               "overloadedDeclarations": [
  6654.                                 null
  6655.                               ],
  6656.                               "referencedDeclaration": 856,
  6657.                               "type": "uint256",
  6658.                               "value": "minRate"
  6659.                             },
  6660.                             "id": 876,
  6661.                             "name": "Identifier",
  6662.                             "src": "1512:7:3"
  6663.                           }
  6664.                         ],
  6665.                         "id": 877,
  6666.                         "name": "FunctionCall",
  6667.                         "src": "1452:68:3"
  6668.                       }
  6669.                     ],
  6670.                     "id": 878,
  6671.                     "name": "VariableDeclarationStatement",
  6672.                     "src": "1438:82:3"
  6673.                   },
  6674.                   {
  6675.                     "attributes": {
  6676.                       "functionReturnParameters": 854
  6677.                     },
  6678.                     "children": [
  6679.                       {
  6680.                         "attributes": {
  6681.                           "argumentTypes": null,
  6682.                           "overloadedDeclarations": [
  6683.                             null
  6684.                           ],
  6685.                           "referencedDeclaration": 868,
  6686.                           "type": "uint256",
  6687.                           "value": "result"
  6688.                         },
  6689.                         "id": 879,
  6690.                         "name": "Identifier",
  6691.                         "src": "1537:6:3"
  6692.                       }
  6693.                     ],
  6694.                     "id": 880,
  6695.                     "name": "Return",
  6696.                     "src": "1530:13:3"
  6697.                   }
  6698.                 ],
  6699.                 "id": 881,
  6700.                 "name": "Block",
  6701.                 "src": "1321:229:3"
  6702.               }
  6703.             ],
  6704.             "id": 882,
  6705.             "name": "FunctionDefinition",
  6706.             "src": "1219:331:3"
  6707.           },
  6708.           {
  6709.             "attributes": {
  6710.               "documentation": null,
  6711.               "implemented": true,
  6712.               "isConstructor": false,
  6713.               "kind": "function",
  6714.               "modifiers": [
  6715.                 null
  6716.               ],
  6717.               "name": "swapTokenToToken",
  6718.               "scope": 947,
  6719.               "stateMutability": "nonpayable",
  6720.               "superFunction": null,
  6721.               "visibility": "public"
  6722.             },
  6723.             "children": [
  6724.               {
  6725.                 "children": [
  6726.                   {
  6727.                     "attributes": {
  6728.                       "constant": false,
  6729.                       "name": "_srcToken",
  6730.                       "scope": 946,
  6731.                       "stateVariable": false,
  6732.                       "storageLocation": "default",
  6733.                       "type": "contract ERC20",
  6734.                       "value": null,
  6735.                       "visibility": "internal"
  6736.                     },
  6737.                     "children": [
  6738.                       {
  6739.                         "attributes": {
  6740.                           "contractScope": null,
  6741.                           "name": "ERC20",
  6742.                           "referencedDeclaration": 790,
  6743.                           "type": "contract ERC20"
  6744.                         },
  6745.                         "id": 883,
  6746.                         "name": "UserDefinedTypeName",
  6747.                         "src": "1595:5:3"
  6748.                       }
  6749.                     ],
  6750.                     "id": 884,
  6751.                     "name": "VariableDeclaration",
  6752.                     "src": "1595:15:3"
  6753.                   },
  6754.                   {
  6755.                     "attributes": {
  6756.                       "constant": false,
  6757.                       "name": "_srcQty",
  6758.                       "scope": 946,
  6759.                       "stateVariable": false,
  6760.                       "storageLocation": "default",
  6761.                       "type": "uint256",
  6762.                       "value": null,
  6763.                       "visibility": "internal"
  6764.                     },
  6765.                     "children": [
  6766.                       {
  6767.                         "attributes": {
  6768.                           "name": "uint",
  6769.                           "type": "uint256"
  6770.                         },
  6771.                         "id": 885,
  6772.                         "name": "ElementaryTypeName",
  6773.                         "src": "1624:4:3"
  6774.                       }
  6775.                     ],
  6776.                     "id": 886,
  6777.                     "name": "VariableDeclaration",
  6778.                     "src": "1624:12:3"
  6779.                   }
  6780.                 ],
  6781.                 "id": 887,
  6782.                 "name": "ParameterList",
  6783.                 "src": "1581:56:3"
  6784.               },
  6785.               {
  6786.                 "children": [
  6787.                   {
  6788.                     "attributes": {
  6789.                       "constant": false,
  6790.                       "name": "_receivedAmount",
  6791.                       "scope": 946,
  6792.                       "stateVariable": false,
  6793.                       "storageLocation": "default",
  6794.                       "type": "uint256",
  6795.                       "value": null,
  6796.                       "visibility": "internal"
  6797.                     },
  6798.                     "children": [
  6799.                       {
  6800.                         "attributes": {
  6801.                           "name": "uint",
  6802.                           "type": "uint256"
  6803.                         },
  6804.                         "id": 888,
  6805.                         "name": "ElementaryTypeName",
  6806.                         "src": "1670:4:3"
  6807.                       }
  6808.                     ],
  6809.                     "id": 889,
  6810.                     "name": "VariableDeclaration",
  6811.                     "src": "1670:20:3"
  6812.                   }
  6813.                 ],
  6814.                 "id": 890,
  6815.                 "name": "ParameterList",
  6816.                 "src": "1669:22:3"
  6817.               },
  6818.               {
  6819.                 "children": [
  6820.                   {
  6821.                     "attributes": {
  6822.                       "assignments": [
  6823.                         null,
  6824.                         892
  6825.                       ]
  6826.                     },
  6827.                     "children": [
  6828.                       {
  6829.                         "attributes": {
  6830.                           "constant": false,
  6831.                           "name": "minRate",
  6832.                           "scope": 945,
  6833.                           "stateVariable": false,
  6834.                           "storageLocation": "default",
  6835.                           "type": "uint256",
  6836.                           "value": null,
  6837.                           "visibility": "internal"
  6838.                         },
  6839.                         "children": [
  6840.                           {
  6841.                             "attributes": {
  6842.                               "name": "uint",
  6843.                               "type": "uint256"
  6844.                             },
  6845.                             "id": 891,
  6846.                             "name": "ElementaryTypeName",
  6847.                             "src": "1827:4:3"
  6848.                           }
  6849.                         ],
  6850.                         "id": 892,
  6851.                         "name": "VariableDeclaration",
  6852.                         "src": "1827:12:3"
  6853.                       },
  6854.                       {
  6855.                         "attributes": {
  6856.                           "argumentTypes": null,
  6857.                           "isConstant": false,
  6858.                           "isLValue": false,
  6859.                           "isPure": false,
  6860.                           "isStructConstructorCall": false,
  6861.                           "lValueRequested": false,
  6862.                           "names": [
  6863.                             null
  6864.                           ],
  6865.                           "type": "tuple(uint256,uint256)",
  6866.                           "type_conversion": false
  6867.                         },
  6868.                         "children": [
  6869.                           {
  6870.                             "attributes": {
  6871.                               "argumentTypes": [
  6872.                                 {
  6873.                                   "typeIdentifier": "t_contract$_ERC20_$790",
  6874.                                   "typeString": "contract ERC20"
  6875.                                 },
  6876.                                 {
  6877.                                   "typeIdentifier": "t_contract$_ERC20_$790",
  6878.                                   "typeString": "contract ERC20"
  6879.                                 },
  6880.                                 {
  6881.                                   "typeIdentifier": "t_uint256",
  6882.                                   "typeString": "uint256"
  6883.                                 }
  6884.                               ],
  6885.                               "isConstant": false,
  6886.                               "isLValue": false,
  6887.                               "isPure": false,
  6888.                               "lValueRequested": false,
  6889.                               "member_name": "getExpectedRate",
  6890.                               "referencedDeclaration": 842,
  6891.                               "type": "function (contract ERC20,contract ERC20,uint256) view external returns (uint256,uint256)"
  6892.                             },
  6893.                             "children": [
  6894.                               {
  6895.                                 "attributes": {
  6896.                                   "argumentTypes": null,
  6897.                                   "overloadedDeclarations": [
  6898.                                     null
  6899.                                   ],
  6900.                                   "referencedDeclaration": 848,
  6901.                                   "type": "contract KyberNetworkInterface",
  6902.                                   "value": "kyberNetworkProxy"
  6903.                                 },
  6904.                                 "id": 893,
  6905.                                 "name": "Identifier",
  6906.                                 "src": "1843:17:3"
  6907.                               }
  6908.                             ],
  6909.                             "id": 894,
  6910.                             "name": "MemberAccess",
  6911.                             "src": "1843:33:3"
  6912.                           },
  6913.                           {
  6914.                             "attributes": {
  6915.                               "argumentTypes": null,
  6916.                               "overloadedDeclarations": [
  6917.                                 null
  6918.                               ],
  6919.                               "referencedDeclaration": 884,
  6920.                               "type": "contract ERC20",
  6921.                               "value": "_srcToken"
  6922.                             },
  6923.                             "id": 895,
  6924.                             "name": "Identifier",
  6925.                             "src": "1877:9:3"
  6926.                           },
  6927.                           {
  6928.                             "attributes": {
  6929.                               "argumentTypes": null,
  6930.                               "overloadedDeclarations": [
  6931.                                 null
  6932.                               ],
  6933.                               "referencedDeclaration": 850,
  6934.                               "type": "contract ERC20",
  6935.                               "value": "mcdDai"
  6936.                             },
  6937.                             "id": 896,
  6938.                             "name": "Identifier",
  6939.                             "src": "1888:6:3"
  6940.                           },
  6941.                           {
  6942.                             "attributes": {
  6943.                               "argumentTypes": null,
  6944.                               "overloadedDeclarations": [
  6945.                                 null
  6946.                               ],
  6947.                               "referencedDeclaration": 886,
  6948.                               "type": "uint256",
  6949.                               "value": "_srcQty"
  6950.                             },
  6951.                             "id": 897,
  6952.                             "name": "Identifier",
  6953.                             "src": "1896:7:3"
  6954.                           }
  6955.                         ],
  6956.                         "id": 898,
  6957.                         "name": "FunctionCall",
  6958.                         "src": "1843:61:3"
  6959.                       }
  6960.                     ],
  6961.                     "id": 899,
  6962.                     "name": "VariableDeclarationStatement",
  6963.                     "src": "1824:80:3"
  6964.                   },
  6965.                   {
  6966.                     "children": [
  6967.                       {
  6968.                         "attributes": {
  6969.                           "argumentTypes": null,
  6970.                           "isConstant": false,
  6971.                           "isLValue": false,
  6972.                           "isPure": false,
  6973.                           "isStructConstructorCall": false,
  6974.                           "lValueRequested": false,
  6975.                           "names": [
  6976.                             null
  6977.                           ],
  6978.                           "type": "tuple()",
  6979.                           "type_conversion": false
  6980.                         },
  6981.                         "children": [
  6982.                           {
  6983.                             "attributes": {
  6984.                               "argumentTypes": [
  6985.                                 {
  6986.                                   "typeIdentifier": "t_bool",
  6987.                                   "typeString": "bool"
  6988.                                 },
  6989.                                 {
  6990.                                   "typeIdentifier": "t_stringliteral_cd8a26f843eff9b2bf99b352dcd2a0d6ce6e2f8c493a2424530bffc1932f5b6e",
  6991.                                   "typeString": "literal_string \"Transfer of incoming ERC20 failed\""
  6992.                                 }
  6993.                               ],
  6994.                               "overloadedDeclarations": [
  6995.                                 2824,
  6996.                                 2825
  6997.                               ],
  6998.                               "referencedDeclaration": 2825,
  6999.                               "type": "function (bool,string memory) pure",
  7000.                               "value": "require"
  7001.                             },
  7002.                             "id": 900,
  7003.                             "name": "Identifier",
  7004.                             "src": "1974:7:3"
  7005.                           },
  7006.                           {
  7007.                             "attributes": {
  7008.                               "argumentTypes": null,
  7009.                               "isConstant": false,
  7010.                               "isLValue": false,
  7011.                               "isPure": false,
  7012.                               "isStructConstructorCall": false,
  7013.                               "lValueRequested": false,
  7014.                               "names": [
  7015.                                 null
  7016.                               ],
  7017.                               "type": "bool",
  7018.                               "type_conversion": false
  7019.                             },
  7020.                             "children": [
  7021.                               {
  7022.                                 "attributes": {
  7023.                                   "argumentTypes": [
  7024.                                     {
  7025.                                       "typeIdentifier": "t_address_payable",
  7026.                                       "typeString": "address payable"
  7027.                                     },
  7028.                                     {
  7029.                                       "typeIdentifier": "t_address",
  7030.                                       "typeString": "address"
  7031.                                     },
  7032.                                     {
  7033.                                       "typeIdentifier": "t_uint256",
  7034.                                       "typeString": "uint256"
  7035.                                     }
  7036.                                   ],
  7037.                                   "isConstant": false,
  7038.                                   "isLValue": false,
  7039.                                   "isPure": false,
  7040.                                   "lValueRequested": false,
  7041.                                   "member_name": "transferFrom",
  7042.                                   "referencedDeclaration": 789,
  7043.                                   "type": "function (address,address,uint256) external returns (bool)"
  7044.                                 },
  7045.                                 "children": [
  7046.                                   {
  7047.                                     "attributes": {
  7048.                                       "argumentTypes": null,
  7049.                                       "overloadedDeclarations": [
  7050.                                         null
  7051.                                       ],
  7052.                                       "referencedDeclaration": 884,
  7053.                                       "type": "contract ERC20",
  7054.                                       "value": "_srcToken"
  7055.                                     },
  7056.                                     "id": 901,
  7057.                                     "name": "Identifier",
  7058.                                     "src": "1982:9:3"
  7059.                                   }
  7060.                                 ],
  7061.                                 "id": 902,
  7062.                                 "name": "MemberAccess",
  7063.                                 "src": "1982:22:3"
  7064.                               },
  7065.                               {
  7066.                                 "attributes": {
  7067.                                   "argumentTypes": null,
  7068.                                   "isConstant": false,
  7069.                                   "isLValue": false,
  7070.                                   "isPure": false,
  7071.                                   "lValueRequested": false,
  7072.                                   "member_name": "sender",
  7073.                                   "referencedDeclaration": null,
  7074.                                   "type": "address payable"
  7075.                                 },
  7076.                                 "children": [
  7077.                                   {
  7078.                                     "attributes": {
  7079.                                       "argumentTypes": null,
  7080.                                       "overloadedDeclarations": [
  7081.                                         null
  7082.                                       ],
  7083.                                       "referencedDeclaration": 2821,
  7084.                                       "type": "msg",
  7085.                                       "value": "msg"
  7086.                                     },
  7087.                                     "id": 903,
  7088.                                     "name": "Identifier",
  7089.                                     "src": "2005:3:3"
  7090.                                   }
  7091.                                 ],
  7092.                                 "id": 904,
  7093.                                 "name": "MemberAccess",
  7094.                                 "src": "2005:10:3"
  7095.                               },
  7096.                               {
  7097.                                 "attributes": {
  7098.                                   "argumentTypes": null,
  7099.                                   "isConstant": false,
  7100.                                   "isLValue": false,
  7101.                                   "isPure": false,
  7102.                                   "isStructConstructorCall": false,
  7103.                                   "lValueRequested": false,
  7104.                                   "names": [
  7105.                                     null
  7106.                                   ],
  7107.                                   "type": "address",
  7108.                                   "type_conversion": true
  7109.                                 },
  7110.                                 "children": [
  7111.                                   {
  7112.                                     "attributes": {
  7113.                                       "argumentTypes": [
  7114.                                         {
  7115.                                           "typeIdentifier": "t_contract$_KyberTrader_$947",
  7116.                                           "typeString": "contract KyberTrader"
  7117.                                         }
  7118.                                       ],
  7119.                                       "isConstant": false,
  7120.                                       "isLValue": false,
  7121.                                       "isPure": true,
  7122.                                       "lValueRequested": false,
  7123.                                       "type": "type(address)",
  7124.                                       "value": "address"
  7125.                                     },
  7126.                                     "id": 905,
  7127.                                     "name": "ElementaryTypeNameExpression",
  7128.                                     "src": "2017:7:3"
  7129.                                   },
  7130.                                   {
  7131.                                     "attributes": {
  7132.                                       "argumentTypes": null,
  7133.                                       "overloadedDeclarations": [
  7134.                                         null
  7135.                                       ],
  7136.                                       "referencedDeclaration": 2875,
  7137.                                       "type": "contract KyberTrader",
  7138.                                       "value": "this"
  7139.                                     },
  7140.                                     "id": 906,
  7141.                                     "name": "Identifier",
  7142.                                     "src": "2025:4:3"
  7143.                                   }
  7144.                                 ],
  7145.                                 "id": 907,
  7146.                                 "name": "FunctionCall",
  7147.                                 "src": "2017:13:3"
  7148.                               },
  7149.                               {
  7150.                                 "attributes": {
  7151.                                   "argumentTypes": null,
  7152.                                   "overloadedDeclarations": [
  7153.                                     null
  7154.                                   ],
  7155.                                   "referencedDeclaration": 886,
  7156.                                   "type": "uint256",
  7157.                                   "value": "_srcQty"
  7158.                                 },
  7159.                                 "id": 908,
  7160.                                 "name": "Identifier",
  7161.                                 "src": "2032:7:3"
  7162.                               }
  7163.                             ],
  7164.                             "id": 909,
  7165.                             "name": "FunctionCall",
  7166.                             "src": "1982:58:3"
  7167.                           },
  7168.                           {
  7169.                             "attributes": {
  7170.                               "argumentTypes": null,
  7171.                               "hexvalue": "5472616e73666572206f6620696e636f6d696e67204552433230206661696c6564",
  7172.                               "isConstant": false,
  7173.                               "isLValue": false,
  7174.                               "isPure": true,
  7175.                               "lValueRequested": false,
  7176.                               "subdenomination": null,
  7177.                               "token": "string",
  7178.                               "type": "literal_string \"Transfer of incoming ERC20 failed\"",
  7179.                               "value": "Transfer of incoming ERC20 failed"
  7180.                             },
  7181.                             "id": 910,
  7182.                             "name": "Literal",
  7183.                             "src": "2042:35:3"
  7184.                           }
  7185.                         ],
  7186.                         "id": 911,
  7187.                         "name": "FunctionCall",
  7188.                         "src": "1974:104:3"
  7189.                       }
  7190.                     ],
  7191.                     "id": 912,
  7192.                     "name": "ExpressionStatement",
  7193.                     "src": "1974:104:3"
  7194.                   },
  7195.                   {
  7196.                     "children": [
  7197.                       {
  7198.                         "attributes": {
  7199.                           "argumentTypes": null,
  7200.                           "isConstant": false,
  7201.                           "isLValue": false,
  7202.                           "isPure": false,
  7203.                           "isStructConstructorCall": false,
  7204.                           "lValueRequested": false,
  7205.                           "names": [
  7206.                             null
  7207.                           ],
  7208.                           "type": "tuple()",
  7209.                           "type_conversion": false
  7210.                         },
  7211.                         "children": [
  7212.                           {
  7213.                             "attributes": {
  7214.                               "argumentTypes": [
  7215.                                 {
  7216.                                   "typeIdentifier": "t_bool",
  7217.                                   "typeString": "bool"
  7218.                                 },
  7219.                                 {
  7220.                                   "typeIdentifier": "t_stringliteral_d31ea363c9a235e5ac003b13cce657c446344b42ccccf806e7e8d722ee92802f",
  7221.                                   "typeString": "literal_string \"Could not reset incoming ERC20 allowance\""
  7222.                                 }
  7223.                               ],
  7224.                               "overloadedDeclarations": [
  7225.                                 2824,
  7226.                                 2825
  7227.                               ],
  7228.                               "referencedDeclaration": 2825,
  7229.                               "type": "function (bool,string memory) pure",
  7230.                               "value": "require"
  7231.                             },
  7232.                             "id": 913,
  7233.                             "name": "Identifier",
  7234.                             "src": "2192:7:3"
  7235.                           },
  7236.                           {
  7237.                             "attributes": {
  7238.                               "argumentTypes": null,
  7239.                               "isConstant": false,
  7240.                               "isLValue": false,
  7241.                               "isPure": false,
  7242.                               "isStructConstructorCall": false,
  7243.                               "lValueRequested": false,
  7244.                               "names": [
  7245.                                 null
  7246.                               ],
  7247.                               "type": "bool",
  7248.                               "type_conversion": false
  7249.                             },
  7250.                             "children": [
  7251.                               {
  7252.                                 "attributes": {
  7253.                                   "argumentTypes": [
  7254.                                     {
  7255.                                       "typeIdentifier": "t_address",
  7256.                                       "typeString": "address"
  7257.                                     },
  7258.                                     {
  7259.                                       "typeIdentifier": "t_rational_0_by_1",
  7260.                                       "typeString": "int_const 0"
  7261.                                     }
  7262.                                   ],
  7263.                                   "isConstant": false,
  7264.                                   "isLValue": false,
  7265.                                   "isPure": false,
  7266.                                   "lValueRequested": false,
  7267.                                   "member_name": "approve",
  7268.                                   "referencedDeclaration": 778,
  7269.                                   "type": "function (address,uint256) external returns (bool)"
  7270.                                 },
  7271.                                 "children": [
  7272.                                   {
  7273.                                     "attributes": {
  7274.                                       "argumentTypes": null,
  7275.                                       "overloadedDeclarations": [
  7276.                                         null
  7277.                                       ],
  7278.                                       "referencedDeclaration": 884,
  7279.                                       "type": "contract ERC20",
  7280.                                       "value": "_srcToken"
  7281.                                     },
  7282.                                     "id": 914,
  7283.                                     "name": "Identifier",
  7284.                                     "src": "2200:9:3"
  7285.                                   }
  7286.                                 ],
  7287.                                 "id": 915,
  7288.                                 "name": "MemberAccess",
  7289.                                 "src": "2200:17:3"
  7290.                               },
  7291.                               {
  7292.                                 "attributes": {
  7293.                                   "argumentTypes": null,
  7294.                                   "isConstant": false,
  7295.                                   "isLValue": false,
  7296.                                   "isPure": false,
  7297.                                   "isStructConstructorCall": false,
  7298.                                   "lValueRequested": false,
  7299.                                   "names": [
  7300.                                     null
  7301.                                   ],
  7302.                                   "type": "address",
  7303.                                   "type_conversion": true
  7304.                                 },
  7305.                                 "children": [
  7306.                                   {
  7307.                                     "attributes": {
  7308.                                       "argumentTypes": [
  7309.                                         {
  7310.                                           "typeIdentifier": "t_contract$_KyberNetworkInterface_$843",
  7311.                                           "typeString": "contract KyberNetworkInterface"
  7312.                                         }
  7313.                                       ],
  7314.                                       "isConstant": false,
  7315.                                       "isLValue": false,
  7316.                                       "isPure": true,
  7317.                                       "lValueRequested": false,
  7318.                                       "type": "type(address)",
  7319.                                       "value": "address"
  7320.                                     },
  7321.                                     "id": 916,
  7322.                                     "name": "ElementaryTypeNameExpression",
  7323.                                     "src": "2218:7:3"
  7324.                                   },
  7325.                                   {
  7326.                                     "attributes": {
  7327.                                       "argumentTypes": null,
  7328.                                       "overloadedDeclarations": [
  7329.                                         null
  7330.                                       ],
  7331.                                       "referencedDeclaration": 848,
  7332.                                       "type": "contract KyberNetworkInterface",
  7333.                                       "value": "kyberNetworkProxy"
  7334.                                     },
  7335.                                     "id": 917,
  7336.                                     "name": "Identifier",
  7337.                                     "src": "2226:17:3"
  7338.                                   }
  7339.                                 ],
  7340.                                 "id": 918,
  7341.                                 "name": "FunctionCall",
  7342.                                 "src": "2218:26:3"
  7343.                               },
  7344.                               {
  7345.                                 "attributes": {
  7346.                                   "argumentTypes": null,
  7347.                                   "hexvalue": "30",
  7348.                                   "isConstant": false,
  7349.                                   "isLValue": false,
  7350.                                   "isPure": true,
  7351.                                   "lValueRequested": false,
  7352.                                   "subdenomination": null,
  7353.                                   "token": "number",
  7354.                                   "type": "int_const 0",
  7355.                                   "value": "0"
  7356.                                 },
  7357.                                 "id": 919,
  7358.                                 "name": "Literal",
  7359.                                 "src": "2246:1:3"
  7360.                               }
  7361.                             ],
  7362.                             "id": 920,
  7363.                             "name": "FunctionCall",
  7364.                             "src": "2200:48:3"
  7365.                           },
  7366.                           {
  7367.                             "attributes": {
  7368.                               "argumentTypes": null,
  7369.                               "hexvalue": "436f756c64206e6f7420726573657420696e636f6d696e6720455243323020616c6c6f77616e6365",
  7370.                               "isConstant": false,
  7371.                               "isLValue": false,
  7372.                               "isPure": true,
  7373.                               "lValueRequested": false,
  7374.                               "subdenomination": null,
  7375.                               "token": "string",
  7376.                               "type": "literal_string \"Could not reset incoming ERC20 allowance\"",
  7377.                               "value": "Could not reset incoming ERC20 allowance"
  7378.                             },
  7379.                             "id": 921,
  7380.                             "name": "Literal",
  7381.                             "src": "2250:42:3"
  7382.                           }
  7383.                         ],
  7384.                         "id": 922,
  7385.                         "name": "FunctionCall",
  7386.                         "src": "2192:101:3"
  7387.                       }
  7388.                     ],
  7389.                     "id": 923,
  7390.                     "name": "ExpressionStatement",
  7391.                     "src": "2192:101:3"
  7392.                   },
  7393.                   {
  7394.                     "children": [
  7395.                       {
  7396.                         "attributes": {
  7397.                           "argumentTypes": null,
  7398.                           "isConstant": false,
  7399.                           "isLValue": false,
  7400.                           "isPure": false,
  7401.                           "isStructConstructorCall": false,
  7402.                           "lValueRequested": false,
  7403.                           "names": [
  7404.                             null
  7405.                           ],
  7406.                           "type": "bool",
  7407.                           "type_conversion": false
  7408.                         },
  7409.                         "children": [
  7410.                           {
  7411.                             "attributes": {
  7412.                               "argumentTypes": [
  7413.                                 {
  7414.                                   "typeIdentifier": "t_address",
  7415.                                   "typeString": "address"
  7416.                                 },
  7417.                                 {
  7418.                                   "typeIdentifier": "t_uint256",
  7419.                                   "typeString": "uint256"
  7420.                                 }
  7421.                               ],
  7422.                               "isConstant": false,
  7423.                               "isLValue": false,
  7424.                               "isPure": false,
  7425.                               "lValueRequested": false,
  7426.                               "member_name": "approve",
  7427.                               "referencedDeclaration": 778,
  7428.                               "type": "function (address,uint256) external returns (bool)"
  7429.                             },
  7430.                             "children": [
  7431.                               {
  7432.                                 "attributes": {
  7433.                                   "argumentTypes": null,
  7434.                                   "overloadedDeclarations": [
  7435.                                     null
  7436.                                   ],
  7437.                                   "referencedDeclaration": 884,
  7438.                                   "type": "contract ERC20",
  7439.                                   "value": "_srcToken"
  7440.                                 },
  7441.                                 "id": 924,
  7442.                                 "name": "Identifier",
  7443.                                 "src": "2371:9:3"
  7444.                               }
  7445.                             ],
  7446.                             "id": 926,
  7447.                             "name": "MemberAccess",
  7448.                             "src": "2371:17:3"
  7449.                           },
  7450.                           {
  7451.                             "attributes": {
  7452.                               "argumentTypes": null,
  7453.                               "isConstant": false,
  7454.                               "isLValue": false,
  7455.                               "isPure": false,
  7456.                               "isStructConstructorCall": false,
  7457.                               "lValueRequested": false,
  7458.                               "names": [
  7459.                                 null
  7460.                               ],
  7461.                               "type": "address",
  7462.                               "type_conversion": true
  7463.                             },
  7464.                             "children": [
  7465.                               {
  7466.                                 "attributes": {
  7467.                                   "argumentTypes": [
  7468.                                     {
  7469.                                       "typeIdentifier": "t_contract$_KyberNetworkInterface_$843",
  7470.                                       "typeString": "contract KyberNetworkInterface"
  7471.                                     }
  7472.                                   ],
  7473.                                   "isConstant": false,
  7474.                                   "isLValue": false,
  7475.                                   "isPure": true,
  7476.                                   "lValueRequested": false,
  7477.                                   "type": "type(address)",
  7478.                                   "value": "address"
  7479.                                 },
  7480.                                 "id": 927,
  7481.                                 "name": "ElementaryTypeNameExpression",
  7482.                                 "src": "2389:7:3"
  7483.                               },
  7484.                               {
  7485.                                 "attributes": {
  7486.                                   "argumentTypes": null,
  7487.                                   "overloadedDeclarations": [
  7488.                                     null
  7489.                                   ],
  7490.                                   "referencedDeclaration": 848,
  7491.                                   "type": "contract KyberNetworkInterface",
  7492.                                   "value": "kyberNetworkProxy"
  7493.                                 },
  7494.                                 "id": 928,
  7495.                                 "name": "Identifier",
  7496.                                 "src": "2397:17:3"
  7497.                               }
  7498.                             ],
  7499.                             "id": 929,
  7500.                             "name": "FunctionCall",
  7501.                             "src": "2389:26:3"
  7502.                           },
  7503.                           {
  7504.                             "attributes": {
  7505.                               "argumentTypes": null,
  7506.                               "overloadedDeclarations": [
  7507.                                 null
  7508.                               ],
  7509.                               "referencedDeclaration": 886,
  7510.                               "type": "uint256",
  7511.                               "value": "_srcQty"
  7512.                             },
  7513.                             "id": 930,
  7514.                             "name": "Identifier",
  7515.                             "src": "2417:7:3"
  7516.                           }
  7517.                         ],
  7518.                         "id": 931,
  7519.                         "name": "FunctionCall",
  7520.                         "src": "2371:54:3"
  7521.                       }
  7522.                     ],
  7523.                     "id": 932,
  7524.                     "name": "ExpressionStatement",
  7525.                     "src": "2371:54:3"
  7526.                   },
  7527.                   {
  7528.                     "attributes": {
  7529.                       "assignments": [
  7530.                         934
  7531.                       ]
  7532.                     },
  7533.                     "children": [
  7534.                       {
  7535.                         "attributes": {
  7536.                           "constant": false,
  7537.                           "name": "result",
  7538.                           "scope": 945,
  7539.                           "stateVariable": false,
  7540.                           "storageLocation": "default",
  7541.                           "type": "uint256",
  7542.                           "value": null,
  7543.                           "visibility": "internal"
  7544.                         },
  7545.                         "children": [
  7546.                           {
  7547.                             "attributes": {
  7548.                               "name": "uint",
  7549.                               "type": "uint256"
  7550.                             },
  7551.                             "id": 933,
  7552.                             "name": "ElementaryTypeName",
  7553.                             "src": "2464:4:3"
  7554.                           }
  7555.                         ],
  7556.                         "id": 934,
  7557.                         "name": "VariableDeclaration",
  7558.                         "src": "2464:11:3"
  7559.                       },
  7560.                       {
  7561.                         "attributes": {
  7562.                           "argumentTypes": null,
  7563.                           "isConstant": false,
  7564.                           "isLValue": false,
  7565.                           "isPure": false,
  7566.                           "isStructConstructorCall": false,
  7567.                           "lValueRequested": false,
  7568.                           "names": [
  7569.                             null
  7570.                           ],
  7571.                           "type": "uint256",
  7572.                           "type_conversion": false
  7573.                         },
  7574.                         "children": [
  7575.                           {
  7576.                             "attributes": {
  7577.                               "argumentTypes": [
  7578.                                 {
  7579.                                   "typeIdentifier": "t_contract$_ERC20_$790",
  7580.                                   "typeString": "contract ERC20"
  7581.                                 },
  7582.                                 {
  7583.                                   "typeIdentifier": "t_uint256",
  7584.                                   "typeString": "uint256"
  7585.                                 },
  7586.                                 {
  7587.                                   "typeIdentifier": "t_contract$_ERC20_$790",
  7588.                                   "typeString": "contract ERC20"
  7589.                                 },
  7590.                                 {
  7591.                                   "typeIdentifier": "t_uint256",
  7592.                                   "typeString": "uint256"
  7593.                                 }
  7594.                               ],
  7595.                               "isConstant": false,
  7596.                               "isLValue": false,
  7597.                               "isPure": false,
  7598.                               "lValueRequested": false,
  7599.                               "member_name": "swapTokenToToken",
  7600.                               "referencedDeclaration": 820,
  7601.                               "type": "function (contract ERC20,uint256,contract ERC20,uint256) external returns (uint256)"
  7602.                             },
  7603.                             "children": [
  7604.                               {
  7605.                                 "attributes": {
  7606.                                   "argumentTypes": null,
  7607.                                   "overloadedDeclarations": [
  7608.                                     null
  7609.                                   ],
  7610.                                   "referencedDeclaration": 848,
  7611.                                   "type": "contract KyberNetworkInterface",
  7612.                                   "value": "kyberNetworkProxy"
  7613.                                 },
  7614.                                 "id": 935,
  7615.                                 "name": "Identifier",
  7616.                                 "src": "2478:17:3"
  7617.                               }
  7618.                             ],
  7619.                             "id": 936,
  7620.                             "name": "MemberAccess",
  7621.                             "src": "2478:34:3"
  7622.                           },
  7623.                           {
  7624.                             "attributes": {
  7625.                               "argumentTypes": null,
  7626.                               "overloadedDeclarations": [
  7627.                                 null
  7628.                               ],
  7629.                               "referencedDeclaration": 884,
  7630.                               "type": "contract ERC20",
  7631.                               "value": "_srcToken"
  7632.                             },
  7633.                             "id": 937,
  7634.                             "name": "Identifier",
  7635.                             "src": "2513:9:3"
  7636.                           },
  7637.                           {
  7638.                             "attributes": {
  7639.                               "argumentTypes": null,
  7640.                               "overloadedDeclarations": [
  7641.                                 null
  7642.                               ],
  7643.                               "referencedDeclaration": 886,
  7644.                               "type": "uint256",
  7645.                               "value": "_srcQty"
  7646.                             },
  7647.                             "id": 938,
  7648.                             "name": "Identifier",
  7649.                             "src": "2524:7:3"
  7650.                           },
  7651.                           {
  7652.                             "attributes": {
  7653.                               "argumentTypes": null,
  7654.                               "overloadedDeclarations": [
  7655.                                 null
  7656.                               ],
  7657.                               "referencedDeclaration": 850,
  7658.                               "type": "contract ERC20",
  7659.                               "value": "mcdDai"
  7660.                             },
  7661.                             "id": 939,
  7662.                             "name": "Identifier",
  7663.                             "src": "2533:6:3"
  7664.                           },
  7665.                           {
  7666.                             "attributes": {
  7667.                               "argumentTypes": null,
  7668.                               "overloadedDeclarations": [
  7669.                                 null
  7670.                               ],
  7671.                               "referencedDeclaration": 892,
  7672.                               "type": "uint256",
  7673.                               "value": "minRate"
  7674.                             },
  7675.                             "id": 940,
  7676.                             "name": "Identifier",
  7677.                             "src": "2541:7:3"
  7678.                           }
  7679.                         ],
  7680.                         "id": 941,
  7681.                         "name": "FunctionCall",
  7682.                         "src": "2478:71:3"
  7683.                       }
  7684.                     ],
  7685.                     "id": 942,
  7686.                     "name": "VariableDeclarationStatement",
  7687.                     "src": "2464:85:3"
  7688.                   },
  7689.                   {
  7690.                     "attributes": {
  7691.                       "functionReturnParameters": 890
  7692.                     },
  7693.                     "children": [
  7694.                       {
  7695.                         "attributes": {
  7696.                           "argumentTypes": null,
  7697.                           "overloadedDeclarations": [
  7698.                             null
  7699.                           ],
  7700.                           "referencedDeclaration": 934,
  7701.                           "type": "uint256",
  7702.                           "value": "result"
  7703.                         },
  7704.                         "id": 943,
  7705.                         "name": "Identifier",
  7706.                         "src": "2566:6:3"
  7707.                       }
  7708.                     ],
  7709.                     "id": 944,
  7710.                     "name": "Return",
  7711.                     "src": "2559:13:3"
  7712.                   }
  7713.                 ],
  7714.                 "id": 945,
  7715.                 "name": "Block",
  7716.                 "src": "1696:883:3"
  7717.               }
  7718.             ],
  7719.             "id": 946,
  7720.             "name": "FunctionDefinition",
  7721.             "src": "1556:1023:3"
  7722.           }
  7723.         ],
  7724.         "id": 947,
  7725.         "name": "ContractDefinition",
  7726.         "src": "1022:1559:3"
  7727.       },
  7728.       {
  7729.         "attributes": {
  7730.           "contractDependencies": [
  7731.             947
  7732.           ],
  7733.           "contractKind": "contract",
  7734.           "documentation": null,
  7735.           "fullyImplemented": true,
  7736.           "linearizedBaseContracts": [
  7737.             1122,
  7738.             947
  7739.           ],
  7740.           "name": "EntryBot",
  7741.           "scope": 1138
  7742.         },
  7743.         "children": [
  7744.           {
  7745.             "attributes": {
  7746.               "arguments": null
  7747.             },
  7748.             "children": [
  7749.               {
  7750.                 "attributes": {
  7751.                   "contractScope": null,
  7752.                   "name": "KyberTrader",
  7753.                   "referencedDeclaration": 947,
  7754.                   "type": "contract KyberTrader"
  7755.                 },
  7756.                 "id": 948,
  7757.                 "name": "UserDefinedTypeName",
  7758.                 "src": "2604:11:3"
  7759.               }
  7760.             ],
  7761.             "id": 949,
  7762.             "name": "InheritanceSpecifier",
  7763.             "src": "2604:11:3"
  7764.           },
  7765.           {
  7766.             "attributes": {
  7767.               "constant": false,
  7768.               "name": "bucketSale",
  7769.               "scope": 1122,
  7770.               "stateVariable": true,
  7771.               "storageLocation": "default",
  7772.               "type": "contract BucketSale",
  7773.               "value": null,
  7774.               "visibility": "internal"
  7775.             },
  7776.             "children": [
  7777.               {
  7778.                 "attributes": {
  7779.                   "contractScope": null,
  7780.                   "name": "BucketSale",
  7781.                   "referencedDeclaration": 807,
  7782.                   "type": "contract BucketSale"
  7783.                 },
  7784.                 "id": 950,
  7785.                 "name": "UserDefinedTypeName",
  7786.                 "src": "2622:10:3"
  7787.               }
  7788.             ],
  7789.             "id": 951,
  7790.             "name": "VariableDeclaration",
  7791.             "src": "2622:21:3"
  7792.           },
  7793.           {
  7794.             "attributes": {
  7795.               "documentation": null,
  7796.               "implemented": true,
  7797.               "isConstructor": true,
  7798.               "kind": "constructor",
  7799.               "modifiers": [
  7800.                 null
  7801.               ],
  7802.               "name": "",
  7803.               "scope": 1122,
  7804.               "stateMutability": "nonpayable",
  7805.               "superFunction": null,
  7806.               "visibility": "public"
  7807.             },
  7808.             "children": [
  7809.               {
  7810.                 "children": [
  7811.                   {
  7812.                     "attributes": {
  7813.                       "constant": false,
  7814.                       "name": "_bucketSale",
  7815.                       "scope": 987,
  7816.                       "stateVariable": false,
  7817.                       "storageLocation": "default",
  7818.                       "type": "contract BucketSale",
  7819.                       "value": null,
  7820.                       "visibility": "internal"
  7821.                     },
  7822.                     "children": [
  7823.                       {
  7824.                         "attributes": {
  7825.                           "contractScope": null,
  7826.                           "name": "BucketSale",
  7827.                           "referencedDeclaration": 807,
  7828.                           "type": "contract BucketSale"
  7829.                         },
  7830.                         "id": 952,
  7831.                         "name": "UserDefinedTypeName",
  7832.                         "src": "2662:10:3"
  7833.                       }
  7834.                     ],
  7835.                     "id": 953,
  7836.                     "name": "VariableDeclaration",
  7837.                     "src": "2662:22:3"
  7838.                   },
  7839.                   {
  7840.                     "attributes": {
  7841.                       "constant": false,
  7842.                       "name": "_kyberNetworkProxy",
  7843.                       "scope": 987,
  7844.                       "stateVariable": false,
  7845.                       "storageLocation": "default",
  7846.                       "type": "contract KyberNetworkInterface",
  7847.                       "value": null,
  7848.                       "visibility": "internal"
  7849.                     },
  7850.                     "children": [
  7851.                       {
  7852.                         "attributes": {
  7853.                           "contractScope": null,
  7854.                           "name": "KyberNetworkInterface",
  7855.                           "referencedDeclaration": 843,
  7856.                           "type": "contract KyberNetworkInterface"
  7857.                         },
  7858.                         "id": 954,
  7859.                         "name": "UserDefinedTypeName",
  7860.                         "src": "2686:21:3"
  7861.                       }
  7862.                     ],
  7863.                     "id": 955,
  7864.                     "name": "VariableDeclaration",
  7865.                     "src": "2686:40:3"
  7866.                   }
  7867.                 ],
  7868.                 "id": 956,
  7869.                 "name": "ParameterList",
  7870.                 "src": "2661:66:3"
  7871.               },
  7872.               {
  7873.                 "attributes": {
  7874.                   "parameters": [
  7875.                     null
  7876.                   ]
  7877.                 },
  7878.                 "children": [],
  7879.                 "id": 957,
  7880.                 "name": "ParameterList",
  7881.                 "src": "2747:0:3"
  7882.               },
  7883.               {
  7884.                 "children": [
  7885.                   {
  7886.                     "children": [
  7887.                       {
  7888.                         "attributes": {
  7889.                           "argumentTypes": null,
  7890.                           "isConstant": false,
  7891.                           "isLValue": false,
  7892.                           "isPure": false,
  7893.                           "lValueRequested": false,
  7894.                           "operator": "=",
  7895.                           "type": "contract BucketSale"
  7896.                         },
  7897.                         "children": [
  7898.                           {
  7899.                             "attributes": {
  7900.                               "argumentTypes": null,
  7901.                               "overloadedDeclarations": [
  7902.                                 null
  7903.                               ],
  7904.                               "referencedDeclaration": 951,
  7905.                               "type": "contract BucketSale",
  7906.                               "value": "bucketSale"
  7907.                             },
  7908.                             "id": 958,
  7909.                             "name": "Identifier",
  7910.                             "src": "2757:10:3"
  7911.                           },
  7912.                           {
  7913.                             "attributes": {
  7914.                               "argumentTypes": null,
  7915.                               "overloadedDeclarations": [
  7916.                                 null
  7917.                               ],
  7918.                               "referencedDeclaration": 953,
  7919.                               "type": "contract BucketSale",
  7920.                               "value": "_bucketSale"
  7921.                             },
  7922.                             "id": 959,
  7923.                             "name": "Identifier",
  7924.                             "src": "2770:11:3"
  7925.                           }
  7926.                         ],
  7927.                         "id": 960,
  7928.                         "name": "Assignment",
  7929.                         "src": "2757:24:3"
  7930.                       }
  7931.                     ],
  7932.                     "id": 961,
  7933.                     "name": "ExpressionStatement",
  7934.                     "src": "2757:24:3"
  7935.                   },
  7936.                   {
  7937.                     "children": [
  7938.                       {
  7939.                         "attributes": {
  7940.                           "argumentTypes": null,
  7941.                           "isConstant": false,
  7942.                           "isLValue": false,
  7943.                           "isPure": false,
  7944.                           "lValueRequested": false,
  7945.                           "operator": "=",
  7946.                           "type": "contract ERC20"
  7947.                         },
  7948.                         "children": [
  7949.                           {
  7950.                             "attributes": {
  7951.                               "argumentTypes": null,
  7952.                               "overloadedDeclarations": [
  7953.                                 null
  7954.                               ],
  7955.                               "referencedDeclaration": 850,
  7956.                               "type": "contract ERC20",
  7957.                               "value": "mcdDai"
  7958.                             },
  7959.                             "id": 962,
  7960.                             "name": "Identifier",
  7961.                             "src": "2791:6:3"
  7962.                           },
  7963.                           {
  7964.                             "attributes": {
  7965.                               "argumentTypes": null,
  7966.                               "arguments": [
  7967.                                 null
  7968.                               ],
  7969.                               "isConstant": false,
  7970.                               "isLValue": false,
  7971.                               "isPure": false,
  7972.                               "isStructConstructorCall": false,
  7973.                               "lValueRequested": false,
  7974.                               "names": [
  7975.                                 null
  7976.                               ],
  7977.                               "type": "contract ERC20",
  7978.                               "type_conversion": false
  7979.                             },
  7980.                             "children": [
  7981.                               {
  7982.                                 "attributes": {
  7983.                                   "argumentTypes": [
  7984.                                     null
  7985.                                   ],
  7986.                                   "isConstant": false,
  7987.                                   "isLValue": false,
  7988.                                   "isPure": false,
  7989.                                   "lValueRequested": false,
  7990.                                   "member_name": "tokenSoldFor",
  7991.                                   "referencedDeclaration": 795,
  7992.                                   "type": "function () external returns (contract ERC20)"
  7993.                                 },
  7994.                                 "children": [
  7995.                                   {
  7996.                                     "attributes": {
  7997.                                       "argumentTypes": null,
  7998.                                       "overloadedDeclarations": [
  7999.                                         null
  8000.                                       ],
  8001.                                       "referencedDeclaration": 951,
  8002.                                       "type": "contract BucketSale",
  8003.                                       "value": "bucketSale"
  8004.                                     },
  8005.                                     "id": 963,
  8006.                                     "name": "Identifier",
  8007.                                     "src": "2800:10:3"
  8008.                                   }
  8009.                                 ],
  8010.                                 "id": 964,
  8011.                                 "name": "MemberAccess",
  8012.                                 "src": "2800:23:3"
  8013.                               }
  8014.                             ],
  8015.                             "id": 965,
  8016.                             "name": "FunctionCall",
  8017.                             "src": "2800:25:3"
  8018.                           }
  8019.                         ],
  8020.                         "id": 966,
  8021.                         "name": "Assignment",
  8022.                         "src": "2791:34:3"
  8023.                       }
  8024.                     ],
  8025.                     "id": 967,
  8026.                     "name": "ExpressionStatement",
  8027.                     "src": "2791:34:3"
  8028.                   },
  8029.                   {
  8030.                     "children": [
  8031.                       {
  8032.                         "attributes": {
  8033.                           "argumentTypes": null,
  8034.                           "isConstant": false,
  8035.                           "isLValue": false,
  8036.                           "isPure": false,
  8037.                           "lValueRequested": false,
  8038.                           "operator": "=",
  8039.                           "type": "contract KyberNetworkInterface"
  8040.                         },
  8041.                         "children": [
  8042.                           {
  8043.                             "attributes": {
  8044.                               "argumentTypes": null,
  8045.                               "overloadedDeclarations": [
  8046.                                 null
  8047.                               ],
  8048.                               "referencedDeclaration": 848,
  8049.                               "type": "contract KyberNetworkInterface",
  8050.                               "value": "kyberNetworkProxy"
  8051.                             },
  8052.                             "id": 968,
  8053.                             "name": "Identifier",
  8054.                             "src": "2835:17:3"
  8055.                           },
  8056.                           {
  8057.                             "attributes": {
  8058.                               "argumentTypes": null,
  8059.                               "overloadedDeclarations": [
  8060.                                 null
  8061.                               ],
  8062.                               "referencedDeclaration": 955,
  8063.                               "type": "contract KyberNetworkInterface",
  8064.                               "value": "_kyberNetworkProxy"
  8065.                             },
  8066.                             "id": 969,
  8067.                             "name": "Identifier",
  8068.                             "src": "2855:18:3"
  8069.                           }
  8070.                         ],
  8071.                         "id": 970,
  8072.                         "name": "Assignment",
  8073.                         "src": "2835:38:3"
  8074.                       }
  8075.                     ],
  8076.                     "id": 971,
  8077.                     "name": "ExpressionStatement",
  8078.                     "src": "2835:38:3"
  8079.                   },
  8080.                   {
  8081.                     "children": [
  8082.                       {
  8083.                         "attributes": {
  8084.                           "argumentTypes": null,
  8085.                           "isConstant": false,
  8086.                           "isLValue": false,
  8087.                           "isPure": false,
  8088.                           "isStructConstructorCall": false,
  8089.                           "lValueRequested": false,
  8090.                           "names": [
  8091.                             null
  8092.                           ],
  8093.                           "type": "bool",
  8094.                           "type_conversion": false
  8095.                         },
  8096.                         "children": [
  8097.                           {
  8098.                             "attributes": {
  8099.                               "argumentTypes": [
  8100.                                 {
  8101.                                   "typeIdentifier": "t_address",
  8102.                                   "typeString": "address"
  8103.                                 },
  8104.                                 {
  8105.                                   "typeIdentifier": "t_uint256",
  8106.                                   "typeString": "uint256"
  8107.                                 }
  8108.                               ],
  8109.                               "isConstant": false,
  8110.                               "isLValue": false,
  8111.                               "isPure": false,
  8112.                               "lValueRequested": false,
  8113.                               "member_name": "approve",
  8114.                               "referencedDeclaration": 778,
  8115.                               "type": "function (address,uint256) external returns (bool)"
  8116.                             },
  8117.                             "children": [
  8118.                               {
  8119.                                 "attributes": {
  8120.                                   "argumentTypes": null,
  8121.                                   "arguments": [
  8122.                                     null
  8123.                                   ],
  8124.                                   "isConstant": false,
  8125.                                   "isLValue": false,
  8126.                                   "isPure": false,
  8127.                                   "isStructConstructorCall": false,
  8128.                                   "lValueRequested": false,
  8129.                                   "names": [
  8130.                                     null
  8131.                                   ],
  8132.                                   "type": "contract ERC20",
  8133.                                   "type_conversion": false
  8134.                                 },
  8135.                                 "children": [
  8136.                                   {
  8137.                                     "attributes": {
  8138.                                       "argumentTypes": [
  8139.                                         null
  8140.                                       ],
  8141.                                       "isConstant": false,
  8142.                                       "isLValue": false,
  8143.                                       "isPure": false,
  8144.                                       "lValueRequested": false,
  8145.                                       "member_name": "tokenSoldFor",
  8146.                                       "referencedDeclaration": 795,
  8147.                                       "type": "function () external returns (contract ERC20)"
  8148.                                     },
  8149.                                     "children": [
  8150.                                       {
  8151.                                         "attributes": {
  8152.                                           "argumentTypes": null,
  8153.                                           "overloadedDeclarations": [
  8154.                                             null
  8155.                                           ],
  8156.                                           "referencedDeclaration": 951,
  8157.                                           "type": "contract BucketSale",
  8158.                                           "value": "bucketSale"
  8159.                                         },
  8160.                                         "id": 972,
  8161.                                         "name": "Identifier",
  8162.                                         "src": "2883:10:3"
  8163.                                       }
  8164.                                     ],
  8165.                                     "id": 974,
  8166.                                     "name": "MemberAccess",
  8167.                                     "src": "2883:23:3"
  8168.                                   }
  8169.                                 ],
  8170.                                 "id": 975,
  8171.                                 "name": "FunctionCall",
  8172.                                 "src": "2883:25:3"
  8173.                               }
  8174.                             ],
  8175.                             "id": 976,
  8176.                             "name": "MemberAccess",
  8177.                             "src": "2883:33:3"
  8178.                           },
  8179.                           {
  8180.                             "attributes": {
  8181.                               "argumentTypes": null,
  8182.                               "isConstant": false,
  8183.                               "isLValue": false,
  8184.                               "isPure": false,
  8185.                               "isStructConstructorCall": false,
  8186.                               "lValueRequested": false,
  8187.                               "names": [
  8188.                                 null
  8189.                               ],
  8190.                               "type": "address",
  8191.                               "type_conversion": true
  8192.                             },
  8193.                             "children": [
  8194.                               {
  8195.                                 "attributes": {
  8196.                                   "argumentTypes": [
  8197.                                     {
  8198.                                       "typeIdentifier": "t_contract$_BucketSale_$807",
  8199.                                       "typeString": "contract BucketSale"
  8200.                                     }
  8201.                                   ],
  8202.                                   "isConstant": false,
  8203.                                   "isLValue": false,
  8204.                                   "isPure": true,
  8205.                                   "lValueRequested": false,
  8206.                                   "type": "type(address)",
  8207.                                   "value": "address"
  8208.                                 },
  8209.                                 "id": 977,
  8210.                                 "name": "ElementaryTypeNameExpression",
  8211.                                 "src": "2917:7:3"
  8212.                               },
  8213.                               {
  8214.                                 "attributes": {
  8215.                                   "argumentTypes": null,
  8216.                                   "overloadedDeclarations": [
  8217.                                     null
  8218.                                   ],
  8219.                                   "referencedDeclaration": 951,
  8220.                                   "type": "contract BucketSale",
  8221.                                   "value": "bucketSale"
  8222.                                 },
  8223.                                 "id": 978,
  8224.                                 "name": "Identifier",
  8225.                                 "src": "2925:10:3"
  8226.                               }
  8227.                             ],
  8228.                             "id": 979,
  8229.                             "name": "FunctionCall",
  8230.                             "src": "2917:19:3"
  8231.                           },
  8232.                           {
  8233.                             "attributes": {
  8234.                               "argumentTypes": null,
  8235.                               "isConstant": false,
  8236.                               "isLValue": false,
  8237.                               "isPure": true,
  8238.                               "isStructConstructorCall": false,
  8239.                               "lValueRequested": false,
  8240.                               "names": [
  8241.                                 null
  8242.                               ],
  8243.                               "type": "uint256",
  8244.                               "type_conversion": true
  8245.                             },
  8246.                             "children": [
  8247.                               {
  8248.                                 "attributes": {
  8249.                                   "argumentTypes": [
  8250.                                     {
  8251.                                       "typeIdentifier": "t_rational_minus_1_by_1",
  8252.                                       "typeString": "int_const -1"
  8253.                                     }
  8254.                                   ],
  8255.                                   "isConstant": false,
  8256.                                   "isLValue": false,
  8257.                                   "isPure": true,
  8258.                                   "lValueRequested": false,
  8259.                                   "type": "type(uint256)",
  8260.                                   "value": "uint"
  8261.                                 },
  8262.                                 "id": 980,
  8263.                                 "name": "ElementaryTypeNameExpression",
  8264.                                 "src": "2938:4:3"
  8265.                               },
  8266.                               {
  8267.                                 "attributes": {
  8268.                                   "argumentTypes": null,
  8269.                                   "isConstant": false,
  8270.                                   "isLValue": false,
  8271.                                   "isPure": true,
  8272.                                   "lValueRequested": false,
  8273.                                   "operator": "-",
  8274.                                   "prefix": true,
  8275.                                   "type": "int_const -1"
  8276.                                 },
  8277.                                 "children": [
  8278.                                   {
  8279.                                     "attributes": {
  8280.                                       "argumentTypes": null,
  8281.                                       "hexvalue": "31",
  8282.                                       "isConstant": false,
  8283.                                       "isLValue": false,
  8284.                                       "isPure": true,
  8285.                                       "lValueRequested": false,
  8286.                                       "subdenomination": null,
  8287.                                       "token": "number",
  8288.                                       "type": "int_const 1",
  8289.                                       "value": "1"
  8290.                                     },
  8291.                                     "id": 981,
  8292.                                     "name": "Literal",
  8293.                                     "src": "2944:1:3"
  8294.                                   }
  8295.                                 ],
  8296.                                 "id": 982,
  8297.                                 "name": "UnaryOperation",
  8298.                                 "src": "2943:2:3"
  8299.                               }
  8300.                             ],
  8301.                             "id": 983,
  8302.                             "name": "FunctionCall",
  8303.                             "src": "2938:8:3"
  8304.                           }
  8305.                         ],
  8306.                         "id": 984,
  8307.                         "name": "FunctionCall",
  8308.                         "src": "2883:64:3"
  8309.                       }
  8310.                     ],
  8311.                     "id": 985,
  8312.                     "name": "ExpressionStatement",
  8313.                     "src": "2883:64:3"
  8314.                   }
  8315.                 ],
  8316.                 "id": 986,
  8317.                 "name": "Block",
  8318.                 "src": "2747:207:3"
  8319.               }
  8320.             ],
  8321.             "id": 987,
  8322.             "name": "FunctionDefinition",
  8323.             "src": "2650:304:3"
  8324.           },
  8325.           {
  8326.             "attributes": {
  8327.               "documentation": null,
  8328.               "implemented": true,
  8329.               "isConstructor": false,
  8330.               "kind": "function",
  8331.               "modifiers": [
  8332.                 null
  8333.               ],
  8334.               "name": "agreeToTermsAndConditionsListedInThisBucketSaleContractAndEnterSaleWithEther",
  8335.               "scope": 1122,
  8336.               "stateMutability": "payable",
  8337.               "superFunction": null,
  8338.               "visibility": "public"
  8339.             },
  8340.             "children": [
  8341.               {
  8342.                 "children": [
  8343.                   {
  8344.                     "attributes": {
  8345.                       "constant": false,
  8346.                       "name": "_buyer",
  8347.                       "scope": 1012,
  8348.                       "stateVariable": false,
  8349.                       "storageLocation": "default",
  8350.                       "type": "address",
  8351.                       "value": null,
  8352.                       "visibility": "internal"
  8353.                     },
  8354.                     "children": [
  8355.                       {
  8356.                         "attributes": {
  8357.                           "name": "address",
  8358.                           "stateMutability": "nonpayable",
  8359.                           "type": "address"
  8360.                         },
  8361.                         "id": 988,
  8362.                         "name": "ElementaryTypeName",
  8363.                         "src": "3059:7:3"
  8364.                       }
  8365.                     ],
  8366.                     "id": 989,
  8367.                     "name": "VariableDeclaration",
  8368.                     "src": "3059:14:3"
  8369.                   },
  8370.                   {
  8371.                     "attributes": {
  8372.                       "constant": false,
  8373.                       "name": "_bucketId",
  8374.                       "scope": 1012,
  8375.                       "stateVariable": false,
  8376.                       "storageLocation": "default",
  8377.                       "type": "uint256",
  8378.                       "value": null,
  8379.                       "visibility": "internal"
  8380.                     },
  8381.                     "children": [
  8382.                       {
  8383.                         "attributes": {
  8384.                           "name": "uint",
  8385.                           "type": "uint256"
  8386.                         },
  8387.                         "id": 990,
  8388.                         "name": "ElementaryTypeName",
  8389.                         "src": "3087:4:3"
  8390.                       }
  8391.                     ],
  8392.                     "id": 991,
  8393.                     "name": "VariableDeclaration",
  8394.                     "src": "3087:14:3"
  8395.                   },
  8396.                   {
  8397.                     "attributes": {
  8398.                       "constant": false,
  8399.                       "name": "_numberOfBuckets",
  8400.                       "scope": 1012,
  8401.                       "stateVariable": false,
  8402.                       "storageLocation": "default",
  8403.                       "type": "uint256",
  8404.                       "value": null,
  8405.                       "visibility": "internal"
  8406.                     },
  8407.                     "children": [
  8408.                       {
  8409.                         "attributes": {
  8410.                           "name": "uint",
  8411.                           "type": "uint256"
  8412.                         },
  8413.                         "id": 992,
  8414.                         "name": "ElementaryTypeName",
  8415.                         "src": "3115:4:3"
  8416.                       }
  8417.                     ],
  8418.                     "id": 993,
  8419.                     "name": "VariableDeclaration",
  8420.                     "src": "3115:21:3"
  8421.                   },
  8422.                   {
  8423.                     "attributes": {
  8424.                       "constant": false,
  8425.                       "name": "_referrer",
  8426.                       "scope": 1012,
  8427.                       "stateVariable": false,
  8428.                       "storageLocation": "default",
  8429.                       "type": "address",
  8430.                       "value": null,
  8431.                       "visibility": "internal"
  8432.                     },
  8433.                     "children": [
  8434.                       {
  8435.                         "attributes": {
  8436.                           "name": "address",
  8437.                           "stateMutability": "nonpayable",
  8438.                           "type": "address"
  8439.                         },
  8440.                         "id": 994,
  8441.                         "name": "ElementaryTypeName",
  8442.                         "src": "3150:7:3"
  8443.                       }
  8444.                     ],
  8445.                     "id": 995,
  8446.                     "name": "VariableDeclaration",
  8447.                     "src": "3150:17:3"
  8448.                   }
  8449.                 ],
  8450.                 "id": 996,
  8451.                 "name": "ParameterList",
  8452.                 "src": "3045:123:3"
  8453.               },
  8454.               {
  8455.                 "attributes": {
  8456.                   "parameters": [
  8457.                     null
  8458.                   ]
  8459.                 },
  8460.                 "children": [],
  8461.                 "id": 997,
  8462.                 "name": "ParameterList",
  8463.                 "src": "3204:0:3"
  8464.               },
  8465.               {
  8466.                 "children": [
  8467.                   {
  8468.                     "attributes": {
  8469.                       "assignments": [
  8470.                         999
  8471.                       ]
  8472.                     },
  8473.                     "children": [
  8474.                       {
  8475.                         "attributes": {
  8476.                           "constant": false,
  8477.                           "name": "receivedDai",
  8478.                           "scope": 1011,
  8479.                           "stateVariable": false,
  8480.                           "storageLocation": "default",
  8481.                           "type": "uint256",
  8482.                           "value": null,
  8483.                           "visibility": "internal"
  8484.                         },
  8485.                         "children": [
  8486.                           {
  8487.                             "attributes": {
  8488.                               "name": "uint",
  8489.                               "type": "uint256"
  8490.                             },
  8491.                             "id": 998,
  8492.                             "name": "ElementaryTypeName",
  8493.                             "src": "3214:4:3"
  8494.                           }
  8495.                         ],
  8496.                         "id": 999,
  8497.                         "name": "VariableDeclaration",
  8498.                         "src": "3214:16:3"
  8499.                       },
  8500.                       {
  8501.                         "attributes": {
  8502.                           "argumentTypes": null,
  8503.                           "arguments": [
  8504.                             null
  8505.                           ],
  8506.                           "isConstant": false,
  8507.                           "isLValue": false,
  8508.                           "isPure": false,
  8509.                           "isStructConstructorCall": false,
  8510.                           "lValueRequested": false,
  8511.                           "names": [
  8512.                             null
  8513.                           ],
  8514.                           "type": "uint256",
  8515.                           "type_conversion": false
  8516.                         },
  8517.                         "children": [
  8518.                           {
  8519.                             "attributes": {
  8520.                               "argumentTypes": [
  8521.                                 null
  8522.                               ],
  8523.                               "overloadedDeclarations": [
  8524.                                 null
  8525.                               ],
  8526.                               "referencedDeclaration": 882,
  8527.                               "type": "function () returns (uint256)",
  8528.                               "value": "swapEtherToToken"
  8529.                             },
  8530.                             "id": 1000,
  8531.                             "name": "Identifier",
  8532.                             "src": "3233:16:3"
  8533.                           }
  8534.                         ],
  8535.                         "id": 1001,
  8536.                         "name": "FunctionCall",
  8537.                         "src": "3233:18:3"
  8538.                       }
  8539.                     ],
  8540.                     "id": 1002,
  8541.                     "name": "VariableDeclarationStatement",
  8542.                     "src": "3214:37:3"
  8543.                   },
  8544.                   {
  8545.                     "children": [
  8546.                       {
  8547.                         "attributes": {
  8548.                           "argumentTypes": null,
  8549.                           "isConstant": false,
  8550.                           "isLValue": false,
  8551.                           "isPure": false,
  8552.                           "isStructConstructorCall": false,
  8553.                           "lValueRequested": false,
  8554.                           "names": [
  8555.                             null
  8556.                           ],
  8557.                           "type": "tuple()",
  8558.                           "type_conversion": false
  8559.                         },
  8560.                         "children": [
  8561.                           {
  8562.                             "attributes": {
  8563.                               "argumentTypes": [
  8564.                                 {
  8565.                                   "typeIdentifier": "t_address",
  8566.                                   "typeString": "address"
  8567.                                 },
  8568.                                 {
  8569.                                   "typeIdentifier": "t_uint256",
  8570.                                   "typeString": "uint256"
  8571.                                 },
  8572.                                 {
  8573.                                   "typeIdentifier": "t_uint256",
  8574.                                   "typeString": "uint256"
  8575.                                 },
  8576.                                 {
  8577.                                   "typeIdentifier": "t_uint256",
  8578.                                   "typeString": "uint256"
  8579.                                 },
  8580.                                 {
  8581.                                   "typeIdentifier": "t_address",
  8582.                                   "typeString": "address"
  8583.                                 }
  8584.                               ],
  8585.                               "overloadedDeclarations": [
  8586.                                 null
  8587.                               ],
  8588.                               "referencedDeclaration": 1121,
  8589.                               "type": "function (address,uint256,uint256,uint256,address)",
  8590.                               "value": "_enterSale"
  8591.                             },
  8592.                             "id": 1003,
  8593.                             "name": "Identifier",
  8594.                             "src": "3261:10:3"
  8595.                           },
  8596.                           {
  8597.                             "attributes": {
  8598.                               "argumentTypes": null,
  8599.                               "overloadedDeclarations": [
  8600.                                 null
  8601.                               ],
  8602.                               "referencedDeclaration": 989,
  8603.                               "type": "address",
  8604.                               "value": "_buyer"
  8605.                             },
  8606.                             "id": 1004,
  8607.                             "name": "Identifier",
  8608.                             "src": "3285:6:3"
  8609.                           },
  8610.                           {
  8611.                             "attributes": {
  8612.                               "argumentTypes": null,
  8613.                               "overloadedDeclarations": [
  8614.                                 null
  8615.                               ],
  8616.                               "referencedDeclaration": 991,
  8617.                               "type": "uint256",
  8618.                               "value": "_bucketId"
  8619.                             },
  8620.                             "id": 1005,
  8621.                             "name": "Identifier",
  8622.                             "src": "3305:9:3"
  8623.                           },
  8624.                           {
  8625.                             "attributes": {
  8626.                               "argumentTypes": null,
  8627.                               "overloadedDeclarations": [
  8628.                                 null
  8629.                               ],
  8630.                               "referencedDeclaration": 999,
  8631.                               "type": "uint256",
  8632.                               "value": "receivedDai"
  8633.                             },
  8634.                             "id": 1006,
  8635.                             "name": "Identifier",
  8636.                             "src": "3328:11:3"
  8637.                           },
  8638.                           {
  8639.                             "attributes": {
  8640.                               "argumentTypes": null,
  8641.                               "overloadedDeclarations": [
  8642.                                 null
  8643.                               ],
  8644.                               "referencedDeclaration": 993,
  8645.                               "type": "uint256",
  8646.                               "value": "_numberOfBuckets"
  8647.                             },
  8648.                             "id": 1007,
  8649.                             "name": "Identifier",
  8650.                             "src": "3353:16:3"
  8651.                           },
  8652.                           {
  8653.                             "attributes": {
  8654.                               "argumentTypes": null,
  8655.                               "overloadedDeclarations": [
  8656.                                 null
  8657.                               ],
  8658.                               "referencedDeclaration": 995,
  8659.                               "type": "address",
  8660.                               "value": "_referrer"
  8661.                             },
  8662.                             "id": 1008,
  8663.                             "name": "Identifier",
  8664.                             "src": "3383:9:3"
  8665.                           }
  8666.                         ],
  8667.                         "id": 1009,
  8668.                         "name": "FunctionCall",
  8669.                         "src": "3261:132:3"
  8670.                       }
  8671.                     ],
  8672.                     "id": 1010,
  8673.                     "name": "ExpressionStatement",
  8674.                     "src": "3261:132:3"
  8675.                   }
  8676.                 ],
  8677.                 "id": 1011,
  8678.                 "name": "Block",
  8679.                 "src": "3204:196:3"
  8680.               }
  8681.             ],
  8682.             "id": 1012,
  8683.             "name": "FunctionDefinition",
  8684.             "src": "2960:440:3"
  8685.           },
  8686.           {
  8687.             "attributes": {
  8688.               "documentation": null,
  8689.               "implemented": true,
  8690.               "isConstructor": false,
  8691.               "kind": "function",
  8692.               "modifiers": [
  8693.                 null
  8694.               ],
  8695.               "name": "agreeToTermsAndConditionsListedInThisBucketSaleContractAndEnterSaleWithErc20",
  8696.               "scope": 1122,
  8697.               "stateMutability": "nonpayable",
  8698.               "superFunction": null,
  8699.               "visibility": "public"
  8700.             },
  8701.             "children": [
  8702.               {
  8703.                 "children": [
  8704.                   {
  8705.                     "attributes": {
  8706.                       "constant": false,
  8707.                       "name": "_buyer",
  8708.                       "scope": 1043,
  8709.                       "stateVariable": false,
  8710.                       "storageLocation": "default",
  8711.                       "type": "address",
  8712.                       "value": null,
  8713.                       "visibility": "internal"
  8714.                     },
  8715.                     "children": [
  8716.                       {
  8717.                         "attributes": {
  8718.                           "name": "address",
  8719.                           "stateMutability": "nonpayable",
  8720.                           "type": "address"
  8721.                         },
  8722.                         "id": 1013,
  8723.                         "name": "ElementaryTypeName",
  8724.                         "src": "3505:7:3"
  8725.                       }
  8726.                     ],
  8727.                     "id": 1014,
  8728.                     "name": "VariableDeclaration",
  8729.                     "src": "3505:14:3"
  8730.                   },
  8731.                   {
  8732.                     "attributes": {
  8733.                       "constant": false,
  8734.                       "name": "_bucketId",
  8735.                       "scope": 1043,
  8736.                       "stateVariable": false,
  8737.                       "storageLocation": "default",
  8738.                       "type": "uint256",
  8739.                       "value": null,
  8740.                       "visibility": "internal"
  8741.                     },
  8742.                     "children": [
  8743.                       {
  8744.                         "attributes": {
  8745.                           "name": "uint",
  8746.                           "type": "uint256"
  8747.                         },
  8748.                         "id": 1015,
  8749.                         "name": "ElementaryTypeName",
  8750.                         "src": "3533:4:3"
  8751.                       }
  8752.                     ],
  8753.                     "id": 1016,
  8754.                     "name": "VariableDeclaration",
  8755.                     "src": "3533:14:3"
  8756.                   },
  8757.                   {
  8758.                     "attributes": {
  8759.                       "constant": false,
  8760.                       "name": "_Erc20",
  8761.                       "scope": 1043,
  8762.                       "stateVariable": false,
  8763.                       "storageLocation": "default",
  8764.                       "type": "contract ERC20",
  8765.                       "value": null,
  8766.                       "visibility": "internal"
  8767.                     },
  8768.                     "children": [
  8769.                       {
  8770.                         "attributes": {
  8771.                           "contractScope": null,
  8772.                           "name": "ERC20",
  8773.                           "referencedDeclaration": 790,
  8774.                           "type": "contract ERC20"
  8775.                         },
  8776.                         "id": 1017,
  8777.                         "name": "UserDefinedTypeName",
  8778.                         "src": "3561:5:3"
  8779.                       }
  8780.                     ],
  8781.                     "id": 1018,
  8782.                     "name": "VariableDeclaration",
  8783.                     "src": "3561:12:3"
  8784.                   },
  8785.                   {
  8786.                     "attributes": {
  8787.                       "constant": false,
  8788.                       "name": "_totalBuyAmount",
  8789.                       "scope": 1043,
  8790.                       "stateVariable": false,
  8791.                       "storageLocation": "default",
  8792.                       "type": "uint256",
  8793.                       "value": null,
  8794.                       "visibility": "internal"
  8795.                     },
  8796.                     "children": [
  8797.                       {
  8798.                         "attributes": {
  8799.                           "name": "uint",
  8800.                           "type": "uint256"
  8801.                         },
  8802.                         "id": 1019,
  8803.                         "name": "ElementaryTypeName",
  8804.                         "src": "3587:4:3"
  8805.                       }
  8806.                     ],
  8807.                     "id": 1020,
  8808.                     "name": "VariableDeclaration",
  8809.                     "src": "3587:20:3"
  8810.                   },
  8811.                   {
  8812.                     "attributes": {
  8813.                       "constant": false,
  8814.                       "name": "_numberOfBuckets",
  8815.                       "scope": 1043,
  8816.                       "stateVariable": false,
  8817.                       "storageLocation": "default",
  8818.                       "type": "uint256",
  8819.                       "value": null,
  8820.                       "visibility": "internal"
  8821.                     },
  8822.                     "children": [
  8823.                       {
  8824.                         "attributes": {
  8825.                           "name": "uint",
  8826.                           "type": "uint256"
  8827.                         },
  8828.                         "id": 1021,
  8829.                         "name": "ElementaryTypeName",
  8830.                         "src": "3621:4:3"
  8831.                       }
  8832.                     ],
  8833.                     "id": 1022,
  8834.                     "name": "VariableDeclaration",
  8835.                     "src": "3621:21:3"
  8836.                   },
  8837.                   {
  8838.                     "attributes": {
  8839.                       "constant": false,
  8840.                       "name": "_referrer",
  8841.                       "scope": 1043,
  8842.                       "stateVariable": false,
  8843.                       "storageLocation": "default",
  8844.                       "type": "address",
  8845.                       "value": null,
  8846.                       "visibility": "internal"
  8847.                     },
  8848.                     "children": [
  8849.                       {
  8850.                         "attributes": {
  8851.                           "name": "address",
  8852.                           "stateMutability": "nonpayable",
  8853.                           "type": "address"
  8854.                         },
  8855.                         "id": 1023,
  8856.                         "name": "ElementaryTypeName",
  8857.                         "src": "3656:7:3"
  8858.                       }
  8859.                     ],
  8860.                     "id": 1024,
  8861.                     "name": "VariableDeclaration",
  8862.                     "src": "3656:17:3"
  8863.                   }
  8864.                 ],
  8865.                 "id": 1025,
  8866.                 "name": "ParameterList",
  8867.                 "src": "3491:183:3"
  8868.               },
  8869.               {
  8870.                 "attributes": {
  8871.                   "parameters": [
  8872.                     null
  8873.                   ]
  8874.                 },
  8875.                 "children": [],
  8876.                 "id": 1026,
  8877.                 "name": "ParameterList",
  8878.                 "src": "3694:0:3"
  8879.               },
  8880.               {
  8881.                 "children": [
  8882.                   {
  8883.                     "attributes": {
  8884.                       "assignments": [
  8885.                         1028
  8886.                       ]
  8887.                     },
  8888.                     "children": [
  8889.                       {
  8890.                         "attributes": {
  8891.                           "constant": false,
  8892.                           "name": "receivedDai",
  8893.                           "scope": 1042,
  8894.                           "stateVariable": false,
  8895.                           "storageLocation": "default",
  8896.                           "type": "uint256",
  8897.                           "value": null,
  8898.                           "visibility": "internal"
  8899.                         },
  8900.                         "children": [
  8901.                           {
  8902.                             "attributes": {
  8903.                               "name": "uint",
  8904.                               "type": "uint256"
  8905.                             },
  8906.                             "id": 1027,
  8907.                             "name": "ElementaryTypeName",
  8908.                             "src": "3704:4:3"
  8909.                           }
  8910.                         ],
  8911.                         "id": 1028,
  8912.                         "name": "VariableDeclaration",
  8913.                         "src": "3704:16:3"
  8914.                       },
  8915.                       {
  8916.                         "attributes": {
  8917.                           "argumentTypes": null,
  8918.                           "isConstant": false,
  8919.                           "isLValue": false,
  8920.                           "isPure": false,
  8921.                           "isStructConstructorCall": false,
  8922.                           "lValueRequested": false,
  8923.                           "names": [
  8924.                             null
  8925.                           ],
  8926.                           "type": "uint256",
  8927.                           "type_conversion": false
  8928.                         },
  8929.                         "children": [
  8930.                           {
  8931.                             "attributes": {
  8932.                               "argumentTypes": [
  8933.                                 {
  8934.                                   "typeIdentifier": "t_contract$_ERC20_$790",
  8935.                                   "typeString": "contract ERC20"
  8936.                                 },
  8937.                                 {
  8938.                                   "typeIdentifier": "t_uint256",
  8939.                                   "typeString": "uint256"
  8940.                                 }
  8941.                               ],
  8942.                               "overloadedDeclarations": [
  8943.                                 null
  8944.                               ],
  8945.                               "referencedDeclaration": 946,
  8946.                               "type": "function (contract ERC20,uint256) returns (uint256)",
  8947.                               "value": "swapTokenToToken"
  8948.                             },
  8949.                             "id": 1029,
  8950.                             "name": "Identifier",
  8951.                             "src": "3723:16:3"
  8952.                           },
  8953.                           {
  8954.                             "attributes": {
  8955.                               "argumentTypes": null,
  8956.                               "overloadedDeclarations": [
  8957.                                 null
  8958.                               ],
  8959.                               "referencedDeclaration": 1018,
  8960.                               "type": "contract ERC20",
  8961.                               "value": "_Erc20"
  8962.                             },
  8963.                             "id": 1030,
  8964.                             "name": "Identifier",
  8965.                             "src": "3740:6:3"
  8966.                           },
  8967.                           {
  8968.                             "attributes": {
  8969.                               "argumentTypes": null,
  8970.                               "overloadedDeclarations": [
  8971.                                 null
  8972.                               ],
  8973.                               "referencedDeclaration": 1020,
  8974.                               "type": "uint256",
  8975.                               "value": "_totalBuyAmount"
  8976.                             },
  8977.                             "id": 1031,
  8978.                             "name": "Identifier",
  8979.                             "src": "3748:15:3"
  8980.                           }
  8981.                         ],
  8982.                         "id": 1032,
  8983.                         "name": "FunctionCall",
  8984.                         "src": "3723:41:3"
  8985.                       }
  8986.                     ],
  8987.                     "id": 1033,
  8988.                     "name": "VariableDeclarationStatement",
  8989.                     "src": "3704:60:3"
  8990.                   },
  8991.                   {
  8992.                     "children": [
  8993.                       {
  8994.                         "attributes": {
  8995.                           "argumentTypes": null,
  8996.                           "isConstant": false,
  8997.                           "isLValue": false,
  8998.                           "isPure": false,
  8999.                           "isStructConstructorCall": false,
  9000.                           "lValueRequested": false,
  9001.                           "names": [
  9002.                             null
  9003.                           ],
  9004.                           "type": "tuple()",
  9005.                           "type_conversion": false
  9006.                         },
  9007.                         "children": [
  9008.                           {
  9009.                             "attributes": {
  9010.                               "argumentTypes": [
  9011.                                 {
  9012.                                   "typeIdentifier": "t_address",
  9013.                                   "typeString": "address"
  9014.                                 },
  9015.                                 {
  9016.                                   "typeIdentifier": "t_uint256",
  9017.                                   "typeString": "uint256"
  9018.                                 },
  9019.                                 {
  9020.                                   "typeIdentifier": "t_uint256",
  9021.                                   "typeString": "uint256"
  9022.                                 },
  9023.                                 {
  9024.                                   "typeIdentifier": "t_uint256",
  9025.                                   "typeString": "uint256"
  9026.                                 },
  9027.                                 {
  9028.                                   "typeIdentifier": "t_address",
  9029.                                   "typeString": "address"
  9030.                                 }
  9031.                               ],
  9032.                               "overloadedDeclarations": [
  9033.                                 null
  9034.                               ],
  9035.                               "referencedDeclaration": 1121,
  9036.                               "type": "function (address,uint256,uint256,uint256,address)",
  9037.                               "value": "_enterSale"
  9038.                             },
  9039.                             "id": 1034,
  9040.                             "name": "Identifier",
  9041.                             "src": "3774:10:3"
  9042.                           },
  9043.                           {
  9044.                             "attributes": {
  9045.                               "argumentTypes": null,
  9046.                               "overloadedDeclarations": [
  9047.                                 null
  9048.                               ],
  9049.                               "referencedDeclaration": 1014,
  9050.                               "type": "address",
  9051.                               "value": "_buyer"
  9052.                             },
  9053.                             "id": 1035,
  9054.                             "name": "Identifier",
  9055.                             "src": "3798:6:3"
  9056.                           },
  9057.                           {
  9058.                             "attributes": {
  9059.                               "argumentTypes": null,
  9060.                               "overloadedDeclarations": [
  9061.                                 null
  9062.                               ],
  9063.                               "referencedDeclaration": 1016,
  9064.                               "type": "uint256",
  9065.                               "value": "_bucketId"
  9066.                             },
  9067.                             "id": 1036,
  9068.                             "name": "Identifier",
  9069.                             "src": "3818:9:3"
  9070.                           },
  9071.                           {
  9072.                             "attributes": {
  9073.                               "argumentTypes": null,
  9074.                               "overloadedDeclarations": [
  9075.                                 null
  9076.                               ],
  9077.                               "referencedDeclaration": 1028,
  9078.                               "type": "uint256",
  9079.                               "value": "receivedDai"
  9080.                             },
  9081.                             "id": 1037,
  9082.                             "name": "Identifier",
  9083.                             "src": "3841:11:3"
  9084.                           },
  9085.                           {
  9086.                             "attributes": {
  9087.                               "argumentTypes": null,
  9088.                               "overloadedDeclarations": [
  9089.                                 null
  9090.                               ],
  9091.                               "referencedDeclaration": 1022,
  9092.                               "type": "uint256",
  9093.                               "value": "_numberOfBuckets"
  9094.                             },
  9095.                             "id": 1038,
  9096.                             "name": "Identifier",
  9097.                             "src": "3866:16:3"
  9098.                           },
  9099.                           {
  9100.                             "attributes": {
  9101.                               "argumentTypes": null,
  9102.                               "overloadedDeclarations": [
  9103.                                 null
  9104.                               ],
  9105.                               "referencedDeclaration": 1024,
  9106.                               "type": "address",
  9107.                               "value": "_referrer"
  9108.                             },
  9109.                             "id": 1039,
  9110.                             "name": "Identifier",
  9111.                             "src": "3896:9:3"
  9112.                           }
  9113.                         ],
  9114.                         "id": 1040,
  9115.                         "name": "FunctionCall",
  9116.                         "src": "3774:132:3"
  9117.                       }
  9118.                     ],
  9119.                     "id": 1041,
  9120.                     "name": "ExpressionStatement",
  9121.                     "src": "3774:132:3"
  9122.                   }
  9123.                 ],
  9124.                 "id": 1042,
  9125.                 "name": "Block",
  9126.                 "src": "3694:219:3"
  9127.               }
  9128.             ],
  9129.             "id": 1043,
  9130.             "name": "FunctionDefinition",
  9131.             "src": "3406:507:3"
  9132.           },
  9133.           {
  9134.             "attributes": {
  9135.               "documentation": null,
  9136.               "implemented": true,
  9137.               "isConstructor": false,
  9138.               "kind": "function",
  9139.               "modifiers": [
  9140.                 null
  9141.               ],
  9142.               "name": "agreeToTermsAndConditionsListedInThisBucketSaleContractAndEnterSaleWithDai",
  9143.               "scope": 1122,
  9144.               "stateMutability": "nonpayable",
  9145.               "superFunction": null,
  9146.               "visibility": "public"
  9147.             },
  9148.             "children": [
  9149.               {
  9150.                 "children": [
  9151.                   {
  9152.                     "attributes": {
  9153.                       "constant": false,
  9154.                       "name": "_buyer",
  9155.                       "scope": 1078,
  9156.                       "stateVariable": false,
  9157.                       "storageLocation": "default",
  9158.                       "type": "address",
  9159.                       "value": null,
  9160.                       "visibility": "internal"
  9161.                     },
  9162.                     "children": [
  9163.                       {
  9164.                         "attributes": {
  9165.                           "name": "address",
  9166.                           "stateMutability": "nonpayable",
  9167.                           "type": "address"
  9168.                         },
  9169.                         "id": 1044,
  9170.                         "name": "ElementaryTypeName",
  9171.                         "src": "4016:7:3"
  9172.                       }
  9173.                     ],
  9174.                     "id": 1045,
  9175.                     "name": "VariableDeclaration",
  9176.                     "src": "4016:14:3"
  9177.                   },
  9178.                   {
  9179.                     "attributes": {
  9180.                       "constant": false,
  9181.                       "name": "_bucketId",
  9182.                       "scope": 1078,
  9183.                       "stateVariable": false,
  9184.                       "storageLocation": "default",
  9185.                       "type": "uint256",
  9186.                       "value": null,
  9187.                       "visibility": "internal"
  9188.                     },
  9189.                     "children": [
  9190.                       {
  9191.                         "attributes": {
  9192.                           "name": "uint",
  9193.                           "type": "uint256"
  9194.                         },
  9195.                         "id": 1046,
  9196.                         "name": "ElementaryTypeName",
  9197.                         "src": "4044:4:3"
  9198.                       }
  9199.                     ],
  9200.                     "id": 1047,
  9201.                     "name": "VariableDeclaration",
  9202.                     "src": "4044:14:3"
  9203.                   },
  9204.                   {
  9205.                     "attributes": {
  9206.                       "constant": false,
  9207.                       "name": "_totalBuyAmount",
  9208.                       "scope": 1078,
  9209.                       "stateVariable": false,
  9210.                       "storageLocation": "default",
  9211.                       "type": "uint256",
  9212.                       "value": null,
  9213.                       "visibility": "internal"
  9214.                     },
  9215.                     "children": [
  9216.                       {
  9217.                         "attributes": {
  9218.                           "name": "uint",
  9219.                           "type": "uint256"
  9220.                         },
  9221.                         "id": 1048,
  9222.                         "name": "ElementaryTypeName",
  9223.                         "src": "4072:4:3"
  9224.                       }
  9225.                     ],
  9226.                     "id": 1049,
  9227.                     "name": "VariableDeclaration",
  9228.                     "src": "4072:20:3"
  9229.                   },
  9230.                   {
  9231.                     "attributes": {
  9232.                       "constant": false,
  9233.                       "name": "_numberOfBuckets",
  9234.                       "scope": 1078,
  9235.                       "stateVariable": false,
  9236.                       "storageLocation": "default",
  9237.                       "type": "uint256",
  9238.                       "value": null,
  9239.                       "visibility": "internal"
  9240.                     },
  9241.                     "children": [
  9242.                       {
  9243.                         "attributes": {
  9244.                           "name": "uint",
  9245.                           "type": "uint256"
  9246.                         },
  9247.                         "id": 1050,
  9248.                         "name": "ElementaryTypeName",
  9249.                         "src": "4106:4:3"
  9250.                       }
  9251.                     ],
  9252.                     "id": 1051,
  9253.                     "name": "VariableDeclaration",
  9254.                     "src": "4106:21:3"
  9255.                   },
  9256.                   {
  9257.                     "attributes": {
  9258.                       "constant": false,
  9259.                       "name": "_referrer",
  9260.                       "scope": 1078,
  9261.                       "stateVariable": false,
  9262.                       "storageLocation": "default",
  9263.                       "type": "address",
  9264.                       "value": null,
  9265.                       "visibility": "internal"
  9266.                     },
  9267.                     "children": [
  9268.                       {
  9269.                         "attributes": {
  9270.                           "name": "address",
  9271.                           "stateMutability": "nonpayable",
  9272.                           "type": "address"
  9273.                         },
  9274.                         "id": 1052,
  9275.                         "name": "ElementaryTypeName",
  9276.                         "src": "4141:7:3"
  9277.                       }
  9278.                     ],
  9279.                     "id": 1053,
  9280.                     "name": "VariableDeclaration",
  9281.                     "src": "4141:17:3"
  9282.                   }
  9283.                 ],
  9284.                 "id": 1054,
  9285.                 "name": "ParameterList",
  9286.                 "src": "4002:157:3"
  9287.               },
  9288.               {
  9289.                 "attributes": {
  9290.                   "parameters": [
  9291.                     null
  9292.                   ]
  9293.                 },
  9294.                 "children": [],
  9295.                 "id": 1055,
  9296.                 "name": "ParameterList",
  9297.                 "src": "4179:0:3"
  9298.               },
  9299.               {
  9300.                 "children": [
  9301.                   {
  9302.                     "children": [
  9303.                       {
  9304.                         "attributes": {
  9305.                           "argumentTypes": null,
  9306.                           "isConstant": false,
  9307.                           "isLValue": false,
  9308.                           "isPure": false,
  9309.                           "isStructConstructorCall": false,
  9310.                           "lValueRequested": false,
  9311.                           "names": [
  9312.                             null
  9313.                           ],
  9314.                           "type": "bool",
  9315.                           "type_conversion": false
  9316.                         },
  9317.                         "children": [
  9318.                           {
  9319.                             "attributes": {
  9320.                               "argumentTypes": [
  9321.                                 {
  9322.                                   "typeIdentifier": "t_address_payable",
  9323.                                   "typeString": "address payable"
  9324.                                 },
  9325.                                 {
  9326.                                   "typeIdentifier": "t_address",
  9327.                                   "typeString": "address"
  9328.                                 },
  9329.                                 {
  9330.                                   "typeIdentifier": "t_uint256",
  9331.                                   "typeString": "uint256"
  9332.                                 }
  9333.                               ],
  9334.                               "isConstant": false,
  9335.                               "isLValue": false,
  9336.                               "isPure": false,
  9337.                               "lValueRequested": false,
  9338.                               "member_name": "transferFrom",
  9339.                               "referencedDeclaration": 789,
  9340.                               "type": "function (address,address,uint256) external returns (bool)"
  9341.                             },
  9342.                             "children": [
  9343.                               {
  9344.                                 "attributes": {
  9345.                                   "argumentTypes": null,
  9346.                                   "arguments": [
  9347.                                     null
  9348.                                   ],
  9349.                                   "isConstant": false,
  9350.                                   "isLValue": false,
  9351.                                   "isPure": false,
  9352.                                   "isStructConstructorCall": false,
  9353.                                   "lValueRequested": false,
  9354.                                   "names": [
  9355.                                     null
  9356.                                   ],
  9357.                                   "type": "contract ERC20",
  9358.                                   "type_conversion": false
  9359.                                 },
  9360.                                 "children": [
  9361.                                   {
  9362.                                     "attributes": {
  9363.                                       "argumentTypes": [
  9364.                                         null
  9365.                                       ],
  9366.                                       "isConstant": false,
  9367.                                       "isLValue": false,
  9368.                                       "isPure": false,
  9369.                                       "lValueRequested": false,
  9370.                                       "member_name": "tokenSoldFor",
  9371.                                       "referencedDeclaration": 795,
  9372.                                       "type": "function () external returns (contract ERC20)"
  9373.                                     },
  9374.                                     "children": [
  9375.                                       {
  9376.                                         "attributes": {
  9377.                                           "argumentTypes": null,
  9378.                                           "overloadedDeclarations": [
  9379.                                             null
  9380.                                           ],
  9381.                                           "referencedDeclaration": 951,
  9382.                                           "type": "contract BucketSale",
  9383.                                           "value": "bucketSale"
  9384.                                         },
  9385.                                         "id": 1056,
  9386.                                         "name": "Identifier",
  9387.                                         "src": "4189:10:3"
  9388.                                       }
  9389.                                     ],
  9390.                                     "id": 1058,
  9391.                                     "name": "MemberAccess",
  9392.                                     "src": "4189:23:3"
  9393.                                   }
  9394.                                 ],
  9395.                                 "id": 1059,
  9396.                                 "name": "FunctionCall",
  9397.                                 "src": "4189:25:3"
  9398.                               }
  9399.                             ],
  9400.                             "id": 1060,
  9401.                             "name": "MemberAccess",
  9402.                             "src": "4189:38:3"
  9403.                           },
  9404.                           {
  9405.                             "attributes": {
  9406.                               "argumentTypes": null,
  9407.                               "isConstant": false,
  9408.                               "isLValue": false,
  9409.                               "isPure": false,
  9410.                               "lValueRequested": false,
  9411.                               "member_name": "sender",
  9412.                               "referencedDeclaration": null,
  9413.                               "type": "address payable"
  9414.                             },
  9415.                             "children": [
  9416.                               {
  9417.                                 "attributes": {
  9418.                                   "argumentTypes": null,
  9419.                                   "overloadedDeclarations": [
  9420.                                     null
  9421.                                   ],
  9422.                                   "referencedDeclaration": 2821,
  9423.                                   "type": "msg",
  9424.                                   "value": "msg"
  9425.                                 },
  9426.                                 "id": 1061,
  9427.                                 "name": "Identifier",
  9428.                                 "src": "4228:3:3"
  9429.                               }
  9430.                             ],
  9431.                             "id": 1062,
  9432.                             "name": "MemberAccess",
  9433.                             "src": "4228:10:3"
  9434.                           },
  9435.                           {
  9436.                             "attributes": {
  9437.                               "argumentTypes": null,
  9438.                               "isConstant": false,
  9439.                               "isLValue": false,
  9440.                               "isPure": false,
  9441.                               "isStructConstructorCall": false,
  9442.                               "lValueRequested": false,
  9443.                               "names": [
  9444.                                 null
  9445.                               ],
  9446.                               "type": "address",
  9447.                               "type_conversion": true
  9448.                             },
  9449.                             "children": [
  9450.                               {
  9451.                                 "attributes": {
  9452.                                   "argumentTypes": [
  9453.                                     {
  9454.                                       "typeIdentifier": "t_contract$_EntryBot_$1122",
  9455.                                       "typeString": "contract EntryBot"
  9456.                                     }
  9457.                                   ],
  9458.                                   "isConstant": false,
  9459.                                   "isLValue": false,
  9460.                                   "isPure": true,
  9461.                                   "lValueRequested": false,
  9462.                                   "type": "type(address)",
  9463.                                   "value": "address"
  9464.                                 },
  9465.                                 "id": 1063,
  9466.                                 "name": "ElementaryTypeNameExpression",
  9467.                                 "src": "4240:7:3"
  9468.                               },
  9469.                               {
  9470.                                 "attributes": {
  9471.                                   "argumentTypes": null,
  9472.                                   "overloadedDeclarations": [
  9473.                                     null
  9474.                                   ],
  9475.                                   "referencedDeclaration": 2877,
  9476.                                   "type": "contract EntryBot",
  9477.                                   "value": "this"
  9478.                                 },
  9479.                                 "id": 1064,
  9480.                                 "name": "Identifier",
  9481.                                 "src": "4248:4:3"
  9482.                               }
  9483.                             ],
  9484.                             "id": 1065,
  9485.                             "name": "FunctionCall",
  9486.                             "src": "4240:13:3"
  9487.                           },
  9488.                           {
  9489.                             "attributes": {
  9490.                               "argumentTypes": null,
  9491.                               "overloadedDeclarations": [
  9492.                                 null
  9493.                               ],
  9494.                               "referencedDeclaration": 1049,
  9495.                               "type": "uint256",
  9496.                               "value": "_totalBuyAmount"
  9497.                             },
  9498.                             "id": 1066,
  9499.                             "name": "Identifier",
  9500.                             "src": "4255:15:3"
  9501.                           }
  9502.                         ],
  9503.                         "id": 1067,
  9504.                         "name": "FunctionCall",
  9505.                         "src": "4189:82:3"
  9506.                       }
  9507.                     ],
  9508.                     "id": 1068,
  9509.                     "name": "ExpressionStatement",
  9510.                     "src": "4189:82:3"
  9511.                   },
  9512.                   {
  9513.                     "children": [
  9514.                       {
  9515.                         "attributes": {
  9516.                           "argumentTypes": null,
  9517.                           "isConstant": false,
  9518.                           "isLValue": false,
  9519.                           "isPure": false,
  9520.                           "isStructConstructorCall": false,
  9521.                           "lValueRequested": false,
  9522.                           "names": [
  9523.                             null
  9524.                           ],
  9525.                           "type": "tuple()",
  9526.                           "type_conversion": false
  9527.                         },
  9528.                         "children": [
  9529.                           {
  9530.                             "attributes": {
  9531.                               "argumentTypes": [
  9532.                                 {
  9533.                                   "typeIdentifier": "t_address",
  9534.                                   "typeString": "address"
  9535.                                 },
  9536.                                 {
  9537.                                   "typeIdentifier": "t_uint256",
  9538.                                   "typeString": "uint256"
  9539.                                 },
  9540.                                 {
  9541.                                   "typeIdentifier": "t_uint256",
  9542.                                   "typeString": "uint256"
  9543.                                 },
  9544.                                 {
  9545.                                   "typeIdentifier": "t_uint256",
  9546.                                   "typeString": "uint256"
  9547.                                 },
  9548.                                 {
  9549.                                   "typeIdentifier": "t_address",
  9550.                                   "typeString": "address"
  9551.                                 }
  9552.                               ],
  9553.                               "overloadedDeclarations": [
  9554.                                 null
  9555.                               ],
  9556.                               "referencedDeclaration": 1121,
  9557.                               "type": "function (address,uint256,uint256,uint256,address)",
  9558.                               "value": "_enterSale"
  9559.                             },
  9560.                             "id": 1069,
  9561.                             "name": "Identifier",
  9562.                             "src": "4281:10:3"
  9563.                           },
  9564.                           {
  9565.                             "attributes": {
  9566.                               "argumentTypes": null,
  9567.                               "overloadedDeclarations": [
  9568.                                 null
  9569.                               ],
  9570.                               "referencedDeclaration": 1045,
  9571.                               "type": "address",
  9572.                               "value": "_buyer"
  9573.                             },
  9574.                             "id": 1070,
  9575.                             "name": "Identifier",
  9576.                             "src": "4292:6:3"
  9577.                           },
  9578.                           {
  9579.                             "attributes": {
  9580.                               "argumentTypes": null,
  9581.                               "overloadedDeclarations": [
  9582.                                 null
  9583.                               ],
  9584.                               "referencedDeclaration": 1047,
  9585.                               "type": "uint256",
  9586.                               "value": "_bucketId"
  9587.                             },
  9588.                             "id": 1071,
  9589.                             "name": "Identifier",
  9590.                             "src": "4300:9:3"
  9591.                           },
  9592.                           {
  9593.                             "attributes": {
  9594.                               "argumentTypes": null,
  9595.                               "overloadedDeclarations": [
  9596.                                 null
  9597.                               ],
  9598.                               "referencedDeclaration": 1049,
  9599.                               "type": "uint256",
  9600.                               "value": "_totalBuyAmount"
  9601.                             },
  9602.                             "id": 1072,
  9603.                             "name": "Identifier",
  9604.                             "src": "4311:15:3"
  9605.                           },
  9606.                           {
  9607.                             "attributes": {
  9608.                               "argumentTypes": null,
  9609.                               "overloadedDeclarations": [
  9610.                                 null
  9611.                               ],
  9612.                               "referencedDeclaration": 1051,
  9613.                               "type": "uint256",
  9614.                               "value": "_numberOfBuckets"
  9615.                             },
  9616.                             "id": 1073,
  9617.                             "name": "Identifier",
  9618.                             "src": "4328:16:3"
  9619.                           },
  9620.                           {
  9621.                             "attributes": {
  9622.                               "argumentTypes": null,
  9623.                               "overloadedDeclarations": [
  9624.                                 null
  9625.                               ],
  9626.                               "referencedDeclaration": 1053,
  9627.                               "type": "address",
  9628.                               "value": "_referrer"
  9629.                             },
  9630.                             "id": 1074,
  9631.                             "name": "Identifier",
  9632.                             "src": "4346:9:3"
  9633.                           }
  9634.                         ],
  9635.                         "id": 1075,
  9636.                         "name": "FunctionCall",
  9637.                         "src": "4281:75:3"
  9638.                       }
  9639.                     ],
  9640.                     "id": 1076,
  9641.                     "name": "ExpressionStatement",
  9642.                     "src": "4281:75:3"
  9643.                   }
  9644.                 ],
  9645.                 "id": 1077,
  9646.                 "name": "Block",
  9647.                 "src": "4179:184:3"
  9648.               }
  9649.             ],
  9650.             "id": 1078,
  9651.             "name": "FunctionDefinition",
  9652.             "src": "3919:444:3"
  9653.           },
  9654.           {
  9655.             "attributes": {
  9656.               "documentation": null,
  9657.               "implemented": true,
  9658.               "isConstructor": false,
  9659.               "kind": "function",
  9660.               "modifiers": [
  9661.                 null
  9662.               ],
  9663.               "name": "_enterSale",
  9664.               "scope": 1122,
  9665.               "stateMutability": "nonpayable",
  9666.               "superFunction": null,
  9667.               "visibility": "private"
  9668.             },
  9669.             "children": [
  9670.               {
  9671.                 "children": [
  9672.                   {
  9673.                     "attributes": {
  9674.                       "constant": false,
  9675.                       "name": "_buyer",
  9676.                       "scope": 1121,
  9677.                       "stateVariable": false,
  9678.                       "storageLocation": "default",
  9679.                       "type": "address",
  9680.                       "value": null,
  9681.                       "visibility": "internal"
  9682.                     },
  9683.                     "children": [
  9684.                       {
  9685.                         "attributes": {
  9686.                           "name": "address",
  9687.                           "stateMutability": "nonpayable",
  9688.                           "type": "address"
  9689.                         },
  9690.                         "id": 1079,
  9691.                         "name": "ElementaryTypeName",
  9692.                         "src": "4402:7:3"
  9693.                       }
  9694.                     ],
  9695.                     "id": 1080,
  9696.                     "name": "VariableDeclaration",
  9697.                     "src": "4402:14:3"
  9698.                   },
  9699.                   {
  9700.                     "attributes": {
  9701.                       "constant": false,
  9702.                       "name": "_bucketId",
  9703.                       "scope": 1121,
  9704.                       "stateVariable": false,
  9705.                       "storageLocation": "default",
  9706.                       "type": "uint256",
  9707.                       "value": null,
  9708.                       "visibility": "internal"
  9709.                     },
  9710.                     "children": [
  9711.                       {
  9712.                         "attributes": {
  9713.                           "name": "uint",
  9714.                           "type": "uint256"
  9715.                         },
  9716.                         "id": 1081,
  9717.                         "name": "ElementaryTypeName",
  9718.                         "src": "4430:4:3"
  9719.                       }
  9720.                     ],
  9721.                     "id": 1082,
  9722.                     "name": "VariableDeclaration",
  9723.                     "src": "4430:14:3"
  9724.                   },
  9725.                   {
  9726.                     "attributes": {
  9727.                       "constant": false,
  9728.                       "name": "_totalBuyAmount",
  9729.                       "scope": 1121,
  9730.                       "stateVariable": false,
  9731.                       "storageLocation": "default",
  9732.                       "type": "uint256",
  9733.                       "value": null,
  9734.                       "visibility": "internal"
  9735.                     },
  9736.                     "children": [
  9737.                       {
  9738.                         "attributes": {
  9739.                           "name": "uint",
  9740.                           "type": "uint256"
  9741.                         },
  9742.                         "id": 1083,
  9743.                         "name": "ElementaryTypeName",
  9744.                         "src": "4458:4:3"
  9745.                       }
  9746.                     ],
  9747.                     "id": 1084,
  9748.                     "name": "VariableDeclaration",
  9749.                     "src": "4458:20:3"
  9750.                   },
  9751.                   {
  9752.                     "attributes": {
  9753.                       "constant": false,
  9754.                       "name": "_numberOfBuckets",
  9755.                       "scope": 1121,
  9756.                       "stateVariable": false,
  9757.                       "storageLocation": "default",
  9758.                       "type": "uint256",
  9759.                       "value": null,
  9760.                       "visibility": "internal"
  9761.                     },
  9762.                     "children": [
  9763.                       {
  9764.                         "attributes": {
  9765.                           "name": "uint",
  9766.                           "type": "uint256"
  9767.                         },
  9768.                         "id": 1085,
  9769.                         "name": "ElementaryTypeName",
  9770.                         "src": "4492:4:3"
  9771.                       }
  9772.                     ],
  9773.                     "id": 1086,
  9774.                     "name": "VariableDeclaration",
  9775.                     "src": "4492:21:3"
  9776.                   },
  9777.                   {
  9778.                     "attributes": {
  9779.                       "constant": false,
  9780.                       "name": "_referrer",
  9781.                       "scope": 1121,
  9782.                       "stateVariable": false,
  9783.                       "storageLocation": "default",
  9784.                       "type": "address",
  9785.                       "value": null,
  9786.                       "visibility": "internal"
  9787.                     },
  9788.                     "children": [
  9789.                       {
  9790.                         "attributes": {
  9791.                           "name": "address",
  9792.                           "stateMutability": "nonpayable",
  9793.                           "type": "address"
  9794.                         },
  9795.                         "id": 1087,
  9796.                         "name": "ElementaryTypeName",
  9797.                         "src": "4527:7:3"
  9798.                       }
  9799.                     ],
  9800.                     "id": 1088,
  9801.                     "name": "VariableDeclaration",
  9802.                     "src": "4527:17:3"
  9803.                   }
  9804.                 ],
  9805.                 "id": 1089,
  9806.                 "name": "ParameterList",
  9807.                 "src": "4388:157:3"
  9808.               },
  9809.               {
  9810.                 "attributes": {
  9811.                   "parameters": [
  9812.                     null
  9813.                   ]
  9814.                 },
  9815.                 "children": [],
  9816.                 "id": 1090,
  9817.                 "name": "ParameterList",
  9818.                 "src": "4566:0:3"
  9819.               },
  9820.               {
  9821.                 "children": [
  9822.                   {
  9823.                     "attributes": {
  9824.                       "assignments": [
  9825.                         1092
  9826.                       ]
  9827.                     },
  9828.                     "children": [
  9829.                       {
  9830.                         "attributes": {
  9831.                           "constant": false,
  9832.                           "name": "amountPerBucket",
  9833.                           "scope": 1120,
  9834.                           "stateVariable": false,
  9835.                           "storageLocation": "default",
  9836.                           "type": "uint256",
  9837.                           "value": null,
  9838.                           "visibility": "internal"
  9839.                         },
  9840.                         "children": [
  9841.                           {
  9842.                             "attributes": {
  9843.                               "name": "uint",
  9844.                               "type": "uint256"
  9845.                             },
  9846.                             "id": 1091,
  9847.                             "name": "ElementaryTypeName",
  9848.                             "src": "4576:4:3"
  9849.                           }
  9850.                         ],
  9851.                         "id": 1092,
  9852.                         "name": "VariableDeclaration",
  9853.                         "src": "4576:20:3"
  9854.                       },
  9855.                       {
  9856.                         "attributes": {
  9857.                           "argumentTypes": null,
  9858.                           "commonType": {
  9859.                             "typeIdentifier": "t_uint256",
  9860.                             "typeString": "uint256"
  9861.                           },
  9862.                           "isConstant": false,
  9863.                           "isLValue": false,
  9864.                           "isPure": false,
  9865.                           "lValueRequested": false,
  9866.                           "operator": "/",
  9867.                           "type": "uint256"
  9868.                         },
  9869.                         "children": [
  9870.                           {
  9871.                             "attributes": {
  9872.                               "argumentTypes": null,
  9873.                               "overloadedDeclarations": [
  9874.                                 null
  9875.                               ],
  9876.                               "referencedDeclaration": 1084,
  9877.                               "type": "uint256",
  9878.                               "value": "_totalBuyAmount"
  9879.                             },
  9880.                             "id": 1093,
  9881.                             "name": "Identifier",
  9882.                             "src": "4599:15:3"
  9883.                           },
  9884.                           {
  9885.                             "attributes": {
  9886.                               "argumentTypes": null,
  9887.                               "overloadedDeclarations": [
  9888.                                 null
  9889.                               ],
  9890.                               "referencedDeclaration": 1086,
  9891.                               "type": "uint256",
  9892.                               "value": "_numberOfBuckets"
  9893.                             },
  9894.                             "id": 1094,
  9895.                             "name": "Identifier",
  9896.                             "src": "4617:16:3"
  9897.                           }
  9898.                         ],
  9899.                         "id": 1095,
  9900.                         "name": "BinaryOperation",
  9901.                         "src": "4599:34:3"
  9902.                       }
  9903.                     ],
  9904.                     "id": 1096,
  9905.                     "name": "VariableDeclarationStatement",
  9906.                     "src": "4576:57:3"
  9907.                   },
  9908.                   {
  9909.                     "children": [
  9910.                       {
  9911.                         "attributes": {
  9912.                           "assignments": [
  9913.                             1098
  9914.                           ]
  9915.                         },
  9916.                         "children": [
  9917.                           {
  9918.                             "attributes": {
  9919.                               "constant": false,
  9920.                               "name": "i",
  9921.                               "scope": 1119,
  9922.                               "stateVariable": false,
  9923.                               "storageLocation": "default",
  9924.                               "type": "uint256",
  9925.                               "value": null,
  9926.                               "visibility": "internal"
  9927.                             },
  9928.                             "children": [
  9929.                               {
  9930.                                 "attributes": {
  9931.                                   "name": "uint",
  9932.                                   "type": "uint256"
  9933.                                 },
  9934.                                 "id": 1097,
  9935.                                 "name": "ElementaryTypeName",
  9936.                                 "src": "4648:4:3"
  9937.                               }
  9938.                             ],
  9939.                             "id": 1098,
  9940.                             "name": "VariableDeclaration",
  9941.                             "src": "4648:6:3"
  9942.                           },
  9943.                           {
  9944.                             "attributes": {
  9945.                               "argumentTypes": null,
  9946.                               "hexvalue": "30",
  9947.                               "isConstant": false,
  9948.                               "isLValue": false,
  9949.                               "isPure": true,
  9950.                               "lValueRequested": false,
  9951.                               "subdenomination": null,
  9952.                               "token": "number",
  9953.                               "type": "int_const 0",
  9954.                               "value": "0"
  9955.                             },
  9956.                             "id": 1099,
  9957.                             "name": "Literal",
  9958.                             "src": "4657:1:3"
  9959.                           }
  9960.                         ],
  9961.                         "id": 1100,
  9962.                         "name": "VariableDeclarationStatement",
  9963.                         "src": "4648:10:3"
  9964.                       },
  9965.                       {
  9966.                         "attributes": {
  9967.                           "argumentTypes": null,
  9968.                           "commonType": {
  9969.                             "typeIdentifier": "t_uint256",
  9970.                             "typeString": "uint256"
  9971.                           },
  9972.                           "isConstant": false,
  9973.                           "isLValue": false,
  9974.                           "isPure": false,
  9975.                           "lValueRequested": false,
  9976.                           "operator": "<",
  9977.                           "type": "bool"
  9978.                         },
  9979.                         "children": [
  9980.                           {
  9981.                             "attributes": {
  9982.                               "argumentTypes": null,
  9983.                               "overloadedDeclarations": [
  9984.                                 null
  9985.                               ],
  9986.                               "referencedDeclaration": 1098,
  9987.                               "type": "uint256",
  9988.                               "value": "i"
  9989.                             },
  9990.                             "id": 1101,
  9991.                             "name": "Identifier",
  9992.                             "src": "4660:1:3"
  9993.                           },
  9994.                           {
  9995.                             "attributes": {
  9996.                               "argumentTypes": null,
  9997.                               "overloadedDeclarations": [
  9998.                                 null
  9999.                               ],
  10000.                               "referencedDeclaration": 1086,
  10001.                               "type": "uint256",
  10002.                               "value": "_numberOfBuckets"
  10003.                             },
  10004.                             "id": 1102,
  10005.                             "name": "Identifier",
  10006.                             "src": "4664:16:3"
  10007.                           }
  10008.                         ],
  10009.                         "id": 1103,
  10010.                         "name": "BinaryOperation",
  10011.                         "src": "4660:20:3"
  10012.                       },
  10013.                       {
  10014.                         "children": [
  10015.                           {
  10016.                             "attributes": {
  10017.                               "argumentTypes": null,
  10018.                               "isConstant": false,
  10019.                               "isLValue": false,
  10020.                               "isPure": false,
  10021.                               "lValueRequested": false,
  10022.                               "operator": "++",
  10023.                               "prefix": false,
  10024.                               "type": "uint256"
  10025.                             },
  10026.                             "children": [
  10027.                               {
  10028.                                 "attributes": {
  10029.                                   "argumentTypes": null,
  10030.                                   "overloadedDeclarations": [
  10031.                                     null
  10032.                                   ],
  10033.                                   "referencedDeclaration": 1098,
  10034.                                   "type": "uint256",
  10035.                                   "value": "i"
  10036.                                 },
  10037.                                 "id": 1104,
  10038.                                 "name": "Identifier",
  10039.                                 "src": "4682:1:3"
  10040.                               }
  10041.                             ],
  10042.                             "id": 1105,
  10043.                             "name": "UnaryOperation",
  10044.                             "src": "4682:3:3"
  10045.                           }
  10046.                         ],
  10047.                         "id": 1106,
  10048.                         "name": "ExpressionStatement",
  10049.                         "src": "4682:3:3"
  10050.                       },
  10051.                       {
  10052.                         "children": [
  10053.                           {
  10054.                             "children": [
  10055.                               {
  10056.                                 "attributes": {
  10057.                                   "argumentTypes": null,
  10058.                                   "isConstant": false,
  10059.                                   "isLValue": false,
  10060.                                   "isPure": false,
  10061.                                   "isStructConstructorCall": false,
  10062.                                   "lValueRequested": false,
  10063.                                   "names": [
  10064.                                     null
  10065.                                   ],
  10066.                                   "type": "tuple()",
  10067.                                   "type_conversion": false
  10068.                                 },
  10069.                                 "children": [
  10070.                                   {
  10071.                                     "attributes": {
  10072.                                       "argumentTypes": [
  10073.                                         {
  10074.                                           "typeIdentifier": "t_address",
  10075.                                           "typeString": "address"
  10076.                                         },
  10077.                                         {
  10078.                                           "typeIdentifier": "t_uint256",
  10079.                                           "typeString": "uint256"
  10080.                                         },
  10081.                                         {
  10082.                                           "typeIdentifier": "t_uint256",
  10083.                                           "typeString": "uint256"
  10084.                                         },
  10085.                                         {
  10086.                                           "typeIdentifier": "t_address",
  10087.                                           "typeString": "address"
  10088.                                         }
  10089.                                       ],
  10090.                                       "isConstant": false,
  10091.                                       "isLValue": false,
  10092.                                       "isPure": false,
  10093.                                       "lValueRequested": false,
  10094.                                       "member_name": "agreeToTermsAndConditionsListedInThisContractAndEnterSale",
  10095.                                       "referencedDeclaration": 806,
  10096.                                       "type": "function (address,uint256,uint256,address) external"
  10097.                                     },
  10098.                                     "children": [
  10099.                                       {
  10100.                                         "attributes": {
  10101.                                           "argumentTypes": null,
  10102.                                           "overloadedDeclarations": [
  10103.                                             null
  10104.                                           ],
  10105.                                           "referencedDeclaration": 951,
  10106.                                           "type": "contract BucketSale",
  10107.                                           "value": "bucketSale"
  10108.                                         },
  10109.                                         "id": 1107,
  10110.                                         "name": "Identifier",
  10111.                                         "src": "4709:10:3"
  10112.                                       }
  10113.                                     ],
  10114.                                     "id": 1109,
  10115.                                     "name": "MemberAccess",
  10116.                                     "src": "4709:68:3"
  10117.                                   },
  10118.                                   {
  10119.                                     "attributes": {
  10120.                                       "argumentTypes": null,
  10121.                                       "overloadedDeclarations": [
  10122.                                         null
  10123.                                       ],
  10124.                                       "referencedDeclaration": 1080,
  10125.                                       "type": "address",
  10126.                                       "value": "_buyer"
  10127.                                     },
  10128.                                     "id": 1110,
  10129.                                     "name": "Identifier",
  10130.                                     "src": "4795:6:3"
  10131.                                   },
  10132.                                   {
  10133.                                     "attributes": {
  10134.                                       "argumentTypes": null,
  10135.                                       "commonType": {
  10136.                                         "typeIdentifier": "t_uint256",
  10137.                                         "typeString": "uint256"
  10138.                                       },
  10139.                                       "isConstant": false,
  10140.                                       "isLValue": false,
  10141.                                       "isPure": false,
  10142.                                       "lValueRequested": false,
  10143.                                       "operator": "+",
  10144.                                       "type": "uint256"
  10145.                                     },
  10146.                                     "children": [
  10147.                                       {
  10148.                                         "attributes": {
  10149.                                           "argumentTypes": null,
  10150.                                           "overloadedDeclarations": [
  10151.                                             null
  10152.                                           ],
  10153.                                           "referencedDeclaration": 1082,
  10154.                                           "type": "uint256",
  10155.                                           "value": "_bucketId"
  10156.                                         },
  10157.                                         "id": 1111,
  10158.                                         "name": "Identifier",
  10159.                                         "src": "4819:9:3"
  10160.                                       },
  10161.                                       {
  10162.                                         "attributes": {
  10163.                                           "argumentTypes": null,
  10164.                                           "overloadedDeclarations": [
  10165.                                             null
  10166.                                           ],
  10167.                                           "referencedDeclaration": 1098,
  10168.                                           "type": "uint256",
  10169.                                           "value": "i"
  10170.                                         },
  10171.                                         "id": 1112,
  10172.                                         "name": "Identifier",
  10173.                                         "src": "4831:1:3"
  10174.                                       }
  10175.                                     ],
  10176.                                     "id": 1113,
  10177.                                     "name": "BinaryOperation",
  10178.                                     "src": "4819:13:3"
  10179.                                   },
  10180.                                   {
  10181.                                     "attributes": {
  10182.                                       "argumentTypes": null,
  10183.                                       "overloadedDeclarations": [
  10184.                                         null
  10185.                                       ],
  10186.                                       "referencedDeclaration": 1092,
  10187.                                       "type": "uint256",
  10188.                                       "value": "amountPerBucket"
  10189.                                     },
  10190.                                     "id": 1114,
  10191.                                     "name": "Identifier",
  10192.                                     "src": "4850:15:3"
  10193.                                   },
  10194.                                   {
  10195.                                     "attributes": {
  10196.                                       "argumentTypes": null,
  10197.                                       "overloadedDeclarations": [
  10198.                                         null
  10199.                                       ],
  10200.                                       "referencedDeclaration": 1088,
  10201.                                       "type": "address",
  10202.                                       "value": "_referrer"
  10203.                                     },
  10204.                                     "id": 1115,
  10205.                                     "name": "Identifier",
  10206.                                     "src": "4883:9:3"
  10207.                                   }
  10208.                                 ],
  10209.                                 "id": 1116,
  10210.                                 "name": "FunctionCall",
  10211.                                 "src": "4709:197:3"
  10212.                               }
  10213.                             ],
  10214.                             "id": 1117,
  10215.                             "name": "ExpressionStatement",
  10216.                             "src": "4709:197:3"
  10217.                           }
  10218.                         ],
  10219.                         "id": 1118,
  10220.                         "name": "Block",
  10221.                         "src": "4695:222:3"
  10222.                       }
  10223.                     ],
  10224.                     "id": 1119,
  10225.                     "name": "ForStatement",
  10226.                     "src": "4644:273:3"
  10227.                   }
  10228.                 ],
  10229.                 "id": 1120,
  10230.                 "name": "Block",
  10231.                 "src": "4566:357:3"
  10232.               }
  10233.             ],
  10234.             "id": 1121,
  10235.             "name": "FunctionDefinition",
  10236.             "src": "4369:554:3"
  10237.           }
  10238.         ],
  10239.         "id": 1122,
  10240.         "name": "ContractDefinition",
  10241.         "src": "2583:2342:3"
  10242.       },
  10243.       {
  10244.         "attributes": {
  10245.           "contractDependencies": [
  10246.             947,
  10247.             1122
  10248.           ],
  10249.           "contractKind": "contract",
  10250.           "documentation": null,
  10251.           "fullyImplemented": true,
  10252.           "linearizedBaseContracts": [
  10253.             1137,
  10254.             1122,
  10255.             947
  10256.           ],
  10257.           "name": "EntryBotMainNet",
  10258.           "scope": 1138
  10259.         },
  10260.         "children": [
  10261.           {
  10262.             "attributes": {
  10263.               "arguments": null
  10264.             },
  10265.             "children": [
  10266.               {
  10267.                 "attributes": {
  10268.                   "contractScope": null,
  10269.                   "name": "EntryBot",
  10270.                   "referencedDeclaration": 1122,
  10271.                   "type": "contract EntryBot"
  10272.                 },
  10273.                 "id": 1123,
  10274.                 "name": "UserDefinedTypeName",
  10275.                 "src": "4955:8:3"
  10276.               }
  10277.             ],
  10278.             "id": 1124,
  10279.             "name": "InheritanceSpecifier",
  10280.             "src": "4955:8:3"
  10281.           },
  10282.           {
  10283.             "attributes": {
  10284.               "documentation": null,
  10285.               "implemented": true,
  10286.               "isConstructor": true,
  10287.               "kind": "constructor",
  10288.               "name": "",
  10289.               "scope": 1137,
  10290.               "stateMutability": "nonpayable",
  10291.               "superFunction": null,
  10292.               "visibility": "public"
  10293.             },
  10294.             "children": [
  10295.               {
  10296.                 "attributes": {
  10297.                   "parameters": [
  10298.                     null
  10299.                   ]
  10300.                 },
  10301.                 "children": [],
  10302.                 "id": 1125,
  10303.                 "name": "ParameterList",
  10304.                 "src": "4981:2:3"
  10305.               },
  10306.               {
  10307.                 "attributes": {
  10308.                   "parameters": [
  10309.                     null
  10310.                   ]
  10311.                 },
  10312.                 "children": [],
  10313.                 "id": 1134,
  10314.                 "name": "ParameterList",
  10315.                 "src": "5139:0:3"
  10316.               },
  10317.               {
  10318.                 "children": [
  10319.                   {
  10320.                     "attributes": {
  10321.                       "argumentTypes": null,
  10322.                       "overloadedDeclarations": [
  10323.                         null
  10324.                       ],
  10325.                       "referencedDeclaration": 1122,
  10326.                       "type": "type(contract EntryBot)",
  10327.                       "value": "EntryBot"
  10328.                     },
  10329.                     "id": 1126,
  10330.                     "name": "Identifier",
  10331.                     "src": "4988:8:3"
  10332.                   },
  10333.                   {
  10334.                     "attributes": {
  10335.                       "argumentTypes": null,
  10336.                       "isConstant": false,
  10337.                       "isLValue": false,
  10338.                       "isPure": true,
  10339.                       "isStructConstructorCall": false,
  10340.                       "lValueRequested": false,
  10341.                       "names": [
  10342.                         null
  10343.                       ],
  10344.                       "type": "contract BucketSale",
  10345.                       "type_conversion": true
  10346.                     },
  10347.                     "children": [
  10348.                       {
  10349.                         "attributes": {
  10350.                           "argumentTypes": [
  10351.                             {
  10352.                               "typeIdentifier": "t_address_payable",
  10353.                               "typeString": "address payable"
  10354.                             }
  10355.                           ],
  10356.                           "overloadedDeclarations": [
  10357.                             null
  10358.                           ],
  10359.                           "referencedDeclaration": 807,
  10360.                           "type": "type(contract BucketSale)",
  10361.                           "value": "BucketSale"
  10362.                         },
  10363.                         "id": 1127,
  10364.                         "name": "Identifier",
  10365.                         "src": "4997:10:3"
  10366.                       },
  10367.                       {
  10368.                         "attributes": {
  10369.                           "argumentTypes": null,
  10370.                           "hexvalue": "307833303037366646373433366145383232303762396330334162644637434230353633313041393541",
  10371.                           "isConstant": false,
  10372.                           "isLValue": false,
  10373.                           "isPure": true,
  10374.                           "lValueRequested": false,
  10375.                           "subdenomination": null,
  10376.                           "token": "number",
  10377.                           "type": "address payable",
  10378.                           "value": "0x30076fF7436aE82207b9c03AbdF7CB056310A95A"
  10379.                         },
  10380.                         "id": 1128,
  10381.                         "name": "Literal",
  10382.                         "src": "5008:42:3"
  10383.                       }
  10384.                     ],
  10385.                     "id": 1129,
  10386.                     "name": "FunctionCall",
  10387.                     "src": "4997:54:3"
  10388.                   },
  10389.                   {
  10390.                     "attributes": {
  10391.                       "argumentTypes": null,
  10392.                       "isConstant": false,
  10393.                       "isLValue": false,
  10394.                       "isPure": true,
  10395.                       "isStructConstructorCall": false,
  10396.                       "lValueRequested": false,
  10397.                       "names": [
  10398.                         null
  10399.                       ],
  10400.                       "type": "contract KyberNetworkInterface",
  10401.                       "type_conversion": true
  10402.                     },
  10403.                     "children": [
  10404.                       {
  10405.                         "attributes": {
  10406.                           "argumentTypes": [
  10407.                             {
  10408.                               "typeIdentifier": "t_address_payable",
  10409.                               "typeString": "address payable"
  10410.                             }
  10411.                           ],
  10412.                           "overloadedDeclarations": [
  10413.                             null
  10414.                           ],
  10415.                           "referencedDeclaration": 843,
  10416.                           "type": "type(contract KyberNetworkInterface)",
  10417.                           "value": "KyberNetworkInterface"
  10418.                         },
  10419.                         "id": 1130,
  10420.                         "name": "Identifier",
  10421.                         "src": "5053:21:3"
  10422.                       },
  10423.                       {
  10424.                         "attributes": {
  10425.                           "argumentTypes": null,
  10426.                           "hexvalue": "307838313845364645434435313645636333383439444166363834356533454338363830383742373535",
  10427.                           "isConstant": false,
  10428.                           "isLValue": false,
  10429.                           "isPure": true,
  10430.                           "lValueRequested": false,
  10431.                           "subdenomination": null,
  10432.                           "token": "number",
  10433.                           "type": "address payable",
  10434.                           "value": "0x818E6FECD516Ecc3849DAf6845e3EC868087B755"
  10435.                         },
  10436.                         "id": 1131,
  10437.                         "name": "Literal",
  10438.                         "src": "5075:42:3"
  10439.                       }
  10440.                     ],
  10441.                     "id": 1132,
  10442.                     "name": "FunctionCall",
  10443.                     "src": "5053:65:3"
  10444.                   }
  10445.                 ],
  10446.                 "id": 1133,
  10447.                 "name": "ModifierInvocation",
  10448.                 "src": "4988:131:3"
  10449.               },
  10450.               {
  10451.                 "attributes": {
  10452.                   "statements": [
  10453.                     null
  10454.                   ]
  10455.                 },
  10456.                 "children": [],
  10457.                 "id": 1135,
  10458.                 "name": "Block",
  10459.                 "src": "5139:2:3"
  10460.               }
  10461.             ],
  10462.             "id": 1136,
  10463.             "name": "FunctionDefinition",
  10464.             "src": "4970:171:3"
  10465.           }
  10466.         ],
  10467.         "id": 1137,
  10468.         "name": "ContractDefinition",
  10469.         "src": "4927:216:3"
  10470.       }
  10471.     ],
  10472.     "id": 1138,
  10473.     "name": "SourceUnit",
  10474.     "src": "0:5143:3"
  10475.   },
  10476.   "compiler": {
  10477.     "name": "solc",
  10478.     "version": "0.5.17+commit.d19bba13.Emscripten.clang"
  10479.   },
  10480.   "networks": {},
  10481.   "schemaVersion": "3.3.4",
  10482.   "updatedAt": "2021-04-01T14:17:02.467Z",
  10483.   "devdoc": {
  10484.     "methods": {}
  10485.   },
  10486.   "userdoc": {
  10487.     "methods": {}
  10488.   }
  10489. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement