diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3f1c135 --- /dev/null +++ b/.gitignore @@ -0,0 +1,32 @@ +# Logs +logs +*.log +npm-debug.log* + +# Runtime data +pids +*.pid +*.seed + +# Coverage directory used by tools like istanbul +coverage + +# node-waf configuration +.lock-wscript + +# Dependency directory +node_modules + +# Compiled JS directory +/dist/* +!/dist/iexec.js + +# Optional npm cache directory +.npm + +# Optional REPL history +.node_repl_history + +docs/ +wallet.json +account.json diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..02bbb60 --- /dev/null +++ b/LICENSE @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. \ No newline at end of file diff --git a/README.md b/README.md index fecb605..c49c136 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,86 @@ -# iexec dapps samples +# Scrapto +# Idea Proposal +Scrapto is developing technology to provide industry-leading services for data extraction. +It aims to takes full advantage of the decentralized cloud by using: +* iExec computing marketplace to perform data extraction tasks +* blockchain tech to enable per-request billing via microtransactions +## Why now +Three main components are vital in the design of our solution: +##### Micropayment model +The latest advances in cryptocurrency facilitates micropayments. Per-request billing is enabled by iExec RLC. +##### Computing marketplace +Without iExec computing marketplace we would have to implement a network of client/worker nodes ourselves specialized in scraping tasks. But most of the difficult work is already done by iExec: +* Creating software for the worker nodes +* Scheduling +* Proof of contribution +* and a lot of other things +##### Web scraping advances +Up until recently, it was difficult to fully simulate a user session during scraping. Launch of Chrome headless changed that. It's like a normal Chrome browser that can be controlled programmatically. This enables us: +* bypass web-scraping detection mechanisms more easily +* provide users with advanced scraping scenarios +## Our solution +### Data Extraction Tech +There are several important components in web scraping. In a nutshell: +* Having multiple ips. Requests coming from the same IPs are easily detected and then blocked. +* Using screenscrapers (headless browsers). Harder to detect, as they run scripts, render HTML, and can behave like a real human browsing a site. -This is the registry for sample iexec dapps, used by the iexec-sdk cli. +**Professional web scraping services**: use large networks of proxies and ever changing IP addresses to get around limits and blocks. +We are looking into iExec architecture to see if we can use individual worker nodes IPs to make data extraction requests. Or if it’s allowed. +This would mean we do not need to invest in proxy pools and the traffic might seem more organic. -Each branch name of this repo can be used as an argument to iexec init command. +**Headless parsing** The ultimate goal of a web scraper session is to be indistinguishable from a normal user session. A headless browser is a browser that can be used without a graphical interface. It can be controlled programmatically to automate tasks, such as doing tests or taking screenshots of webpages. We are planning to use Chrome headless to run our data extraction tasks on web pages. +### Components +#### Visual data extraction tool +A powerful visual tool to create data extraction flows. Available as a Chrome extension, extraction flows results can be seen live then exported and used as input in a chrome headless instance in a Iexec worker. Same data extraction code run in the extension is run in the headless browser as well. +#### Scrapto Dashboard +The Dashboard is the frontend dAPP of our application. In the Dashboard users can: +* create new scraper projects +* input data extraction flows +* devise scraper schedules +#### iExec Worker App +Worker running data extraction flows configured in the visual helper tool. Same code powering extraction results preview in the extension is used here. +Depending on the configured job the worker can run the flow in: +* jsdom: A JavaScript implementation of the WHATWG DOM and HTML standards, for use with node.js +* Chrome Headless run code in a Chrome browser without GUI. -ex: +# Roadmap +## Current work +* We already have a working prototype of the visual data extraction tool: + * Runs as an extension in Chrome + * Runs the same data extraction flow in jsdom (Node.js) as in Chrome +* We did not start from scratch. We are modifying a fork of an open source extension. +## Version 0.1 [Done] +* Bootstrap iExec project +* Create a binary from the Node.js app using nexe +* Simple Dapp smart contract +## Version 0.2 (3 months) +* Make job scheduling work (1 month) + * Invoke Ethereum iExec task from back-end +* Research and implement jobs results persistence (1 month) +* Add new features to visual extraction tool (1 month) + * Enable passing options to JSDOM to toggle script execution inside pages based on job details + * Add new headless provider as an alternative to jsdom: Google Chrome headless + * Research how to package app with new provider +## Version 0.3 (1 month) +* Develop Scrapto Dahsboard initial version -```bash -iexec init -iexec init factorial -iexec init echo -``` +## Version 1.0 (2 months) +* Add notification streams when content changes. A change in a specific selector value will trigger this. +* Useful for : + * ecommerce price alignment and monitoring. + * competitor SEO monitoring +## Version 2.0 (1 month) +* add a plugin like architecture and let third-party plugins run on extracted content +* various layers of functionality can be added to the project + * content diffing + * sentiment analysis +# Component diagram +![component diagram](https://raw.githubusercontent.com/skunkworkscryptolab/iexec-dapp-samples/scrapto/img/scrapto-component.png "Component Diagram") +# Sequential diagram +![sequential diagram](https://raw.githubusercontent.com/skunkworkscryptolab/iexec-dapp-samples/scrapto/img/scrapto-sequence.png "Sequential Diagram") + +# Resources +* Our visual tool and headless worker repo can be found here: https://github.com/skunkworkscryptolab/scrapto-client-worker. + +# Copyright +Our visual tool extension is a fork of the amazing work done by: https://github.com/furstenheim/web-scraper-chrome-extension/ \ No newline at end of file diff --git a/apps/README.md b/apps/README.md new file mode 100644 index 0000000..bc23275 --- /dev/null +++ b/apps/README.md @@ -0,0 +1,7 @@ +Your iExec Dapp is composed of two parts: + +* under the ```apps``` directory : +Put the offchain app (any kind of legacy application). The offchain app will be executed by the iExec decentralized cloud. + +* under the ```contracts``` directory : +A smart contract that interfaces with your iExec Dapp, it will serve as a gateway from Ethereum to your offchain app. diff --git a/apps/Scrapto b/apps/Scrapto new file mode 100755 index 0000000..f31116c Binary files /dev/null and b/apps/Scrapto differ diff --git a/build/contracts/ERC20.json b/build/contracts/ERC20.json new file mode 100644 index 0000000..4ff7828 --- /dev/null +++ b/build/contracts/ERC20.json @@ -0,0 +1,1036 @@ +{ + "contractName": "ERC20", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "ok", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "ok", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "who", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "ok", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "pragma solidity ^0.4.8;\n\ncontract ERC20 {\n uint public totalSupply;\n function balanceOf(address who) constant returns (uint);\n function allowance(address owner, address spender) constant returns (uint);\n\n function transfer(address to, uint value) returns (bool ok);\n function transferFrom(address from, address to, uint value) returns (bool ok);\n function approve(address spender, uint value) returns (bool ok);\n event Transfer(address indexed from, address indexed to, uint value);\n event Approval(address indexed owner, address indexed spender, uint value);\n}\n", + "sourcePath": "rlc-token/contracts/ERC20.sol", + "ast": { + "attributes": { + "absolutePath": "rlc-token/contracts/ERC20.sol", + "exportedSymbols": { + "ERC20": [ + 1004 + ] + } + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + "^", + "0.4", + ".8" + ] + }, + "id": 940, + "name": "PragmaDirective", + "src": "0:23:5" + }, + { + "attributes": { + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "linearizedBaseContracts": [ + 1004 + ], + "name": "ERC20", + "scope": 1005 + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "totalSupply", + "scope": 1004, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 941, + "name": "ElementaryTypeName", + "src": "44:4:5" + } + ], + "id": 942, + "name": "VariableDeclaration", + "src": "44:23:5" + }, + { + "attributes": { + "body": null, + "constant": true, + "implemented": false, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "balanceOf", + "payable": false, + "scope": 1004, + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "who", + "scope": 949, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 943, + "name": "ElementaryTypeName", + "src": "90:7:5" + } + ], + "id": 944, + "name": "VariableDeclaration", + "src": "90:11:5" + } + ], + "id": 945, + "name": "ParameterList", + "src": "89:13:5" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 949, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 946, + "name": "ElementaryTypeName", + "src": "121:4:5" + } + ], + "id": 947, + "name": "VariableDeclaration", + "src": "121:4:5" + } + ], + "id": 948, + "name": "ParameterList", + "src": "120:6:5" + } + ], + "id": 949, + "name": "FunctionDefinition", + "src": "71:56:5" + }, + { + "attributes": { + "body": null, + "constant": true, + "implemented": false, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "allowance", + "payable": false, + "scope": 1004, + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "owner", + "scope": 958, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 950, + "name": "ElementaryTypeName", + "src": "149:7:5" + } + ], + "id": 951, + "name": "VariableDeclaration", + "src": "149:13:5" + }, + { + "attributes": { + "constant": false, + "name": "spender", + "scope": 958, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 952, + "name": "ElementaryTypeName", + "src": "164:7:5" + } + ], + "id": 953, + "name": "VariableDeclaration", + "src": "164:15:5" + } + ], + "id": 954, + "name": "ParameterList", + "src": "148:32:5" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 958, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 955, + "name": "ElementaryTypeName", + "src": "199:4:5" + } + ], + "id": 956, + "name": "VariableDeclaration", + "src": "199:4:5" + } + ], + "id": 957, + "name": "ParameterList", + "src": "198:6:5" + } + ], + "id": 958, + "name": "FunctionDefinition", + "src": "130:75:5" + }, + { + "attributes": { + "body": null, + "constant": false, + "implemented": false, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "transfer", + "payable": false, + "scope": 1004, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "to", + "scope": 967, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 959, + "name": "ElementaryTypeName", + "src": "227:7:5" + } + ], + "id": 960, + "name": "VariableDeclaration", + "src": "227:10:5" + }, + { + "attributes": { + "constant": false, + "name": "value", + "scope": 967, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 961, + "name": "ElementaryTypeName", + "src": "239:4:5" + } + ], + "id": 962, + "name": "VariableDeclaration", + "src": "239:10:5" + } + ], + "id": 963, + "name": "ParameterList", + "src": "226:24:5" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "ok", + "scope": 967, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 964, + "name": "ElementaryTypeName", + "src": "260:4:5" + } + ], + "id": 965, + "name": "VariableDeclaration", + "src": "260:7:5" + } + ], + "id": 966, + "name": "ParameterList", + "src": "259:9:5" + } + ], + "id": 967, + "name": "FunctionDefinition", + "src": "209:60:5" + }, + { + "attributes": { + "body": null, + "constant": false, + "implemented": false, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "transferFrom", + "payable": false, + "scope": 1004, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "from", + "scope": 978, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 968, + "name": "ElementaryTypeName", + "src": "294:7:5" + } + ], + "id": 969, + "name": "VariableDeclaration", + "src": "294:12:5" + }, + { + "attributes": { + "constant": false, + "name": "to", + "scope": 978, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 970, + "name": "ElementaryTypeName", + "src": "308:7:5" + } + ], + "id": 971, + "name": "VariableDeclaration", + "src": "308:10:5" + }, + { + "attributes": { + "constant": false, + "name": "value", + "scope": 978, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 972, + "name": "ElementaryTypeName", + "src": "320:4:5" + } + ], + "id": 973, + "name": "VariableDeclaration", + "src": "320:10:5" + } + ], + "id": 974, + "name": "ParameterList", + "src": "293:38:5" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "ok", + "scope": 978, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 975, + "name": "ElementaryTypeName", + "src": "341:4:5" + } + ], + "id": 976, + "name": "VariableDeclaration", + "src": "341:7:5" + } + ], + "id": 977, + "name": "ParameterList", + "src": "340:9:5" + } + ], + "id": 978, + "name": "FunctionDefinition", + "src": "272:78:5" + }, + { + "attributes": { + "body": null, + "constant": false, + "implemented": false, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "approve", + "payable": false, + "scope": 1004, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "spender", + "scope": 987, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 979, + "name": "ElementaryTypeName", + "src": "370:7:5" + } + ], + "id": 980, + "name": "VariableDeclaration", + "src": "370:15:5" + }, + { + "attributes": { + "constant": false, + "name": "value", + "scope": 987, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 981, + "name": "ElementaryTypeName", + "src": "387:4:5" + } + ], + "id": 982, + "name": "VariableDeclaration", + "src": "387:10:5" + } + ], + "id": 983, + "name": "ParameterList", + "src": "369:29:5" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "ok", + "scope": 987, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 984, + "name": "ElementaryTypeName", + "src": "408:4:5" + } + ], + "id": 985, + "name": "VariableDeclaration", + "src": "408:7:5" + } + ], + "id": 986, + "name": "ParameterList", + "src": "407:9:5" + } + ], + "id": 987, + "name": "FunctionDefinition", + "src": "353:64:5" + }, + { + "attributes": { + "anonymous": false, + "name": "Transfer" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "name": "from", + "scope": 995, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 988, + "name": "ElementaryTypeName", + "src": "435:7:5" + } + ], + "id": 989, + "name": "VariableDeclaration", + "src": "435:20:5" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "name": "to", + "scope": 995, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 990, + "name": "ElementaryTypeName", + "src": "457:7:5" + } + ], + "id": 991, + "name": "VariableDeclaration", + "src": "457:18:5" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "value", + "scope": 995, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 992, + "name": "ElementaryTypeName", + "src": "477:4:5" + } + ], + "id": 993, + "name": "VariableDeclaration", + "src": "477:10:5" + } + ], + "id": 994, + "name": "ParameterList", + "src": "434:54:5" + } + ], + "id": 995, + "name": "EventDefinition", + "src": "420:69:5" + }, + { + "attributes": { + "anonymous": false, + "name": "Approval" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "name": "owner", + "scope": 1003, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 996, + "name": "ElementaryTypeName", + "src": "507:7:5" + } + ], + "id": 997, + "name": "VariableDeclaration", + "src": "507:21:5" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "name": "spender", + "scope": 1003, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 998, + "name": "ElementaryTypeName", + "src": "530:7:5" + } + ], + "id": 999, + "name": "VariableDeclaration", + "src": "530:23:5" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "value", + "scope": 1003, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1000, + "name": "ElementaryTypeName", + "src": "555:4:5" + } + ], + "id": 1001, + "name": "VariableDeclaration", + "src": "555:10:5" + } + ], + "id": 1002, + "name": "ParameterList", + "src": "506:60:5" + } + ], + "id": 1003, + "name": "EventDefinition", + "src": "492:75:5" + } + ], + "id": 1004, + "name": "ContractDefinition", + "src": "25:544:5" + } + ], + "id": 1005, + "name": "SourceUnit", + "src": "0:570:5" + }, + "compiler": { + "name": "solc", + "version": "0.4.18+commit.9cf6e910.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "1.0.1", + "updatedAt": "2018-01-13T10:23:13.993Z" +} \ No newline at end of file diff --git a/build/contracts/IexecLib.json b/build/contracts/IexecLib.json new file mode 100644 index 0000000..4a3187e --- /dev/null +++ b/build/contracts/IexecLib.json @@ -0,0 +1,127 @@ +{ + "contractName": "IexecLib", + "abi": [], + "bytecode": "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a723058203d915f9a840ab23e889ffc5680df47849f31afeb3759254af85def4473b667830029", + "deployedBytecode": "0x6060604052600080fd00a165627a7a723058203d915f9a840ab23e889ffc5680df47849f31afeb3759254af85def4473b667830029", + "sourceMap": "34:99:1:-;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "34:99:1:-;;;;;", + "source": "pragma solidity ^0.4.18;\n//v1.1.1\nlibrary IexecLib{\n\n enum StatusEnum { UNSET, UNAVAILABLE, PENDING, RUNNING, COMPLETED, ERROR}\n\n}", + "sourcePath": "iexec-oracle-contract/contracts/IexecLib.sol", + "ast": { + "attributes": { + "absolutePath": "iexec-oracle-contract/contracts/IexecLib.sol", + "exportedSymbols": { + "IexecLib": [ + 32 + ] + } + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + "^", + "0.4", + ".18" + ] + }, + "id": 24, + "name": "PragmaDirective", + "src": "0:24:1" + }, + { + "attributes": { + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "linearizedBaseContracts": [ + 32 + ], + "name": "IexecLib", + "scope": 33 + }, + "children": [ + { + "attributes": { + "canonicalName": "IexecLib.StatusEnum", + "name": "StatusEnum" + }, + "children": [ + { + "attributes": { + "name": "UNSET" + }, + "id": 25, + "name": "EnumValue", + "src": "75:5:1" + }, + { + "attributes": { + "name": "UNAVAILABLE" + }, + "id": 26, + "name": "EnumValue", + "src": "82:11:1" + }, + { + "attributes": { + "name": "PENDING" + }, + "id": 27, + "name": "EnumValue", + "src": "95:7:1" + }, + { + "attributes": { + "name": "RUNNING" + }, + "id": 28, + "name": "EnumValue", + "src": "104:7:1" + }, + { + "attributes": { + "name": "COMPLETED" + }, + "id": 29, + "name": "EnumValue", + "src": "113:9:1" + }, + { + "attributes": { + "name": "ERROR" + }, + "id": 30, + "name": "EnumValue", + "src": "124:5:1" + } + ], + "id": 31, + "name": "EnumDefinition", + "src": "57:73:1" + } + ], + "id": 32, + "name": "ContractDefinition", + "src": "34:99:1" + } + ], + "id": 33, + "name": "SourceUnit", + "src": "0:133:1" + }, + "compiler": { + "name": "solc", + "version": "0.4.18+commit.9cf6e910.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "1.0.1", + "updatedAt": "2018-01-13T10:23:13.990Z" +} \ No newline at end of file diff --git a/build/contracts/IexecOracle.json b/build/contracts/IexecOracle.json new file mode 100644 index 0000000..4ee15cf --- /dev/null +++ b/build/contracts/IexecOracle.json @@ -0,0 +1,9719 @@ +{ + "contractName": "IexecOracle", + "abi": [ + { + "constant": false, + "inputs": [], + "name": "toggleContractActive", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "dapp", + "type": "address" + } + ], + "name": "getDappPrice", + "outputs": [ + { + "name": "dappPrice", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "submitTxHash", + "type": "bytes32" + }, + { + "name": "user", + "type": "address" + }, + { + "name": "dapp", + "type": "address" + }, + { + "name": "status", + "type": "uint8" + }, + { + "name": "stdout", + "type": "string" + }, + { + "name": "stderr", + "type": "string" + }, + { + "name": "uri", + "type": "string" + } + ], + "name": "submitCallback", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "submitTxHash", + "type": "bytes32" + } + ], + "name": "getWork", + "outputs": [ + { + "name": "timestamp", + "type": "uint256" + }, + { + "name": "status", + "type": "uint8" + }, + { + "name": "stdout", + "type": "string" + }, + { + "name": "stderr", + "type": "string" + }, + { + "name": "uri", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "callbackPrice", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "dapp", + "type": "address" + } + ], + "name": "getDapp", + "outputs": [ + { + "name": "dappName", + "type": "string" + }, + { + "name": "dappPrice", + "type": "uint256" + }, + { + "name": "provider", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "submitTxHash", + "type": "bytes32" + } + ], + "name": "getWorkUri", + "outputs": [ + { + "name": "uri", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "dapp", + "type": "address" + } + ], + "name": "getDappName", + "outputs": [ + { + "name": "dappName", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "dapp", + "type": "address" + } + ], + "name": "getProvider", + "outputs": [ + { + "name": "provider", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "dappPrice", + "type": "uint256" + }, + { + "name": "dappName", + "type": "string" + } + ], + "name": "registerDappAndProvider", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "stopped", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "iexecOracleEscrow", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "submitTxHash", + "type": "bytes32" + } + ], + "name": "getWorkStderr", + "outputs": [ + { + "name": "stderr", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_callbackPrice", + "type": "uint256" + } + ], + "name": "changeCallbackPrice", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "submitTxHash", + "type": "bytes32" + } + ], + "name": "getWorkStatus", + "outputs": [ + { + "name": "status", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "submitTxHash", + "type": "bytes32" + } + ], + "name": "getWorkStdout", + "outputs": [ + { + "name": "stdout", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "param", + "type": "string" + } + ], + "name": "submit", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "rlcTokenAddress", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "emergencyERC20Drain", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "submitTxHash", + "type": "bytes32" + } + ], + "name": "getWorkTimestamp", + "outputs": [ + { + "name": "timestamp", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_iexecOracleEscrow", + "type": "address" + }, + { + "name": "_callbackPrice", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "user", + "type": "address" + }, + { + "indexed": true, + "name": "dapp", + "type": "address" + }, + { + "indexed": true, + "name": "provider", + "type": "address" + }, + { + "indexed": false, + "name": "args", + "type": "string" + } + ], + "name": "Submit", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "submitTxHash", + "type": "bytes32" + }, + { + "indexed": true, + "name": "user", + "type": "address" + }, + { + "indexed": false, + "name": "stdout", + "type": "string" + }, + { + "indexed": false, + "name": "uri", + "type": "string" + } + ], + "name": "SubmitCallback", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "dapp", + "type": "address" + }, + { + "indexed": true, + "name": "provider", + "type": "address" + }, + { + "indexed": false, + "name": "dappPrice", + "type": "uint256" + }, + { + "indexed": false, + "name": "dappName", + "type": "string" + } + ], + "name": "Register", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "code", + "type": "uint256" + }, + { + "indexed": false, + "name": "message", + "type": "string" + } + ], + "name": "Error", + "type": "event" + } + ], + "bytecode": "0x606060405260008060146101000a81548160ff021916908315150217905550341561002957600080fd5b6040516040806128a983398101604052808051906020019091908051906020019091905050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060028190555050506127c2806100e76000396000f30060606040526004361061011d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680631385d24c146101225780631692c89b146101375780631b0935661461018457806330266537146102be57806333d4da2a14610452578063496bd3df1461047b5780634bbed29c1461056757806352dd94cc1461060757806355f21eb7146106b95780635993ef531461073257806375f12b21146107b05780638da5cb5b146107dd57806392556147146108325780639e1c466f14610887578063af5a02a414610927578063cddc3b0a1461094a578063d543c28d14610993578063d99a8dc314610a33578063db0e16f114610a9d578063f2fde38b14610adf578063f5923e7e14610b18575b600080fd5b341561012d57600080fd5b610135610b53565b005b341561014257600080fd5b61016e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610bd5565b6040518082815260200191505060405180910390f35b341561018f57600080fd5b6102bc60048080356000191690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803560ff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610c21565b005b34156102c957600080fd5b6102e3600480803560001916906020019091905050611224565b604051808681526020018560058111156102f957fe5b60ff168152602001806020018060200180602001848103845287818151815260200191508051906020019080838360005b8381101561034557808201518184015260208101905061032a565b50505050905090810190601f1680156103725780820380516001836020036101000a031916815260200191505b50848103835286818151815260200191508051906020019080838360005b838110156103ab578082015181840152602081019050610390565b50505050905090810190601f1680156103d85780820380516001836020036101000a031916815260200191505b50848103825285818151815260200191508051906020019080838360005b838110156104115780820151818401526020810190506103f6565b50505050905090810190601f16801561043e5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b341561045d57600080fd5b6104656114cb565b6040518082815260200191505060405180910390f35b341561048657600080fd5b6104b2600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506114d1565b60405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b8381101561052a57808201518184015260208101905061050f565b50505050905090810190601f1680156105575780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561057257600080fd5b61058c60048080356000191690602001909190505061166d565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105cc5780820151818401526020810190506105b1565b50505050905090810190601f1680156105f95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561061257600080fd5b61063e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611733565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561067e578082015181840152602081019050610663565b50505050905090810190601f1680156106ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156106c457600080fd5b6106f0600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061181d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561073d57600080fd5b610796600480803590602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611889565b604051808215151515815260200191505060405180910390f35b34156107bb57600080fd5b6107c3611b5d565b604051808215151515815260200191505060405180910390f35b34156107e857600080fd5b6107f0611b70565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561083d57600080fd5b610845611b95565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561089257600080fd5b6108ac600480803560001916906020019091905050611bbb565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108ec5780820151818401526020810190506108d1565b50505050905090810190601f1680156109195780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561093257600080fd5b6109486004808035906020019091905050611c81565b005b341561095557600080fd5b61096f600480803560001916906020019091905050611ce3565b6040518082600581111561097f57fe5b60ff16815260200191505060405180910390f35b341561099e57600080fd5b6109b8600480803560001916906020019091905050611d18565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156109f85780820151818401526020810190506109dd565b50505050905090810190601f168015610a255780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610a83600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611dde565b604051808215151515815260200191505060405180910390f35b3415610aa857600080fd5b610add600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506122dd565b005b3415610aea57600080fd5b610b16600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612425565b005b3415610b2357600080fd5b610b3d6004808035600019169060200190919050506124f5565b6040518082815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610bd357600060149054906101000a900460ff1615600060146101000a81548160ff0219169083151502179055505b565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050919050565b60008060149054906101000a900460ff16151515610c3e57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c9657fe5b60006005811115610ca357fe5b856005811115610caf57fe5b14151515610cbc57600080fd5b60006005811115610cc957fe5b600360008a6000191660001916815260200190815260200160002060010160009054906101000a900460ff166005811115610d0057fe5b141515610d0c57600080fd5b42600360008a600019166000191681526020019081526020016000206000018190555084600360008a6000191660001916815260200190815260200160002060010160006101000a81548160ff02191690836005811115610d6957fe5b021790555083600360008a600019166000191681526020019081526020016000206002019080519060200190610da09291906126dd565b5082600360008a600019166000191681526020019081526020016000206003019080519060200190610dd39291906126dd565b5081600360008a600019166000191681526020019081526020016000206004019080519060200190610e069291906126dd565b508673ffffffffffffffffffffffffffffffffffffffff167f06239fa7a3489329ee223aa89190ea8412cf24599da9c43000047862209fbe3b8986856040518084600019166000191681526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015610e94578082015181840152602081019050610e79565b50505050905090810190601f168015610ec15780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015610efa578082015181840152602081019050610edf565b50505050905090810190601f168015610f275780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a2610f44888789878661251d565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050600081111561121a5760046005811115610f9f57fe5b856005811115610fab57fe5b141561110757600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bfd24f40600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156110e057600080fd5b6102c65a03f115156110f157600080fd5b50505060405180519050151561110657600080fd5b5b60058081111561111357fe5b85600581111561111f57fe5b141561121957600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bfd24f4088836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156111f257600080fd5b6102c65a03f1151561120357600080fd5b50505060405180519050151561121857600080fd5b5b5b5050505050505050565b60008061122f61275d565b61123761275d565b61123f61275d565b6003600087600019166000191681526020019081526020016000206000015460036000886000191660001916815260200190815260200160002060010160009054906101000a900460ff16600360008960001916600019168152602001908152602001600020600201600360008a60001916600019168152602001908152602001600020600301600360008b60001916600019168152602001908152602001600020600401828054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113795780601f1061134e57610100808354040283529160200191611379565b820191906000526020600020905b81548152906001019060200180831161135c57829003601f168201915b50505050509250818054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114155780601f106113ea57610100808354040283529160200191611415565b820191906000526020600020905b8154815290600101906020018083116113f857829003601f168201915b50505050509150808054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114b15780601f10611486576101008083540402835291602001916114b1565b820191906000526020600020905b81548152906001019060200180831161149457829003601f168201915b505050505090509450945094509450945091939590929450565b60025481565b6114d961275d565b600080600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116595780601f1061162e57610100808354040283529160200191611659565b820191906000526020600020905b81548152906001019060200180831161163c57829003601f168201915b505050505092509250925092509193909250565b61167561275d565b6003600083600019166000191681526020019081526020016000206004018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117275780601f106116fc57610100808354040283529160200191611727565b820191906000526020600020905b81548152906001019060200180831161170a57829003601f168201915b50505050509050919050565b61173b61275d565b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156118115780601f106117e657610100808354040283529160200191611811565b820191906000526020600020905b8154815290600101906020018083116117f457829003601f168201915b50505050509050919050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060149054906101000a900460ff161515156118a657600080fd5b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561192a57fe5b3273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415151561196257fe5b32600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000019080519060200190611a809291906126dd565b503273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167faf5012f155004010b6b3ae7a6355778f4d22bb65d1ca74541e78696e41a448c085856040518083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611b18578082015181840152602081019050611afd565b50505050905090810190601f168015611b455780820380516001836020036101000a031916815260200191505b50935050505060405180910390a36001905092915050565b600060149054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611bc361275d565b6003600083600019166000191681526020019081526020016000206003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c755780601f10611c4a57610100808354040283529160200191611c75565b820191906000526020600020905b815481529060010190602001808311611c5857829003601f168201915b50505050509050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611cd957fe5b8060028190555050565b600060036000836000191660001916815260200190815260200160002060010160009054906101000a900460ff169050919050565b611d2061275d565b6003600083600019166000191681526020019081526020016000206002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611dd25780601f10611da757610100808354040283529160200191611dd2565b820191906000526020600020905b815481529060010190602001808311611db557829003601f168201915b50505050509050919050565b6000806000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515611e6657fe5b600254341015611f32577fc548eaddad03c946ad5228a88cfbd752439e312a7b29b7e8791a0b5fe143584c60016040518082815260200180602001828103825260548152602001807f6d73672e76616c7565206e656564656420666f72207375626d69742063616c6c81526020017f6261636b2067617320697320746f6f206c6f772e20436865636b20746865206381526020017f757272656e742063616c6c6261636b50726963650000000000000000000000008152506060019250505060405180910390a1600080fd5b670de0b6b3a764000034101515612005577fc548eaddad03c946ad5228a88cfbd752439e312a7b29b7e8791a0b5fe143584c60026040518082815260200180602001828103825260508152602001807f6d73672e76616c7565206e656564656420666f72207375626d69742063616c6c81526020017f6261636b2067617320697320746f6f20686967682e204d757374206265206c6f81526020017f776572207468616e2031206574686572000000000000000000000000000000008152506060019250505060405180910390a1600080fd5b600060149054906101000a900460ff1615151561202157600080fd5b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050600081111561212f57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bbc88c5d826000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b151561210857600080fd5b6102c65a03f1151561211957600080fd5b50505060405180519050151561212e57600080fd5b5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050151561219057600080fd5b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff167f743a962df271a2e268a671fb94be36697104681af61a64ccdf1dcf924035fdcd866040518080602001828103825283818151815260200191508051906020019080838360005b8381101561229957808201518184015260208101905061227e565b50505050905090810190601f1680156122c65780820380516001836020036101000a031916815260200191505b509250505060405180910390a46001915050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415612420578290508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561240357600080fd5b6102c65a03f1151561241457600080fd5b50505060405180519050505b505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156124f257600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156124f157806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b50565b6000600360008360001916600019168152602001908152602001600020600001549050919050565b60008490508073ffffffffffffffffffffffffffffffffffffffff166310a9f201878686866000604051602001526040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085600019166000191681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156125fa5780820151818401526020810190506125df565b50505050905090810190601f1680156126275780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015612660578082015181840152602081019050612645565b50505050905090810190601f16801561268d5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b15156126af57600080fd5b6102c65a03f115156126c057600080fd5b5050506040518051905015156126d557600080fd5b505050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061271e57805160ff191683800117855561274c565b8280016001018555821561274c579182015b8281111561274b578251825591602001919060010190612730565b5b5090506127599190612771565b5090565b602060405190810160405280600081525090565b61279391905b8082111561278f576000816000905550600101612777565b5090565b905600a165627a7a7230582004e35ebf16efd476b1186045826dca24fdbc4c832d3b13b5b934e5dfbbf271480029", + "deployedBytecode": "0x60606040526004361061011d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680631385d24c146101225780631692c89b146101375780631b0935661461018457806330266537146102be57806333d4da2a14610452578063496bd3df1461047b5780634bbed29c1461056757806352dd94cc1461060757806355f21eb7146106b95780635993ef531461073257806375f12b21146107b05780638da5cb5b146107dd57806392556147146108325780639e1c466f14610887578063af5a02a414610927578063cddc3b0a1461094a578063d543c28d14610993578063d99a8dc314610a33578063db0e16f114610a9d578063f2fde38b14610adf578063f5923e7e14610b18575b600080fd5b341561012d57600080fd5b610135610b53565b005b341561014257600080fd5b61016e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610bd5565b6040518082815260200191505060405180910390f35b341561018f57600080fd5b6102bc60048080356000191690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803560ff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610c21565b005b34156102c957600080fd5b6102e3600480803560001916906020019091905050611224565b604051808681526020018560058111156102f957fe5b60ff168152602001806020018060200180602001848103845287818151815260200191508051906020019080838360005b8381101561034557808201518184015260208101905061032a565b50505050905090810190601f1680156103725780820380516001836020036101000a031916815260200191505b50848103835286818151815260200191508051906020019080838360005b838110156103ab578082015181840152602081019050610390565b50505050905090810190601f1680156103d85780820380516001836020036101000a031916815260200191505b50848103825285818151815260200191508051906020019080838360005b838110156104115780820151818401526020810190506103f6565b50505050905090810190601f16801561043e5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b341561045d57600080fd5b6104656114cb565b6040518082815260200191505060405180910390f35b341561048657600080fd5b6104b2600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506114d1565b60405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b8381101561052a57808201518184015260208101905061050f565b50505050905090810190601f1680156105575780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561057257600080fd5b61058c60048080356000191690602001909190505061166d565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105cc5780820151818401526020810190506105b1565b50505050905090810190601f1680156105f95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561061257600080fd5b61063e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611733565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561067e578082015181840152602081019050610663565b50505050905090810190601f1680156106ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156106c457600080fd5b6106f0600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061181d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561073d57600080fd5b610796600480803590602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611889565b604051808215151515815260200191505060405180910390f35b34156107bb57600080fd5b6107c3611b5d565b604051808215151515815260200191505060405180910390f35b34156107e857600080fd5b6107f0611b70565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561083d57600080fd5b610845611b95565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561089257600080fd5b6108ac600480803560001916906020019091905050611bbb565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108ec5780820151818401526020810190506108d1565b50505050905090810190601f1680156109195780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561093257600080fd5b6109486004808035906020019091905050611c81565b005b341561095557600080fd5b61096f600480803560001916906020019091905050611ce3565b6040518082600581111561097f57fe5b60ff16815260200191505060405180910390f35b341561099e57600080fd5b6109b8600480803560001916906020019091905050611d18565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156109f85780820151818401526020810190506109dd565b50505050905090810190601f168015610a255780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610a83600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611dde565b604051808215151515815260200191505060405180910390f35b3415610aa857600080fd5b610add600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506122dd565b005b3415610aea57600080fd5b610b16600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612425565b005b3415610b2357600080fd5b610b3d6004808035600019169060200190919050506124f5565b6040518082815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610bd357600060149054906101000a900460ff1615600060146101000a81548160ff0219169083151502179055505b565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050919050565b60008060149054906101000a900460ff16151515610c3e57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c9657fe5b60006005811115610ca357fe5b856005811115610caf57fe5b14151515610cbc57600080fd5b60006005811115610cc957fe5b600360008a6000191660001916815260200190815260200160002060010160009054906101000a900460ff166005811115610d0057fe5b141515610d0c57600080fd5b42600360008a600019166000191681526020019081526020016000206000018190555084600360008a6000191660001916815260200190815260200160002060010160006101000a81548160ff02191690836005811115610d6957fe5b021790555083600360008a600019166000191681526020019081526020016000206002019080519060200190610da09291906126dd565b5082600360008a600019166000191681526020019081526020016000206003019080519060200190610dd39291906126dd565b5081600360008a600019166000191681526020019081526020016000206004019080519060200190610e069291906126dd565b508673ffffffffffffffffffffffffffffffffffffffff167f06239fa7a3489329ee223aa89190ea8412cf24599da9c43000047862209fbe3b8986856040518084600019166000191681526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015610e94578082015181840152602081019050610e79565b50505050905090810190601f168015610ec15780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015610efa578082015181840152602081019050610edf565b50505050905090810190601f168015610f275780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a2610f44888789878661251d565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050600081111561121a5760046005811115610f9f57fe5b856005811115610fab57fe5b141561110757600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bfd24f40600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156110e057600080fd5b6102c65a03f115156110f157600080fd5b50505060405180519050151561110657600080fd5b5b60058081111561111357fe5b85600581111561111f57fe5b141561121957600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bfd24f4088836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156111f257600080fd5b6102c65a03f1151561120357600080fd5b50505060405180519050151561121857600080fd5b5b5b5050505050505050565b60008061122f61275d565b61123761275d565b61123f61275d565b6003600087600019166000191681526020019081526020016000206000015460036000886000191660001916815260200190815260200160002060010160009054906101000a900460ff16600360008960001916600019168152602001908152602001600020600201600360008a60001916600019168152602001908152602001600020600301600360008b60001916600019168152602001908152602001600020600401828054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113795780601f1061134e57610100808354040283529160200191611379565b820191906000526020600020905b81548152906001019060200180831161135c57829003601f168201915b50505050509250818054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114155780601f106113ea57610100808354040283529160200191611415565b820191906000526020600020905b8154815290600101906020018083116113f857829003601f168201915b50505050509150808054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114b15780601f10611486576101008083540402835291602001916114b1565b820191906000526020600020905b81548152906001019060200180831161149457829003601f168201915b505050505090509450945094509450945091939590929450565b60025481565b6114d961275d565b600080600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116595780601f1061162e57610100808354040283529160200191611659565b820191906000526020600020905b81548152906001019060200180831161163c57829003601f168201915b505050505092509250925092509193909250565b61167561275d565b6003600083600019166000191681526020019081526020016000206004018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117275780601f106116fc57610100808354040283529160200191611727565b820191906000526020600020905b81548152906001019060200180831161170a57829003601f168201915b50505050509050919050565b61173b61275d565b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156118115780601f106117e657610100808354040283529160200191611811565b820191906000526020600020905b8154815290600101906020018083116117f457829003601f168201915b50505050509050919050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060149054906101000a900460ff161515156118a657600080fd5b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561192a57fe5b3273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415151561196257fe5b32600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000019080519060200190611a809291906126dd565b503273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167faf5012f155004010b6b3ae7a6355778f4d22bb65d1ca74541e78696e41a448c085856040518083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611b18578082015181840152602081019050611afd565b50505050905090810190601f168015611b455780820380516001836020036101000a031916815260200191505b50935050505060405180910390a36001905092915050565b600060149054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611bc361275d565b6003600083600019166000191681526020019081526020016000206003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c755780601f10611c4a57610100808354040283529160200191611c75565b820191906000526020600020905b815481529060010190602001808311611c5857829003601f168201915b50505050509050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611cd957fe5b8060028190555050565b600060036000836000191660001916815260200190815260200160002060010160009054906101000a900460ff169050919050565b611d2061275d565b6003600083600019166000191681526020019081526020016000206002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611dd25780601f10611da757610100808354040283529160200191611dd2565b820191906000526020600020905b815481529060010190602001808311611db557829003601f168201915b50505050509050919050565b6000806000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515611e6657fe5b600254341015611f32577fc548eaddad03c946ad5228a88cfbd752439e312a7b29b7e8791a0b5fe143584c60016040518082815260200180602001828103825260548152602001807f6d73672e76616c7565206e656564656420666f72207375626d69742063616c6c81526020017f6261636b2067617320697320746f6f206c6f772e20436865636b20746865206381526020017f757272656e742063616c6c6261636b50726963650000000000000000000000008152506060019250505060405180910390a1600080fd5b670de0b6b3a764000034101515612005577fc548eaddad03c946ad5228a88cfbd752439e312a7b29b7e8791a0b5fe143584c60026040518082815260200180602001828103825260508152602001807f6d73672e76616c7565206e656564656420666f72207375626d69742063616c6c81526020017f6261636b2067617320697320746f6f20686967682e204d757374206265206c6f81526020017f776572207468616e2031206574686572000000000000000000000000000000008152506060019250505060405180910390a1600080fd5b600060149054906101000a900460ff1615151561202157600080fd5b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050600081111561212f57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bbc88c5d826000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b151561210857600080fd5b6102c65a03f1151561211957600080fd5b50505060405180519050151561212e57600080fd5b5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050151561219057600080fd5b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff167f743a962df271a2e268a671fb94be36697104681af61a64ccdf1dcf924035fdcd866040518080602001828103825283818151815260200191508051906020019080838360005b8381101561229957808201518184015260208101905061227e565b50505050905090810190601f1680156122c65780820380516001836020036101000a031916815260200191505b509250505060405180910390a46001915050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415612420578290508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561240357600080fd5b6102c65a03f1151561241457600080fd5b50505060405180519050505b505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156124f257600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156124f157806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b50565b6000600360008360001916600019168152602001908152602001600020600001549050919050565b60008490508073ffffffffffffffffffffffffffffffffffffffff166310a9f201878686866000604051602001526040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085600019166000191681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156125fa5780820151818401526020810190506125df565b50505050905090810190601f1680156126275780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015612660578082015181840152602081019050612645565b50505050905090810190601f16801561268d5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b15156126af57600080fd5b6102c65a03f115156126c057600080fd5b5050506040518051905015156126d557600080fd5b505050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061271e57805160ff191683800117855561274c565b8280016001018555821561274c579182015b8281111561274b578251825591602001919060010190612730565b5b5090506127599190612771565b5090565b602060405190810160405280600081525090565b61279391905b8082111561278f576000816000905550600101612777565b5090565b905600a165627a7a7230582004e35ebf16efd476b1186045826dca24fdbc4c832d3b13b5b934e5dfbbf271480029", + "sourceMap": "206:6616:2:-;;;268:5;246:27;;;;;;;;;;;;;;;;;;;;1804:189;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;104:10:6;96:5;;:18;;;;;;;;;;;;;;;;;;1929::2;1893:17;;:55;;;;;;;;;;;;;;;;;;1972:14;1958:13;:28;;;;1804:189;;206:6616;;;;;;", + "deployedSourceMap": "206:6616:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2023:88;;;;;;;;;;;;;;2972:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4890:1240;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3244:402;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;749:28:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2575:256;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4267:133:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3110:128:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2837:129:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2117:452;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;246:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46:20:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;700:42:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4119:142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6136:142:2;;;;;;;;;;;;;;;;;;;;;;;;;;3810:155;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3971:142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4406:478:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6641:178;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;191:110:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;3652:152:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2023:88;168:5:6;;;;;;;;;;;154:19;;:10;:19;;;150:32;;;2097:7:2;;;;;;;;;;;2096:8;2086:7;;:18;;;;;;;;;;;;;;;;;;150:32:6;2023:88:2:o;2972:132::-;3033:17;3069:12;:18;3082:4;3069:18;;;;;;;;;;;;;;;:28;;;3062:35;;2972:132;;;:::o;4890:1240::-;5736:17;1253:7;;;;;;;;;;;1252:8;1244:17;;;;;;;;5088:5;;;;;;;;;;;5074:19;;:10;:19;;;5067:27;;;;;;5163:25;5153:35;;;;;;;;:6;:35;;;;;;;;;;5145:44;;;;;;;;5330:25;5293:62;;;;;;;;:12;:26;5306:12;5293:26;;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;:62;;;;;;;;;5285:71;;;;;;;;5403:3;5366:12;:26;5379:12;5366:26;;;;;;;;;;;;;;;;;:36;;:40;;;;5452:6;5416:12;:26;5429:12;5416:26;;;;;;;;;;;;;;;;;:33;;;:42;;;;;;;;;;;;;;;;;;;;;;;;5504:6;5468:12;:26;5481:12;5468:26;;;;;;;;;;;;;;;;;:33;;:42;;;;;;;;;;;;:::i;:::-;;5556:6;5520:12;:26;5533:12;5520:26;;;;;;;;;;;;;;;;;:33;;:42;;;;;;;;;;;;:::i;:::-;;5605:3;5572:12;:26;5585:12;5572:26;;;;;;;;;;;;;;;;;:30;;:36;;;;;;;;;;;;:::i;:::-;;5646:4;5618:44;;;5633:12;5651:6;5658:3;5618:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5672:54:2;5692:12;5705:4;5710;5715:6;5722:3;5672:19;:54::i;:::-;5754:12;:18;5767:4;5754:18;;;;;;;;;;;;;;;:28;;;5736:46;;5807:1;5795:9;:13;5792:332;;;5837:29;5827:39;;;;;;;;:6;:39;;;;;;;;;5824:152;;;5893:17;;;;;;;;;;;:28;;;5922:12;:18;5935:4;5922:18;;;;;;;;;;;;;;;:27;;;;;;;;;;;;5950:9;5893:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5885:76;;;;;;;;5824:152;6002:25;5992:35;;;;;;;;:6;:35;;;;;;;;;5989:125;;;6054:17;;;;;;;;;;;:28;;;6083:4;6088:9;6054:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6046:53;;;;;;;;5989:125;5792:332;4890:1240;;;;;;;;:::o;3244:402::-;3308:17;3327:26;3355:13;;:::i;:::-;3370;;:::i;:::-;3385:10;;:::i;:::-;3424:12;:26;3437:12;3424:26;;;;;;;;;;;;;;;;;:36;;;3470:12;:26;3483:12;3470:26;;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;3513:12;:26;3526:12;3513:26;;;;;;;;;;;;;;;;;:33;;3556:12;:26;3569:12;3556:26;;;;;;;;;;;;;;;;;:33;;3599:12;:26;3612:12;3599:26;;;;;;;;;;;;;;;;;:30;;3407:232;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3244:402;;;;;;;:::o;749:28::-;;;;:::o;2575:256::-;2631:15;;:::i;:::-;2648:17;2667:16;2712:12;:18;2725:4;2712:18;;;;;;;;;;;;;;;:27;;2749:12;:18;2762:4;2749:18;;;;;;;;;;;;;;;:28;;;2787:12;:18;2800:4;2787:18;;;;;;;;;;;;;;;:27;;;;;;;;;;;;2695:129;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2575:256;;;;;:::o;4267:133::-;4334:10;;:::i;:::-;4363:12;:26;4376:12;4363:26;;;;;;;;;;;;;;;;;:30;;4356:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4267:133;;;:::o;3110:128::-;3170:15;;:::i;:::-;3204:12;:18;3217:4;3204:18;;;;;;;;;;;;;;;:27;;3197:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3110:128;;;:::o;2837:129::-;2897:16;2932:12;:18;2945:4;2932:18;;;;;;;;;;;;;;;:27;;;;;;;;;;;;2925:34;;2837:129;;;:::o;2117:452::-;2218:4;1253:7;;;;;;;;;;;1252:8;1244:17;;;;;;;;2278:3;2241:12;:24;2254:10;2241:24;;;;;;;;;;;;;;;:33;;;;;;;;;;;;:40;;;2234:48;;;;;;2313:9;2299:23;;:10;:23;;;;2292:31;;;;;;2367:9;2333:12;:24;2346:10;2333:24;;;;;;;;;;;;;;;:33;;;:43;;;;;;;;;;;;;;;;;;2421:9;2386:12;:24;2399:10;2386:24;;;;;;;;;;;;;;;:34;;:44;;;;2474:8;2440:12;:24;2453:10;2440:24;;;;;;;;;;;;;;;:33;;:42;;;;;;;;;;;;:::i;:::-;;2512:9;2492:49;;2501:10;2492:49;;;2522:9;2532:8;2492:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2558:4:2;2551:11;;2117:452;;;;:::o;246:27::-;;;;;;;;;;;;;:::o;46:20:6:-;;;;;;;;;;;;;:::o;700:42:2:-;;;;;;;;;;;;;:::o;4119:142::-;4189:13;;:::i;:::-;4221:12;:26;4234:12;4221:26;;;;;;;;;;;;;;;;;:33;;4214:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4119:142;;;:::o;6136:::-;6227:5;;;;;;;;;;;6213:19;;:10;:19;;;6206:27;;;;;;6257:14;6243:13;:28;;;;6136:142;:::o;3810:155::-;3880:26;3925:12;:26;3938:12;3925:26;;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;3918:40;;3810:155;;;:::o;3971:142::-;4041:13;;:::i;:::-;4073:12;:26;4086:12;4073:26;;;;;;;;;;;;;;;;;:33;;4066:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3971:142;;;:::o;4406:478::-;4511:4;4526:17;1362:3;1325:12;:24;1338:10;1325:24;;;;;;;;;;;;;;;:33;;;;;;;;;;;;:40;;;;1318:48;;;;;;1444:13;;1432:9;:25;1429:167;;;1470:95;1476:1;1470:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1577:8;;;1429:167;1621:7;1608:9;:20;;1605:158;;;1641:91;1647:1;1641:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1744:8;;;1605:158;1253:7;;;;;;;;;;;1252:8;1244:17;;;;;;;;4544:12;:24;4557:10;4544:24;;;;;;;;;;;;;;;:34;;;4526:52;;4603:1;4591:9;:13;4588:154;;;4691:17;;;;;;;;;;;:28;;;4720:9;4691:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4683:48;;;;;;;;4588:154;4751:5;;;;;;;;;;;:14;;:25;4766:9;4751:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4815:12;:24;4828:10;4815:24;;;;;;;;;;;;;;;:33;;;;;;;;;;;;4786:70;;4804:10;4786:70;;4793:9;4786:70;;;4850:5;4786:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4873:4:2;4866:11;;4406:478;;;;:::o;6641:178::-;6735:12;168:5:6;;;;;;;;;;;154:19;;:10;:19;;;150:32;;;6754:15:2;6735:35;;6780:8;:17;;;6798:5;;;;;;;;;;;6805:6;6780:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;150::6;6641:178:2;;;:::o;191:110:6:-;168:5;;;;;;;;;;;154:19;;:10;:19;;;150:32;;;276:1;256:22;;:8;:22;;;;252:44;;;288:8;280:5;;:16;;;;;;;;;;;;;;;;;;252:44;150:32;191:110;:::o;3652:152:2:-;3725:17;3761:12;:26;3774:12;3761:26;;;;;;;;;;;;;;;;;:36;;;3754:43;;3652:152;;;:::o;6284:267::-;6409:29;6456:4;6409:52;;6479:14;:34;;;6514:12;6527:4;6532:6;6539:3;6479:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6471:73:2;;;;;;;;6284:267;;;;;;:::o;206:6616::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", + "source": "pragma solidity ^0.4.18;\n//v1.1.1\nimport './IexecOracleAPI.sol';\nimport './IexecOracleEscrow.sol';\nimport './IexecLib.sol';\nimport \"rlc-token/contracts/Ownable.sol\";\nimport \"rlc-token/contracts/RLC.sol\";\n\n\ncontract IexecOracle is Ownable {\n\n\n bool public stopped = false;\n /*\n * EVENTS AND MODIFIERS\n */\n event Submit(address indexed user, address indexed dapp, address indexed provider, string args); // special log to launch process\n event SubmitCallback(bytes32 submitTxHash, address indexed user, string stdout, string uri);\n event Register(address indexed dapp, address indexed provider,uint256 dappPrice, string dappName);\n event Error(uint code,string message);\n\n IexecOracleEscrow public iexecOracleEscrow;\n\n uint256 public callbackPrice;\n\n struct Work {\n uint256 timestamp;\n IexecLib.StatusEnum status;\n string stdout;\n string stderr;\n string uri;\n }\n //mapping (submitTxHash => Work) workRegistry;\n mapping (bytes32 => Work) workRegistry;\n\n struct Dapp {\n string dappName;\n uint256 dappPrice;\n address provider;\n }\n\n //mapping (dapp address => Dapp Struct)\n mapping (address => Dapp ) dappRegistry ;\n\n modifier stopInEmergency {\n require(!stopped);\n _;\n }\n\n modifier onlyRegistered(){\n assert(dappRegistry[msg.sender].provider != 0x0);\n _;\n }\n\n modifier checkCallbackPrice(){\n if(msg.value < callbackPrice){\n Error(1,\"msg.value needed for submit callback gas is too low. Check the current callbackPrice\");\n revert();\n }\n if(msg.value >= 1 ether){\n Error(2,\"msg.value needed for submit callback gas is too high. Must be lower than 1 ether\");\n revert();\n }\n _;\n }\n\n //constructor\n function IexecOracle(address _iexecOracleEscrow,uint256 _callbackPrice) public {\n iexecOracleEscrow=IexecOracleEscrow(_iexecOracleEscrow);\n callbackPrice=_callbackPrice;\n }\n\n // Circuit Breakers\n function toggleContractActive() onlyOwner public\n {\n stopped = !stopped;\n }\n\n function registerDappAndProvider(uint256 dappPrice,string dappName) stopInEmergency public returns (bool) {\n assert(dappRegistry[msg.sender].provider == 0x0);\n assert(msg.sender != tx.origin);\n dappRegistry[msg.sender].provider=tx.origin;\n dappRegistry[msg.sender].dappPrice=dappPrice;\n dappRegistry[msg.sender].dappName=dappName;\n Register(msg.sender,tx.origin,dappPrice,dappName);\n return true;\n }\n\n function getDapp(address dapp) constant public returns (string dappName, uint256 dappPrice, address provider) {\n return (\n dappRegistry[dapp].dappName,\n dappRegistry[dapp].dappPrice,\n dappRegistry[dapp].provider\n );\n }\n\n function getProvider(address dapp) constant public returns (address provider) {\n return dappRegistry[dapp].provider;\n }\n\n function getDappPrice(address dapp) constant public returns (uint256 dappPrice) {\n return dappRegistry[dapp].dappPrice;\n }\n\n function getDappName(address dapp) constant public returns (string dappName) {\n return dappRegistry[dapp].dappName;\n }\n\n function getWork(bytes32 submitTxHash) constant public returns (uint256 timestamp, IexecLib.StatusEnum status, string stdout, string stderr, string uri) {\n return (\n workRegistry[submitTxHash].timestamp,\n workRegistry[submitTxHash].status,\n workRegistry[submitTxHash].stdout,\n workRegistry[submitTxHash].stderr,\n workRegistry[submitTxHash].uri\n );\n }\n\n function getWorkTimestamp(bytes32 submitTxHash) constant public returns (uint256 timestamp) {\n return workRegistry[submitTxHash].timestamp;\n }\n\n function getWorkStatus(bytes32 submitTxHash) constant public returns (IexecLib.StatusEnum status) {\n return workRegistry[submitTxHash].status;\n }\n\n function getWorkStdout(bytes32 submitTxHash) constant public returns (string stdout) {\n return workRegistry[submitTxHash].stdout;\n }\n\n function getWorkStderr(bytes32 submitTxHash) constant public returns (string stderr) {\n return workRegistry[submitTxHash].stderr;\n }\n\n function getWorkUri(bytes32 submitTxHash) constant public returns (string uri) {\n return workRegistry[submitTxHash].uri;\n }\n\n function submit(string param) onlyRegistered checkCallbackPrice stopInEmergency public payable returns (bool){\n uint256 dappPrice=dappRegistry[msg.sender].dappPrice;\n if(dappPrice > 0 ){\n //transfert user RLC deplosit to iexecOracleEscrow\n require(iexecOracleEscrow.rlcDeposit(dappPrice));\n }\n owner.transfer(msg.value);\n Submit(tx.origin, msg.sender,dappRegistry[msg.sender].provider, param);\n return true;\n }\n\n function submitCallback(bytes32 submitTxHash, address user, address dapp, IexecLib.StatusEnum status, string stdout, string stderr, string uri) stopInEmergency public {\n assert(msg.sender == owner);\n //set StatusEnum.UNSET forbidden\n require(status != IexecLib.StatusEnum.UNSET);\n //only one call is consider if 2 bridges are up thanks to the following check\n require(workRegistry[submitTxHash].status == IexecLib.StatusEnum.UNSET);\n workRegistry[submitTxHash].timestamp=now;\n workRegistry[submitTxHash].status = status;\n workRegistry[submitTxHash].stdout = stdout;\n workRegistry[submitTxHash].stderr = stderr;\n workRegistry[submitTxHash].uri = uri;\n SubmitCallback(submitTxHash,user,stdout,uri);\n iexecSubmitCallback(submitTxHash,dapp,user,stdout,uri);\n uint256 dappPrice=dappRegistry[dapp].dappPrice;\n if(dappPrice > 0 ){\n if(status == IexecLib.StatusEnum.COMPLETED){\n require(iexecOracleEscrow.rlcPayment(dappRegistry[dapp].provider,dappPrice));\n }\n if(status == IexecLib.StatusEnum.ERROR){\n require(iexecOracleEscrow.rlcPayment(user,dappPrice));\n }\n }\n }\n\n function changeCallbackPrice(uint256 _callbackPrice) public {\n assert(msg.sender == owner);\n callbackPrice=_callbackPrice;\n }\n\n function iexecSubmitCallback(bytes32 submitTxHash, address dapp, address user, string stdout, string uri) internal {\n IexecOracleAPI iexecOracleAPI = IexecOracleAPI(dapp);\n require(iexecOracleAPI.iexecSubmitCallback(submitTxHash,user,stdout,uri));\n }\n\n /**\n * transfer to owner any tokens send by mistake on this contracts\n */\n function emergencyERC20Drain(address rlcTokenAddress, uint amount) public onlyOwner {\n RLC rlcToken = RLC(rlcTokenAddress);\n rlcToken.transfer(owner, amount);\n }\n\n}\n", + "sourcePath": "iexec-oracle-contract/contracts/IexecOracle.sol", + "ast": { + "attributes": { + "absolutePath": "iexec-oracle-contract/contracts/IexecOracle.sol", + "exportedSymbols": { + "IexecOracle": [ + 696 + ] + } + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + "^", + "0.4", + ".18" + ] + }, + "id": 34, + "name": "PragmaDirective", + "src": "0:24:2" + }, + { + "attributes": { + "SourceUnit": 795, + "absolutePath": "iexec-oracle-contract/contracts/IexecOracleAPI.sol", + "file": "./IexecOracleAPI.sol", + "scope": 697, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 35, + "name": "ImportDirective", + "src": "34:30:2" + }, + { + "attributes": { + "SourceUnit": 939, + "absolutePath": "iexec-oracle-contract/contracts/IexecOracleEscrow.sol", + "file": "./IexecOracleEscrow.sol", + "scope": 697, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 36, + "name": "ImportDirective", + "src": "65:33:2" + }, + { + "attributes": { + "SourceUnit": 33, + "absolutePath": "iexec-oracle-contract/contracts/IexecLib.sol", + "file": "./IexecLib.sol", + "scope": 697, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 37, + "name": "ImportDirective", + "src": "99:24:2" + }, + { + "attributes": { + "SourceUnit": 1046, + "absolutePath": "rlc-token/contracts/Ownable.sol", + "file": "rlc-token/contracts/Ownable.sol", + "scope": 697, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 38, + "name": "ImportDirective", + "src": "124:41:2" + }, + { + "attributes": { + "SourceUnit": 1375, + "absolutePath": "rlc-token/contracts/RLC.sol", + "file": "rlc-token/contracts/RLC.sol", + "scope": 697, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 39, + "name": "ImportDirective", + "src": "166:37:2" + }, + { + "attributes": { + "contractDependencies": [ + 1045 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "linearizedBaseContracts": [ + 696, + 1045 + ], + "name": "IexecOracle", + "scope": 697 + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ] + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "Ownable", + "referencedDeclaration": 1045, + "type": "contract Ownable" + }, + "id": 40, + "name": "UserDefinedTypeName", + "src": "230:7:2" + } + ], + "id": 41, + "name": "InheritanceSpecifier", + "src": "230:7:2" + }, + { + "attributes": { + "constant": false, + "name": "stopped", + "scope": 696, + "stateVariable": true, + "storageLocation": "default", + "type": "bool", + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 42, + "name": "ElementaryTypeName", + "src": "246:4:2" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 43, + "name": "Literal", + "src": "268:5:2" + } + ], + "id": 44, + "name": "VariableDeclaration", + "src": "246:27:2" + }, + { + "attributes": { + "anonymous": false, + "name": "Submit" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "name": "user", + "scope": 54, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 45, + "name": "ElementaryTypeName", + "src": "335:7:2" + } + ], + "id": 46, + "name": "VariableDeclaration", + "src": "335:20:2" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "name": "dapp", + "scope": 54, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 47, + "name": "ElementaryTypeName", + "src": "357:7:2" + } + ], + "id": 48, + "name": "VariableDeclaration", + "src": "357:20:2" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "name": "provider", + "scope": 54, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 49, + "name": "ElementaryTypeName", + "src": "379:7:2" + } + ], + "id": 50, + "name": "VariableDeclaration", + "src": "379:24:2" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "args", + "scope": 54, + "stateVariable": false, + "storageLocation": "default", + "type": "string memory", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string storage pointer" + }, + "id": 51, + "name": "ElementaryTypeName", + "src": "405:6:2" + } + ], + "id": 52, + "name": "VariableDeclaration", + "src": "405:11:2" + } + ], + "id": 53, + "name": "ParameterList", + "src": "334:83:2" + } + ], + "id": 54, + "name": "EventDefinition", + "src": "322:96:2" + }, + { + "attributes": { + "anonymous": false, + "name": "SubmitCallback" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "submitTxHash", + "scope": 64, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 55, + "name": "ElementaryTypeName", + "src": "477:7:2" + } + ], + "id": 56, + "name": "VariableDeclaration", + "src": "477:20:2" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "name": "user", + "scope": 64, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 57, + "name": "ElementaryTypeName", + "src": "499:7:2" + } + ], + "id": 58, + "name": "VariableDeclaration", + "src": "499:20:2" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "stdout", + "scope": 64, + "stateVariable": false, + "storageLocation": "default", + "type": "string memory", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string storage pointer" + }, + "id": 59, + "name": "ElementaryTypeName", + "src": "521:6:2" + } + ], + "id": 60, + "name": "VariableDeclaration", + "src": "521:13:2" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "uri", + "scope": 64, + "stateVariable": false, + "storageLocation": "default", + "type": "string memory", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string storage pointer" + }, + "id": 61, + "name": "ElementaryTypeName", + "src": "536:6:2" + } + ], + "id": 62, + "name": "VariableDeclaration", + "src": "536:10:2" + } + ], + "id": 63, + "name": "ParameterList", + "src": "476:71:2" + } + ], + "id": 64, + "name": "EventDefinition", + "src": "456:92:2" + }, + { + "attributes": { + "anonymous": false, + "name": "Register" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "name": "dapp", + "scope": 74, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 65, + "name": "ElementaryTypeName", + "src": "568:7:2" + } + ], + "id": 66, + "name": "VariableDeclaration", + "src": "568:20:2" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "name": "provider", + "scope": 74, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 67, + "name": "ElementaryTypeName", + "src": "590:7:2" + } + ], + "id": 68, + "name": "VariableDeclaration", + "src": "590:24:2" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "dappPrice", + "scope": 74, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 69, + "name": "ElementaryTypeName", + "src": "615:7:2" + } + ], + "id": 70, + "name": "VariableDeclaration", + "src": "615:17:2" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "dappName", + "scope": 74, + "stateVariable": false, + "storageLocation": "default", + "type": "string memory", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string storage pointer" + }, + "id": 71, + "name": "ElementaryTypeName", + "src": "634:6:2" + } + ], + "id": 72, + "name": "VariableDeclaration", + "src": "634:15:2" + } + ], + "id": 73, + "name": "ParameterList", + "src": "567:83:2" + } + ], + "id": 74, + "name": "EventDefinition", + "src": "553:98:2" + }, + { + "attributes": { + "anonymous": false, + "name": "Error" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "code", + "scope": 80, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 75, + "name": "ElementaryTypeName", + "src": "668:4:2" + } + ], + "id": 76, + "name": "VariableDeclaration", + "src": "668:9:2" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "message", + "scope": 80, + "stateVariable": false, + "storageLocation": "default", + "type": "string memory", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string storage pointer" + }, + "id": 77, + "name": "ElementaryTypeName", + "src": "678:6:2" + } + ], + "id": 78, + "name": "VariableDeclaration", + "src": "678:14:2" + } + ], + "id": 79, + "name": "ParameterList", + "src": "667:26:2" + } + ], + "id": 80, + "name": "EventDefinition", + "src": "656:38:2" + }, + { + "attributes": { + "constant": false, + "name": "iexecOracleEscrow", + "scope": 696, + "stateVariable": true, + "storageLocation": "default", + "type": "contract IexecOracleEscrow", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "IexecOracleEscrow", + "referencedDeclaration": 938, + "type": "contract IexecOracleEscrow" + }, + "id": 81, + "name": "UserDefinedTypeName", + "src": "700:17:2" + } + ], + "id": 82, + "name": "VariableDeclaration", + "src": "700:42:2" + }, + { + "attributes": { + "constant": false, + "name": "callbackPrice", + "scope": 696, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 83, + "name": "ElementaryTypeName", + "src": "749:7:2" + } + ], + "id": 84, + "name": "VariableDeclaration", + "src": "749:28:2" + }, + { + "attributes": { + "canonicalName": "IexecOracle.Work", + "name": "Work", + "scope": 696, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "timestamp", + "scope": 95, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 85, + "name": "ElementaryTypeName", + "src": "804:7:2" + } + ], + "id": 86, + "name": "VariableDeclaration", + "src": "804:17:2" + }, + { + "attributes": { + "constant": false, + "name": "status", + "scope": 95, + "stateVariable": false, + "storageLocation": "default", + "type": "enum IexecLib.StatusEnum", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "IexecLib.StatusEnum", + "referencedDeclaration": 31, + "type": "enum IexecLib.StatusEnum" + }, + "id": 87, + "name": "UserDefinedTypeName", + "src": "829:19:2" + } + ], + "id": 88, + "name": "VariableDeclaration", + "src": "829:26:2" + }, + { + "attributes": { + "constant": false, + "name": "stdout", + "scope": 95, + "stateVariable": false, + "storageLocation": "default", + "type": "string storage pointer", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string storage pointer" + }, + "id": 89, + "name": "ElementaryTypeName", + "src": "863:6:2" + } + ], + "id": 90, + "name": "VariableDeclaration", + "src": "863:13:2" + }, + { + "attributes": { + "constant": false, + "name": "stderr", + "scope": 95, + "stateVariable": false, + "storageLocation": "default", + "type": "string storage pointer", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string storage pointer" + }, + "id": 91, + "name": "ElementaryTypeName", + "src": "884:6:2" + } + ], + "id": 92, + "name": "VariableDeclaration", + "src": "884:13:2" + }, + { + "attributes": { + "constant": false, + "name": "uri", + "scope": 95, + "stateVariable": false, + "storageLocation": "default", + "type": "string storage pointer", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string storage pointer" + }, + "id": 93, + "name": "ElementaryTypeName", + "src": "905:6:2" + } + ], + "id": 94, + "name": "VariableDeclaration", + "src": "905:10:2" + } + ], + "id": 95, + "name": "StructDefinition", + "src": "784:138:2" + }, + { + "attributes": { + "constant": false, + "name": "workRegistry", + "scope": 696, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(bytes32 => struct IexecOracle.Work storage ref)", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes32 => struct IexecOracle.Work storage ref)" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 96, + "name": "ElementaryTypeName", + "src": "987:7:2" + }, + { + "attributes": { + "contractScope": null, + "name": "Work", + "referencedDeclaration": 95, + "type": "struct IexecOracle.Work storage pointer" + }, + "id": 97, + "name": "UserDefinedTypeName", + "src": "998:4:2" + } + ], + "id": 98, + "name": "Mapping", + "src": "978:25:2" + } + ], + "id": 99, + "name": "VariableDeclaration", + "src": "978:38:2" + }, + { + "attributes": { + "canonicalName": "IexecOracle.Dapp", + "name": "Dapp", + "scope": 696, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "dappName", + "scope": 106, + "stateVariable": false, + "storageLocation": "default", + "type": "string storage pointer", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string storage pointer" + }, + "id": 100, + "name": "ElementaryTypeName", + "src": "1043:6:2" + } + ], + "id": 101, + "name": "VariableDeclaration", + "src": "1043:15:2" + }, + { + "attributes": { + "constant": false, + "name": "dappPrice", + "scope": 106, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 102, + "name": "ElementaryTypeName", + "src": "1066:7:2" + } + ], + "id": 103, + "name": "VariableDeclaration", + "src": "1066:17:2" + }, + { + "attributes": { + "constant": false, + "name": "provider", + "scope": 106, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 104, + "name": "ElementaryTypeName", + "src": "1091:7:2" + } + ], + "id": 105, + "name": "VariableDeclaration", + "src": "1091:16:2" + } + ], + "id": 106, + "name": "StructDefinition", + "src": "1023:91:2" + }, + { + "attributes": { + "constant": false, + "name": "dappRegistry", + "scope": 696, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => struct IexecOracle.Dapp storage ref)", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => struct IexecOracle.Dapp storage ref)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 107, + "name": "ElementaryTypeName", + "src": "1173:7:2" + }, + { + "attributes": { + "contractScope": null, + "name": "Dapp", + "referencedDeclaration": 106, + "type": "struct IexecOracle.Dapp storage pointer" + }, + "id": 108, + "name": "UserDefinedTypeName", + "src": "1184:4:2" + } + ], + "id": 109, + "name": "Mapping", + "src": "1164:26:2" + } + ], + "id": 110, + "name": "VariableDeclaration", + "src": "1164:39:2" + }, + { + "attributes": { + "name": "stopInEmergency", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 111, + "name": "ParameterList", + "src": "1236:0:2" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1599, + "type": "function (bool) pure", + "value": "require" + }, + "id": 112, + "name": "Identifier", + "src": "1244:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 44, + "type": "bool", + "value": "stopped" + }, + "id": 113, + "name": "Identifier", + "src": "1253:7:2" + } + ], + "id": 114, + "name": "UnaryOperation", + "src": "1252:8:2" + } + ], + "id": 115, + "name": "FunctionCall", + "src": "1244:17:2" + } + ], + "id": 116, + "name": "ExpressionStatement", + "src": "1244:17:2" + }, + { + "id": 117, + "name": "PlaceholderStatement", + "src": "1269:1:2" + } + ], + "id": 118, + "name": "Block", + "src": "1236:41:2" + } + ], + "id": 119, + "name": "ModifierDefinition", + "src": "1211:66:2" + }, + { + "attributes": { + "name": "onlyRegistered", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 120, + "name": "ParameterList", + "src": "1306:2:2" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1587, + "type": "function (bool) pure", + "value": "assert" + }, + "id": 121, + "name": "Identifier", + "src": "1318:6:2" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "provider", + "referencedDeclaration": 105, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct IexecOracle.Dapp storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 110, + "type": "mapping(address => struct IexecOracle.Dapp storage ref)", + "value": "dappRegistry" + }, + "id": 122, + "name": "Identifier", + "src": "1325:12:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1596, + "type": "msg", + "value": "msg" + }, + "id": 123, + "name": "Identifier", + "src": "1338:3:2" + } + ], + "id": 124, + "name": "MemberAccess", + "src": "1338:10:2" + } + ], + "id": 125, + "name": "IndexAccess", + "src": "1325:24:2" + } + ], + "id": 126, + "name": "MemberAccess", + "src": "1325:33:2" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "307830", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0x0" + }, + "id": 127, + "name": "Literal", + "src": "1362:3:2" + } + ], + "id": 128, + "name": "BinaryOperation", + "src": "1325:40:2" + } + ], + "id": 129, + "name": "FunctionCall", + "src": "1318:48:2" + } + ], + "id": 130, + "name": "ExpressionStatement", + "src": "1318:48:2" + }, + { + "id": 131, + "name": "PlaceholderStatement", + "src": "1376:1:2" + } + ], + "id": 132, + "name": "Block", + "src": "1308:76:2" + } + ], + "id": 133, + "name": "ModifierDefinition", + "src": "1283:101:2" + }, + { + "attributes": { + "name": "checkCallbackPrice", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 134, + "name": "ParameterList", + "src": "1417:2:2" + }, + { + "children": [ + { + "attributes": { + "falseBody": null + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "value", + "referencedDeclaration": null, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1596, + "type": "msg", + "value": "msg" + }, + "id": 135, + "name": "Identifier", + "src": "1432:3:2" + } + ], + "id": 136, + "name": "MemberAccess", + "src": "1432:9:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 84, + "type": "uint256", + "value": "callbackPrice" + }, + "id": 137, + "name": "Identifier", + "src": "1444:13:2" + } + ], + "id": 138, + "name": "BinaryOperation", + "src": "1432:25:2" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + { + "typeIdentifier": "t_stringliteral_b24802efcd92bba5e6d963c736145d36102c737a3441b8b8c8037dbe5a37b434", + "typeString": "literal_string \"msg.value needed for submit callback gas is too low. Check the current callbackPrice\"" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 80, + "type": "function (uint256,string memory)", + "value": "Error" + }, + "id": 139, + "name": "Identifier", + "src": "1470:5:2" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 140, + "name": "Literal", + "src": "1476:1:2" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "6d73672e76616c7565206e656564656420666f72207375626d69742063616c6c6261636b2067617320697320746f6f206c6f772e20436865636b207468652063757272656e742063616c6c6261636b5072696365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"msg.value needed for submit callback gas is too low. Check the current callbackPrice\"", + "value": "msg.value needed for submit callback gas is too low. Check the current callbackPrice" + }, + "id": 141, + "name": "Literal", + "src": "1478:86:2" + } + ], + "id": 142, + "name": "FunctionCall", + "src": "1470:95:2" + } + ], + "id": 143, + "name": "ExpressionStatement", + "src": "1470:95:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1600, + "type": "function () pure", + "value": "revert" + }, + "id": 144, + "name": "Identifier", + "src": "1577:6:2" + } + ], + "id": 145, + "name": "FunctionCall", + "src": "1577:8:2" + } + ], + "id": 146, + "name": "ExpressionStatement", + "src": "1577:8:2" + } + ], + "id": 147, + "name": "Block", + "src": "1458:138:2" + } + ], + "id": 148, + "name": "IfStatement", + "src": "1429:167:2" + }, + { + "attributes": { + "falseBody": null + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "value", + "referencedDeclaration": null, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1596, + "type": "msg", + "value": "msg" + }, + "id": 149, + "name": "Identifier", + "src": "1608:3:2" + } + ], + "id": 150, + "name": "MemberAccess", + "src": "1608:9:2" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": "ether", + "token": "number", + "type": "int_const 1000000000000000000", + "value": "1" + }, + "id": 151, + "name": "Literal", + "src": "1621:7:2" + } + ], + "id": 152, + "name": "BinaryOperation", + "src": "1608:20:2" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + { + "typeIdentifier": "t_stringliteral_2cdd4fc0c4b5363e32c164379daa9ff456cb25eaabd6a41e0fcd8fa8eddd8c11", + "typeString": "literal_string \"msg.value needed for submit callback gas is too high. Must be lower than 1 ether\"" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 80, + "type": "function (uint256,string memory)", + "value": "Error" + }, + "id": 153, + "name": "Identifier", + "src": "1641:5:2" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "32", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 2", + "value": "2" + }, + "id": 154, + "name": "Literal", + "src": "1647:1:2" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "6d73672e76616c7565206e656564656420666f72207375626d69742063616c6c6261636b2067617320697320746f6f20686967682e204d757374206265206c6f776572207468616e2031206574686572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"msg.value needed for submit callback gas is too high. Must be lower than 1 ether\"", + "value": "msg.value needed for submit callback gas is too high. Must be lower than 1 ether" + }, + "id": 155, + "name": "Literal", + "src": "1649:82:2" + } + ], + "id": 156, + "name": "FunctionCall", + "src": "1641:91:2" + } + ], + "id": 157, + "name": "ExpressionStatement", + "src": "1641:91:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1600, + "type": "function () pure", + "value": "revert" + }, + "id": 158, + "name": "Identifier", + "src": "1744:6:2" + } + ], + "id": 159, + "name": "FunctionCall", + "src": "1744:8:2" + } + ], + "id": 160, + "name": "ExpressionStatement", + "src": "1744:8:2" + } + ], + "id": 161, + "name": "Block", + "src": "1629:134:2" + } + ], + "id": 162, + "name": "IfStatement", + "src": "1605:158:2" + }, + { + "id": 163, + "name": "PlaceholderStatement", + "src": "1772:1:2" + } + ], + "id": 164, + "name": "Block", + "src": "1419:361:2" + } + ], + "id": 165, + "name": "ModifierDefinition", + "src": "1390:390:2" + }, + { + "attributes": { + "constant": false, + "implemented": true, + "isConstructor": true, + "modifiers": [ + null + ], + "name": "IexecOracle", + "payable": false, + "scope": 696, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "_iexecOracleEscrow", + "scope": 183, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 166, + "name": "ElementaryTypeName", + "src": "1825:7:2" + } + ], + "id": 167, + "name": "VariableDeclaration", + "src": "1825:26:2" + }, + { + "attributes": { + "constant": false, + "name": "_callbackPrice", + "scope": 183, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 168, + "name": "ElementaryTypeName", + "src": "1852:7:2" + } + ], + "id": 169, + "name": "VariableDeclaration", + "src": "1852:22:2" + } + ], + "id": 170, + "name": "ParameterList", + "src": "1824:51:2" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 171, + "name": "ParameterList", + "src": "1883:0:2" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "contract IexecOracleEscrow" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 82, + "type": "contract IexecOracleEscrow", + "value": "iexecOracleEscrow" + }, + "id": 172, + "name": "Identifier", + "src": "1893:17:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "contract IexecOracleEscrow", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 938, + "type": "type(contract IexecOracleEscrow)", + "value": "IexecOracleEscrow" + }, + "id": 173, + "name": "Identifier", + "src": "1911:17:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 167, + "type": "address", + "value": "_iexecOracleEscrow" + }, + "id": 174, + "name": "Identifier", + "src": "1929:18:2" + } + ], + "id": 175, + "name": "FunctionCall", + "src": "1911:37:2" + } + ], + "id": 176, + "name": "Assignment", + "src": "1893:55:2" + } + ], + "id": 177, + "name": "ExpressionStatement", + "src": "1893:55:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 84, + "type": "uint256", + "value": "callbackPrice" + }, + "id": 178, + "name": "Identifier", + "src": "1958:13:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 169, + "type": "uint256", + "value": "_callbackPrice" + }, + "id": 179, + "name": "Identifier", + "src": "1972:14:2" + } + ], + "id": 180, + "name": "Assignment", + "src": "1958:28:2" + } + ], + "id": 181, + "name": "ExpressionStatement", + "src": "1958:28:2" + } + ], + "id": 182, + "name": "Block", + "src": "1883:110:2" + } + ], + "id": 183, + "name": "FunctionDefinition", + "src": "1804:189:2" + }, + { + "attributes": { + "constant": false, + "implemented": true, + "isConstructor": false, + "name": "toggleContractActive", + "payable": false, + "scope": 696, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 184, + "name": "ParameterList", + "src": "2052:2:2" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 187, + "name": "ParameterList", + "src": "2076:0:2" + }, + { + "attributes": { + "arguments": [ + null + ] + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1026, + "type": "modifier ()", + "value": "onlyOwner" + }, + "id": 185, + "name": "Identifier", + "src": "2055:9:2" + } + ], + "id": 186, + "name": "ModifierInvocation", + "src": "2055:9:2" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 44, + "type": "bool", + "value": "stopped" + }, + "id": 188, + "name": "Identifier", + "src": "2086:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 44, + "type": "bool", + "value": "stopped" + }, + "id": 189, + "name": "Identifier", + "src": "2097:7:2" + } + ], + "id": 190, + "name": "UnaryOperation", + "src": "2096:8:2" + } + ], + "id": 191, + "name": "Assignment", + "src": "2086:18:2" + } + ], + "id": 192, + "name": "ExpressionStatement", + "src": "2086:18:2" + } + ], + "id": 193, + "name": "Block", + "src": "2076:35:2" + } + ], + "id": 194, + "name": "FunctionDefinition", + "src": "2023:88:2" + }, + { + "attributes": { + "constant": false, + "implemented": true, + "isConstructor": false, + "name": "registerDappAndProvider", + "payable": false, + "scope": 696, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "dappPrice", + "scope": 260, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 195, + "name": "ElementaryTypeName", + "src": "2150:7:2" + } + ], + "id": 196, + "name": "VariableDeclaration", + "src": "2150:17:2" + }, + { + "attributes": { + "constant": false, + "name": "dappName", + "scope": 260, + "stateVariable": false, + "storageLocation": "default", + "type": "string memory", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string storage pointer" + }, + "id": 197, + "name": "ElementaryTypeName", + "src": "2168:6:2" + } + ], + "id": 198, + "name": "VariableDeclaration", + "src": "2168:15:2" + } + ], + "id": 199, + "name": "ParameterList", + "src": "2149:35:2" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 260, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 202, + "name": "ElementaryTypeName", + "src": "2218:4:2" + } + ], + "id": 203, + "name": "VariableDeclaration", + "src": "2218:4:2" + } + ], + "id": 204, + "name": "ParameterList", + "src": "2217:6:2" + }, + { + "attributes": { + "arguments": [ + null + ] + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 119, + "type": "modifier ()", + "value": "stopInEmergency" + }, + "id": 200, + "name": "Identifier", + "src": "2185:15:2" + } + ], + "id": 201, + "name": "ModifierInvocation", + "src": "2185:15:2" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1587, + "type": "function (bool) pure", + "value": "assert" + }, + "id": 205, + "name": "Identifier", + "src": "2234:6:2" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "provider", + "referencedDeclaration": 105, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct IexecOracle.Dapp storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 110, + "type": "mapping(address => struct IexecOracle.Dapp storage ref)", + "value": "dappRegistry" + }, + "id": 206, + "name": "Identifier", + "src": "2241:12:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1596, + "type": "msg", + "value": "msg" + }, + "id": 207, + "name": "Identifier", + "src": "2254:3:2" + } + ], + "id": 208, + "name": "MemberAccess", + "src": "2254:10:2" + } + ], + "id": 209, + "name": "IndexAccess", + "src": "2241:24:2" + } + ], + "id": 210, + "name": "MemberAccess", + "src": "2241:33:2" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "307830", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0x0" + }, + "id": 211, + "name": "Literal", + "src": "2278:3:2" + } + ], + "id": 212, + "name": "BinaryOperation", + "src": "2241:40:2" + } + ], + "id": 213, + "name": "FunctionCall", + "src": "2234:48:2" + } + ], + "id": 214, + "name": "ExpressionStatement", + "src": "2234:48:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1587, + "type": "function (bool) pure", + "value": "assert" + }, + "id": 215, + "name": "Identifier", + "src": "2292:6:2" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1596, + "type": "msg", + "value": "msg" + }, + "id": 216, + "name": "Identifier", + "src": "2299:3:2" + } + ], + "id": 217, + "name": "MemberAccess", + "src": "2299:10:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "origin", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1606, + "type": "tx", + "value": "tx" + }, + "id": 218, + "name": "Identifier", + "src": "2313:2:2" + } + ], + "id": 219, + "name": "MemberAccess", + "src": "2313:9:2" + } + ], + "id": 220, + "name": "BinaryOperation", + "src": "2299:23:2" + } + ], + "id": 221, + "name": "FunctionCall", + "src": "2292:31:2" + } + ], + "id": 222, + "name": "ExpressionStatement", + "src": "2292:31:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "provider", + "referencedDeclaration": 105, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct IexecOracle.Dapp storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 110, + "type": "mapping(address => struct IexecOracle.Dapp storage ref)", + "value": "dappRegistry" + }, + "id": 223, + "name": "Identifier", + "src": "2333:12:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1596, + "type": "msg", + "value": "msg" + }, + "id": 224, + "name": "Identifier", + "src": "2346:3:2" + } + ], + "id": 225, + "name": "MemberAccess", + "src": "2346:10:2" + } + ], + "id": 226, + "name": "IndexAccess", + "src": "2333:24:2" + } + ], + "id": 227, + "name": "MemberAccess", + "src": "2333:33:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "origin", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1606, + "type": "tx", + "value": "tx" + }, + "id": 228, + "name": "Identifier", + "src": "2367:2:2" + } + ], + "id": 229, + "name": "MemberAccess", + "src": "2367:9:2" + } + ], + "id": 230, + "name": "Assignment", + "src": "2333:43:2" + } + ], + "id": 231, + "name": "ExpressionStatement", + "src": "2333:43:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "dappPrice", + "referencedDeclaration": 103, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct IexecOracle.Dapp storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 110, + "type": "mapping(address => struct IexecOracle.Dapp storage ref)", + "value": "dappRegistry" + }, + "id": 232, + "name": "Identifier", + "src": "2386:12:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1596, + "type": "msg", + "value": "msg" + }, + "id": 233, + "name": "Identifier", + "src": "2399:3:2" + } + ], + "id": 234, + "name": "MemberAccess", + "src": "2399:10:2" + } + ], + "id": 235, + "name": "IndexAccess", + "src": "2386:24:2" + } + ], + "id": 236, + "name": "MemberAccess", + "src": "2386:34:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 196, + "type": "uint256", + "value": "dappPrice" + }, + "id": 237, + "name": "Identifier", + "src": "2421:9:2" + } + ], + "id": 238, + "name": "Assignment", + "src": "2386:44:2" + } + ], + "id": 239, + "name": "ExpressionStatement", + "src": "2386:44:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "dappName", + "referencedDeclaration": 101, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct IexecOracle.Dapp storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 110, + "type": "mapping(address => struct IexecOracle.Dapp storage ref)", + "value": "dappRegistry" + }, + "id": 240, + "name": "Identifier", + "src": "2440:12:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1596, + "type": "msg", + "value": "msg" + }, + "id": 241, + "name": "Identifier", + "src": "2453:3:2" + } + ], + "id": 242, + "name": "MemberAccess", + "src": "2453:10:2" + } + ], + "id": 243, + "name": "IndexAccess", + "src": "2440:24:2" + } + ], + "id": 244, + "name": "MemberAccess", + "src": "2440:33:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 198, + "type": "string memory", + "value": "dappName" + }, + "id": 245, + "name": "Identifier", + "src": "2474:8:2" + } + ], + "id": 246, + "name": "Assignment", + "src": "2440:42:2" + } + ], + "id": 247, + "name": "ExpressionStatement", + "src": "2440:42:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 74, + "type": "function (address,address,uint256,string memory)", + "value": "Register" + }, + "id": 248, + "name": "Identifier", + "src": "2492:8:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1596, + "type": "msg", + "value": "msg" + }, + "id": 249, + "name": "Identifier", + "src": "2501:3:2" + } + ], + "id": 250, + "name": "MemberAccess", + "src": "2501:10:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "origin", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1606, + "type": "tx", + "value": "tx" + }, + "id": 251, + "name": "Identifier", + "src": "2512:2:2" + } + ], + "id": 252, + "name": "MemberAccess", + "src": "2512:9:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 196, + "type": "uint256", + "value": "dappPrice" + }, + "id": 253, + "name": "Identifier", + "src": "2522:9:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 198, + "type": "string memory", + "value": "dappName" + }, + "id": 254, + "name": "Identifier", + "src": "2532:8:2" + } + ], + "id": 255, + "name": "FunctionCall", + "src": "2492:49:2" + } + ], + "id": 256, + "name": "ExpressionStatement", + "src": "2492:49:2" + }, + { + "attributes": { + "functionReturnParameters": 204 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 257, + "name": "Literal", + "src": "2558:4:2" + } + ], + "id": 258, + "name": "Return", + "src": "2551:11:2" + } + ], + "id": 259, + "name": "Block", + "src": "2224:345:2" + } + ], + "id": 260, + "name": "FunctionDefinition", + "src": "2117:452:2" + }, + { + "attributes": { + "constant": true, + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "getDapp", + "payable": false, + "scope": 696, + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "dapp", + "scope": 286, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 261, + "name": "ElementaryTypeName", + "src": "2592:7:2" + } + ], + "id": 262, + "name": "VariableDeclaration", + "src": "2592:12:2" + } + ], + "id": 263, + "name": "ParameterList", + "src": "2591:14:2" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "dappName", + "scope": 286, + "stateVariable": false, + "storageLocation": "default", + "type": "string memory", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string storage pointer" + }, + "id": 264, + "name": "ElementaryTypeName", + "src": "2631:6:2" + } + ], + "id": 265, + "name": "VariableDeclaration", + "src": "2631:15:2" + }, + { + "attributes": { + "constant": false, + "name": "dappPrice", + "scope": 286, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 266, + "name": "ElementaryTypeName", + "src": "2648:7:2" + } + ], + "id": 267, + "name": "VariableDeclaration", + "src": "2648:17:2" + }, + { + "attributes": { + "constant": false, + "name": "provider", + "scope": 286, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 268, + "name": "ElementaryTypeName", + "src": "2667:7:2" + } + ], + "id": 269, + "name": "VariableDeclaration", + "src": "2667:16:2" + } + ], + "id": 270, + "name": "ParameterList", + "src": "2630:54:2" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 270 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(string storage ref,uint256,address)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "dappName", + "referencedDeclaration": 101, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct IexecOracle.Dapp storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 110, + "type": "mapping(address => struct IexecOracle.Dapp storage ref)", + "value": "dappRegistry" + }, + "id": 271, + "name": "Identifier", + "src": "2712:12:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 262, + "type": "address", + "value": "dapp" + }, + "id": 272, + "name": "Identifier", + "src": "2725:4:2" + } + ], + "id": 273, + "name": "IndexAccess", + "src": "2712:18:2" + } + ], + "id": 274, + "name": "MemberAccess", + "src": "2712:27:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "dappPrice", + "referencedDeclaration": 103, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct IexecOracle.Dapp storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 110, + "type": "mapping(address => struct IexecOracle.Dapp storage ref)", + "value": "dappRegistry" + }, + "id": 275, + "name": "Identifier", + "src": "2749:12:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 262, + "type": "address", + "value": "dapp" + }, + "id": 276, + "name": "Identifier", + "src": "2762:4:2" + } + ], + "id": 277, + "name": "IndexAccess", + "src": "2749:18:2" + } + ], + "id": 278, + "name": "MemberAccess", + "src": "2749:28:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "provider", + "referencedDeclaration": 105, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct IexecOracle.Dapp storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 110, + "type": "mapping(address => struct IexecOracle.Dapp storage ref)", + "value": "dappRegistry" + }, + "id": 279, + "name": "Identifier", + "src": "2787:12:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 262, + "type": "address", + "value": "dapp" + }, + "id": 280, + "name": "Identifier", + "src": "2800:4:2" + } + ], + "id": 281, + "name": "IndexAccess", + "src": "2787:18:2" + } + ], + "id": 282, + "name": "MemberAccess", + "src": "2787:27:2" + } + ], + "id": 283, + "name": "TupleExpression", + "src": "2702:122:2" + } + ], + "id": 284, + "name": "Return", + "src": "2695:129:2" + } + ], + "id": 285, + "name": "Block", + "src": "2685:146:2" + } + ], + "id": 286, + "name": "FunctionDefinition", + "src": "2575:256:2" + }, + { + "attributes": { + "constant": true, + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "getProvider", + "payable": false, + "scope": 696, + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "dapp", + "scope": 299, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 287, + "name": "ElementaryTypeName", + "src": "2858:7:2" + } + ], + "id": 288, + "name": "VariableDeclaration", + "src": "2858:12:2" + } + ], + "id": 289, + "name": "ParameterList", + "src": "2857:14:2" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "provider", + "scope": 299, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 290, + "name": "ElementaryTypeName", + "src": "2897:7:2" + } + ], + "id": 291, + "name": "VariableDeclaration", + "src": "2897:16:2" + } + ], + "id": 292, + "name": "ParameterList", + "src": "2896:18:2" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 292 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "provider", + "referencedDeclaration": 105, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct IexecOracle.Dapp storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 110, + "type": "mapping(address => struct IexecOracle.Dapp storage ref)", + "value": "dappRegistry" + }, + "id": 293, + "name": "Identifier", + "src": "2932:12:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 288, + "type": "address", + "value": "dapp" + }, + "id": 294, + "name": "Identifier", + "src": "2945:4:2" + } + ], + "id": 295, + "name": "IndexAccess", + "src": "2932:18:2" + } + ], + "id": 296, + "name": "MemberAccess", + "src": "2932:27:2" + } + ], + "id": 297, + "name": "Return", + "src": "2925:34:2" + } + ], + "id": 298, + "name": "Block", + "src": "2915:51:2" + } + ], + "id": 299, + "name": "FunctionDefinition", + "src": "2837:129:2" + }, + { + "attributes": { + "constant": true, + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "getDappPrice", + "payable": false, + "scope": 696, + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "dapp", + "scope": 312, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 300, + "name": "ElementaryTypeName", + "src": "2994:7:2" + } + ], + "id": 301, + "name": "VariableDeclaration", + "src": "2994:12:2" + } + ], + "id": 302, + "name": "ParameterList", + "src": "2993:14:2" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "dappPrice", + "scope": 312, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 303, + "name": "ElementaryTypeName", + "src": "3033:7:2" + } + ], + "id": 304, + "name": "VariableDeclaration", + "src": "3033:17:2" + } + ], + "id": 305, + "name": "ParameterList", + "src": "3032:19:2" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 305 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "dappPrice", + "referencedDeclaration": 103, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct IexecOracle.Dapp storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 110, + "type": "mapping(address => struct IexecOracle.Dapp storage ref)", + "value": "dappRegistry" + }, + "id": 306, + "name": "Identifier", + "src": "3069:12:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 301, + "type": "address", + "value": "dapp" + }, + "id": 307, + "name": "Identifier", + "src": "3082:4:2" + } + ], + "id": 308, + "name": "IndexAccess", + "src": "3069:18:2" + } + ], + "id": 309, + "name": "MemberAccess", + "src": "3069:28:2" + } + ], + "id": 310, + "name": "Return", + "src": "3062:35:2" + } + ], + "id": 311, + "name": "Block", + "src": "3052:52:2" + } + ], + "id": 312, + "name": "FunctionDefinition", + "src": "2972:132:2" + }, + { + "attributes": { + "constant": true, + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "getDappName", + "payable": false, + "scope": 696, + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "dapp", + "scope": 325, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 313, + "name": "ElementaryTypeName", + "src": "3131:7:2" + } + ], + "id": 314, + "name": "VariableDeclaration", + "src": "3131:12:2" + } + ], + "id": 315, + "name": "ParameterList", + "src": "3130:14:2" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "dappName", + "scope": 325, + "stateVariable": false, + "storageLocation": "default", + "type": "string memory", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string storage pointer" + }, + "id": 316, + "name": "ElementaryTypeName", + "src": "3170:6:2" + } + ], + "id": 317, + "name": "VariableDeclaration", + "src": "3170:15:2" + } + ], + "id": 318, + "name": "ParameterList", + "src": "3169:17:2" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 318 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "dappName", + "referencedDeclaration": 101, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct IexecOracle.Dapp storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 110, + "type": "mapping(address => struct IexecOracle.Dapp storage ref)", + "value": "dappRegistry" + }, + "id": 319, + "name": "Identifier", + "src": "3204:12:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 314, + "type": "address", + "value": "dapp" + }, + "id": 320, + "name": "Identifier", + "src": "3217:4:2" + } + ], + "id": 321, + "name": "IndexAccess", + "src": "3204:18:2" + } + ], + "id": 322, + "name": "MemberAccess", + "src": "3204:27:2" + } + ], + "id": 323, + "name": "Return", + "src": "3197:34:2" + } + ], + "id": 324, + "name": "Block", + "src": "3187:51:2" + } + ], + "id": 325, + "name": "FunctionDefinition", + "src": "3110:128:2" + }, + { + "attributes": { + "constant": true, + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "getWork", + "payable": false, + "scope": 696, + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "submitTxHash", + "scope": 363, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 326, + "name": "ElementaryTypeName", + "src": "3261:7:2" + } + ], + "id": 327, + "name": "VariableDeclaration", + "src": "3261:20:2" + } + ], + "id": 328, + "name": "ParameterList", + "src": "3260:22:2" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "timestamp", + "scope": 363, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 329, + "name": "ElementaryTypeName", + "src": "3308:7:2" + } + ], + "id": 330, + "name": "VariableDeclaration", + "src": "3308:17:2" + }, + { + "attributes": { + "constant": false, + "name": "status", + "scope": 363, + "stateVariable": false, + "storageLocation": "default", + "type": "enum IexecLib.StatusEnum", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "IexecLib.StatusEnum", + "referencedDeclaration": 31, + "type": "enum IexecLib.StatusEnum" + }, + "id": 331, + "name": "UserDefinedTypeName", + "src": "3327:19:2" + } + ], + "id": 332, + "name": "VariableDeclaration", + "src": "3327:26:2" + }, + { + "attributes": { + "constant": false, + "name": "stdout", + "scope": 363, + "stateVariable": false, + "storageLocation": "default", + "type": "string memory", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string storage pointer" + }, + "id": 333, + "name": "ElementaryTypeName", + "src": "3355:6:2" + } + ], + "id": 334, + "name": "VariableDeclaration", + "src": "3355:13:2" + }, + { + "attributes": { + "constant": false, + "name": "stderr", + "scope": 363, + "stateVariable": false, + "storageLocation": "default", + "type": "string memory", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string storage pointer" + }, + "id": 335, + "name": "ElementaryTypeName", + "src": "3370:6:2" + } + ], + "id": 336, + "name": "VariableDeclaration", + "src": "3370:13:2" + }, + { + "attributes": { + "constant": false, + "name": "uri", + "scope": 363, + "stateVariable": false, + "storageLocation": "default", + "type": "string memory", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string storage pointer" + }, + "id": 337, + "name": "ElementaryTypeName", + "src": "3385:6:2" + } + ], + "id": 338, + "name": "VariableDeclaration", + "src": "3385:10:2" + } + ], + "id": 339, + "name": "ParameterList", + "src": "3307:89:2" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 339 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(uint256,enum IexecLib.StatusEnum,string storage ref,string storage ref,string storage ref)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "timestamp", + "referencedDeclaration": 86, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct IexecOracle.Work storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 99, + "type": "mapping(bytes32 => struct IexecOracle.Work storage ref)", + "value": "workRegistry" + }, + "id": 340, + "name": "Identifier", + "src": "3424:12:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 327, + "type": "bytes32", + "value": "submitTxHash" + }, + "id": 341, + "name": "Identifier", + "src": "3437:12:2" + } + ], + "id": 342, + "name": "IndexAccess", + "src": "3424:26:2" + } + ], + "id": 343, + "name": "MemberAccess", + "src": "3424:36:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "status", + "referencedDeclaration": 88, + "type": "enum IexecLib.StatusEnum" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct IexecOracle.Work storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 99, + "type": "mapping(bytes32 => struct IexecOracle.Work storage ref)", + "value": "workRegistry" + }, + "id": 344, + "name": "Identifier", + "src": "3470:12:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 327, + "type": "bytes32", + "value": "submitTxHash" + }, + "id": 345, + "name": "Identifier", + "src": "3483:12:2" + } + ], + "id": 346, + "name": "IndexAccess", + "src": "3470:26:2" + } + ], + "id": 347, + "name": "MemberAccess", + "src": "3470:33:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "stdout", + "referencedDeclaration": 90, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct IexecOracle.Work storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 99, + "type": "mapping(bytes32 => struct IexecOracle.Work storage ref)", + "value": "workRegistry" + }, + "id": 348, + "name": "Identifier", + "src": "3513:12:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 327, + "type": "bytes32", + "value": "submitTxHash" + }, + "id": 349, + "name": "Identifier", + "src": "3526:12:2" + } + ], + "id": 350, + "name": "IndexAccess", + "src": "3513:26:2" + } + ], + "id": 351, + "name": "MemberAccess", + "src": "3513:33:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "stderr", + "referencedDeclaration": 92, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct IexecOracle.Work storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 99, + "type": "mapping(bytes32 => struct IexecOracle.Work storage ref)", + "value": "workRegistry" + }, + "id": 352, + "name": "Identifier", + "src": "3556:12:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 327, + "type": "bytes32", + "value": "submitTxHash" + }, + "id": 353, + "name": "Identifier", + "src": "3569:12:2" + } + ], + "id": 354, + "name": "IndexAccess", + "src": "3556:26:2" + } + ], + "id": 355, + "name": "MemberAccess", + "src": "3556:33:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "uri", + "referencedDeclaration": 94, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct IexecOracle.Work storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 99, + "type": "mapping(bytes32 => struct IexecOracle.Work storage ref)", + "value": "workRegistry" + }, + "id": 356, + "name": "Identifier", + "src": "3599:12:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 327, + "type": "bytes32", + "value": "submitTxHash" + }, + "id": 357, + "name": "Identifier", + "src": "3612:12:2" + } + ], + "id": 358, + "name": "IndexAccess", + "src": "3599:26:2" + } + ], + "id": 359, + "name": "MemberAccess", + "src": "3599:30:2" + } + ], + "id": 360, + "name": "TupleExpression", + "src": "3414:225:2" + } + ], + "id": 361, + "name": "Return", + "src": "3407:232:2" + } + ], + "id": 362, + "name": "Block", + "src": "3397:249:2" + } + ], + "id": 363, + "name": "FunctionDefinition", + "src": "3244:402:2" + }, + { + "attributes": { + "constant": true, + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "getWorkTimestamp", + "payable": false, + "scope": 696, + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "submitTxHash", + "scope": 376, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 364, + "name": "ElementaryTypeName", + "src": "3678:7:2" + } + ], + "id": 365, + "name": "VariableDeclaration", + "src": "3678:20:2" + } + ], + "id": 366, + "name": "ParameterList", + "src": "3677:22:2" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "timestamp", + "scope": 376, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 367, + "name": "ElementaryTypeName", + "src": "3725:7:2" + } + ], + "id": 368, + "name": "VariableDeclaration", + "src": "3725:17:2" + } + ], + "id": 369, + "name": "ParameterList", + "src": "3724:19:2" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 369 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "timestamp", + "referencedDeclaration": 86, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct IexecOracle.Work storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 99, + "type": "mapping(bytes32 => struct IexecOracle.Work storage ref)", + "value": "workRegistry" + }, + "id": 370, + "name": "Identifier", + "src": "3761:12:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 365, + "type": "bytes32", + "value": "submitTxHash" + }, + "id": 371, + "name": "Identifier", + "src": "3774:12:2" + } + ], + "id": 372, + "name": "IndexAccess", + "src": "3761:26:2" + } + ], + "id": 373, + "name": "MemberAccess", + "src": "3761:36:2" + } + ], + "id": 374, + "name": "Return", + "src": "3754:43:2" + } + ], + "id": 375, + "name": "Block", + "src": "3744:60:2" + } + ], + "id": 376, + "name": "FunctionDefinition", + "src": "3652:152:2" + }, + { + "attributes": { + "constant": true, + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "getWorkStatus", + "payable": false, + "scope": 696, + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "submitTxHash", + "scope": 389, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 377, + "name": "ElementaryTypeName", + "src": "3833:7:2" + } + ], + "id": 378, + "name": "VariableDeclaration", + "src": "3833:20:2" + } + ], + "id": 379, + "name": "ParameterList", + "src": "3832:22:2" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "status", + "scope": 389, + "stateVariable": false, + "storageLocation": "default", + "type": "enum IexecLib.StatusEnum", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "IexecLib.StatusEnum", + "referencedDeclaration": 31, + "type": "enum IexecLib.StatusEnum" + }, + "id": 380, + "name": "UserDefinedTypeName", + "src": "3880:19:2" + } + ], + "id": 381, + "name": "VariableDeclaration", + "src": "3880:26:2" + } + ], + "id": 382, + "name": "ParameterList", + "src": "3879:28:2" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 382 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "status", + "referencedDeclaration": 88, + "type": "enum IexecLib.StatusEnum" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct IexecOracle.Work storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 99, + "type": "mapping(bytes32 => struct IexecOracle.Work storage ref)", + "value": "workRegistry" + }, + "id": 383, + "name": "Identifier", + "src": "3925:12:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 378, + "type": "bytes32", + "value": "submitTxHash" + }, + "id": 384, + "name": "Identifier", + "src": "3938:12:2" + } + ], + "id": 385, + "name": "IndexAccess", + "src": "3925:26:2" + } + ], + "id": 386, + "name": "MemberAccess", + "src": "3925:33:2" + } + ], + "id": 387, + "name": "Return", + "src": "3918:40:2" + } + ], + "id": 388, + "name": "Block", + "src": "3908:57:2" + } + ], + "id": 389, + "name": "FunctionDefinition", + "src": "3810:155:2" + }, + { + "attributes": { + "constant": true, + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "getWorkStdout", + "payable": false, + "scope": 696, + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "submitTxHash", + "scope": 402, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 390, + "name": "ElementaryTypeName", + "src": "3994:7:2" + } + ], + "id": 391, + "name": "VariableDeclaration", + "src": "3994:20:2" + } + ], + "id": 392, + "name": "ParameterList", + "src": "3993:22:2" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "stdout", + "scope": 402, + "stateVariable": false, + "storageLocation": "default", + "type": "string memory", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string storage pointer" + }, + "id": 393, + "name": "ElementaryTypeName", + "src": "4041:6:2" + } + ], + "id": 394, + "name": "VariableDeclaration", + "src": "4041:13:2" + } + ], + "id": 395, + "name": "ParameterList", + "src": "4040:15:2" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 395 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "stdout", + "referencedDeclaration": 90, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct IexecOracle.Work storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 99, + "type": "mapping(bytes32 => struct IexecOracle.Work storage ref)", + "value": "workRegistry" + }, + "id": 396, + "name": "Identifier", + "src": "4073:12:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 391, + "type": "bytes32", + "value": "submitTxHash" + }, + "id": 397, + "name": "Identifier", + "src": "4086:12:2" + } + ], + "id": 398, + "name": "IndexAccess", + "src": "4073:26:2" + } + ], + "id": 399, + "name": "MemberAccess", + "src": "4073:33:2" + } + ], + "id": 400, + "name": "Return", + "src": "4066:40:2" + } + ], + "id": 401, + "name": "Block", + "src": "4056:57:2" + } + ], + "id": 402, + "name": "FunctionDefinition", + "src": "3971:142:2" + }, + { + "attributes": { + "constant": true, + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "getWorkStderr", + "payable": false, + "scope": 696, + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "submitTxHash", + "scope": 415, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 403, + "name": "ElementaryTypeName", + "src": "4142:7:2" + } + ], + "id": 404, + "name": "VariableDeclaration", + "src": "4142:20:2" + } + ], + "id": 405, + "name": "ParameterList", + "src": "4141:22:2" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "stderr", + "scope": 415, + "stateVariable": false, + "storageLocation": "default", + "type": "string memory", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string storage pointer" + }, + "id": 406, + "name": "ElementaryTypeName", + "src": "4189:6:2" + } + ], + "id": 407, + "name": "VariableDeclaration", + "src": "4189:13:2" + } + ], + "id": 408, + "name": "ParameterList", + "src": "4188:15:2" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 408 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "stderr", + "referencedDeclaration": 92, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct IexecOracle.Work storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 99, + "type": "mapping(bytes32 => struct IexecOracle.Work storage ref)", + "value": "workRegistry" + }, + "id": 409, + "name": "Identifier", + "src": "4221:12:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 404, + "type": "bytes32", + "value": "submitTxHash" + }, + "id": 410, + "name": "Identifier", + "src": "4234:12:2" + } + ], + "id": 411, + "name": "IndexAccess", + "src": "4221:26:2" + } + ], + "id": 412, + "name": "MemberAccess", + "src": "4221:33:2" + } + ], + "id": 413, + "name": "Return", + "src": "4214:40:2" + } + ], + "id": 414, + "name": "Block", + "src": "4204:57:2" + } + ], + "id": 415, + "name": "FunctionDefinition", + "src": "4119:142:2" + }, + { + "attributes": { + "constant": true, + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "getWorkUri", + "payable": false, + "scope": 696, + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "submitTxHash", + "scope": 428, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 416, + "name": "ElementaryTypeName", + "src": "4287:7:2" + } + ], + "id": 417, + "name": "VariableDeclaration", + "src": "4287:20:2" + } + ], + "id": 418, + "name": "ParameterList", + "src": "4286:22:2" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "uri", + "scope": 428, + "stateVariable": false, + "storageLocation": "default", + "type": "string memory", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string storage pointer" + }, + "id": 419, + "name": "ElementaryTypeName", + "src": "4334:6:2" + } + ], + "id": 420, + "name": "VariableDeclaration", + "src": "4334:10:2" + } + ], + "id": 421, + "name": "ParameterList", + "src": "4333:12:2" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 421 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "uri", + "referencedDeclaration": 94, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct IexecOracle.Work storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 99, + "type": "mapping(bytes32 => struct IexecOracle.Work storage ref)", + "value": "workRegistry" + }, + "id": 422, + "name": "Identifier", + "src": "4363:12:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 417, + "type": "bytes32", + "value": "submitTxHash" + }, + "id": 423, + "name": "Identifier", + "src": "4376:12:2" + } + ], + "id": 424, + "name": "IndexAccess", + "src": "4363:26:2" + } + ], + "id": 425, + "name": "MemberAccess", + "src": "4363:30:2" + } + ], + "id": 426, + "name": "Return", + "src": "4356:37:2" + } + ], + "id": 427, + "name": "Block", + "src": "4346:54:2" + } + ], + "id": 428, + "name": "FunctionDefinition", + "src": "4267:133:2" + }, + { + "attributes": { + "constant": false, + "implemented": true, + "isConstructor": false, + "name": "submit", + "payable": true, + "scope": 696, + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "param", + "scope": 484, + "stateVariable": false, + "storageLocation": "default", + "type": "string memory", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string storage pointer" + }, + "id": 429, + "name": "ElementaryTypeName", + "src": "4422:6:2" + } + ], + "id": 430, + "name": "VariableDeclaration", + "src": "4422:12:2" + } + ], + "id": 431, + "name": "ParameterList", + "src": "4421:14:2" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 484, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 438, + "name": "ElementaryTypeName", + "src": "4511:4:2" + } + ], + "id": 439, + "name": "VariableDeclaration", + "src": "4511:4:2" + } + ], + "id": 440, + "name": "ParameterList", + "src": "4510:6:2" + }, + { + "attributes": { + "arguments": [ + null + ] + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 133, + "type": "modifier ()", + "value": "onlyRegistered" + }, + "id": 432, + "name": "Identifier", + "src": "4436:14:2" + } + ], + "id": 433, + "name": "ModifierInvocation", + "src": "4436:14:2" + }, + { + "attributes": { + "arguments": [ + null + ] + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 165, + "type": "modifier ()", + "value": "checkCallbackPrice" + }, + "id": 434, + "name": "Identifier", + "src": "4452:18:2" + } + ], + "id": 435, + "name": "ModifierInvocation", + "src": "4452:18:2" + }, + { + "attributes": { + "arguments": [ + null + ] + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 119, + "type": "modifier ()", + "value": "stopInEmergency" + }, + "id": 436, + "name": "Identifier", + "src": "4471:15:2" + } + ], + "id": 437, + "name": "ModifierInvocation", + "src": "4471:15:2" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 442 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "dappPrice", + "scope": 484, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 441, + "name": "ElementaryTypeName", + "src": "4526:7:2" + } + ], + "id": 442, + "name": "VariableDeclaration", + "src": "4526:17:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "dappPrice", + "referencedDeclaration": 103, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct IexecOracle.Dapp storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 110, + "type": "mapping(address => struct IexecOracle.Dapp storage ref)", + "value": "dappRegistry" + }, + "id": 443, + "name": "Identifier", + "src": "4544:12:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1596, + "type": "msg", + "value": "msg" + }, + "id": 444, + "name": "Identifier", + "src": "4557:3:2" + } + ], + "id": 445, + "name": "MemberAccess", + "src": "4557:10:2" + } + ], + "id": 446, + "name": "IndexAccess", + "src": "4544:24:2" + } + ], + "id": 447, + "name": "MemberAccess", + "src": "4544:34:2" + } + ], + "id": 448, + "name": "VariableDeclarationStatement", + "src": "4526:52:2" + }, + { + "attributes": { + "falseBody": null + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 442, + "type": "uint256", + "value": "dappPrice" + }, + "id": 449, + "name": "Identifier", + "src": "4591:9:2" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 450, + "name": "Literal", + "src": "4603:1:2" + } + ], + "id": 451, + "name": "BinaryOperation", + "src": "4591:13:2" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1599, + "type": "function (bool) pure", + "value": "require" + }, + "id": 452, + "name": "Identifier", + "src": "4683:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "rlcDeposit", + "referencedDeclaration": 903, + "type": "function (uint256) external returns (bool)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 82, + "type": "contract IexecOracleEscrow", + "value": "iexecOracleEscrow" + }, + "id": 453, + "name": "Identifier", + "src": "4691:17:2" + } + ], + "id": 454, + "name": "MemberAccess", + "src": "4691:28:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 442, + "type": "uint256", + "value": "dappPrice" + }, + "id": 455, + "name": "Identifier", + "src": "4720:9:2" + } + ], + "id": 456, + "name": "FunctionCall", + "src": "4691:39:2" + } + ], + "id": 457, + "name": "FunctionCall", + "src": "4683:48:2" + } + ], + "id": 458, + "name": "ExpressionStatement", + "src": "4683:48:2" + } + ], + "id": 459, + "name": "Block", + "src": "4606:136:2" + } + ], + "id": 460, + "name": "IfStatement", + "src": "4588:154:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "transfer", + "referencedDeclaration": null, + "type": "function (uint256)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1008, + "type": "address", + "value": "owner" + }, + "id": 461, + "name": "Identifier", + "src": "4751:5:2" + } + ], + "id": 463, + "name": "MemberAccess", + "src": "4751:14:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "value", + "referencedDeclaration": null, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1596, + "type": "msg", + "value": "msg" + }, + "id": 464, + "name": "Identifier", + "src": "4766:3:2" + } + ], + "id": 465, + "name": "MemberAccess", + "src": "4766:9:2" + } + ], + "id": 466, + "name": "FunctionCall", + "src": "4751:25:2" + } + ], + "id": 467, + "name": "ExpressionStatement", + "src": "4751:25:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 54, + "type": "function (address,address,address,string memory)", + "value": "Submit" + }, + "id": 468, + "name": "Identifier", + "src": "4786:6:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "origin", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1606, + "type": "tx", + "value": "tx" + }, + "id": 469, + "name": "Identifier", + "src": "4793:2:2" + } + ], + "id": 470, + "name": "MemberAccess", + "src": "4793:9:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1596, + "type": "msg", + "value": "msg" + }, + "id": 471, + "name": "Identifier", + "src": "4804:3:2" + } + ], + "id": 472, + "name": "MemberAccess", + "src": "4804:10:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "provider", + "referencedDeclaration": 105, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct IexecOracle.Dapp storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 110, + "type": "mapping(address => struct IexecOracle.Dapp storage ref)", + "value": "dappRegistry" + }, + "id": 473, + "name": "Identifier", + "src": "4815:12:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1596, + "type": "msg", + "value": "msg" + }, + "id": 474, + "name": "Identifier", + "src": "4828:3:2" + } + ], + "id": 475, + "name": "MemberAccess", + "src": "4828:10:2" + } + ], + "id": 476, + "name": "IndexAccess", + "src": "4815:24:2" + } + ], + "id": 477, + "name": "MemberAccess", + "src": "4815:33:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 430, + "type": "string memory", + "value": "param" + }, + "id": 478, + "name": "Identifier", + "src": "4850:5:2" + } + ], + "id": 479, + "name": "FunctionCall", + "src": "4786:70:2" + } + ], + "id": 480, + "name": "ExpressionStatement", + "src": "4786:70:2" + }, + { + "attributes": { + "functionReturnParameters": 440 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 481, + "name": "Literal", + "src": "4873:4:2" + } + ], + "id": 482, + "name": "Return", + "src": "4866:11:2" + } + ], + "id": 483, + "name": "Block", + "src": "4516:368:2" + } + ], + "id": 484, + "name": "FunctionDefinition", + "src": "4406:478:2" + }, + { + "attributes": { + "constant": false, + "implemented": true, + "isConstructor": false, + "name": "submitCallback", + "payable": false, + "scope": 696, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "submitTxHash", + "scope": 625, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 485, + "name": "ElementaryTypeName", + "src": "4914:7:2" + } + ], + "id": 486, + "name": "VariableDeclaration", + "src": "4914:20:2" + }, + { + "attributes": { + "constant": false, + "name": "user", + "scope": 625, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 487, + "name": "ElementaryTypeName", + "src": "4936:7:2" + } + ], + "id": 488, + "name": "VariableDeclaration", + "src": "4936:12:2" + }, + { + "attributes": { + "constant": false, + "name": "dapp", + "scope": 625, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 489, + "name": "ElementaryTypeName", + "src": "4950:7:2" + } + ], + "id": 490, + "name": "VariableDeclaration", + "src": "4950:12:2" + }, + { + "attributes": { + "constant": false, + "name": "status", + "scope": 625, + "stateVariable": false, + "storageLocation": "default", + "type": "enum IexecLib.StatusEnum", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "IexecLib.StatusEnum", + "referencedDeclaration": 31, + "type": "enum IexecLib.StatusEnum" + }, + "id": 491, + "name": "UserDefinedTypeName", + "src": "4964:19:2" + } + ], + "id": 492, + "name": "VariableDeclaration", + "src": "4964:26:2" + }, + { + "attributes": { + "constant": false, + "name": "stdout", + "scope": 625, + "stateVariable": false, + "storageLocation": "default", + "type": "string memory", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string storage pointer" + }, + "id": 493, + "name": "ElementaryTypeName", + "src": "4992:6:2" + } + ], + "id": 494, + "name": "VariableDeclaration", + "src": "4992:13:2" + }, + { + "attributes": { + "constant": false, + "name": "stderr", + "scope": 625, + "stateVariable": false, + "storageLocation": "default", + "type": "string memory", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string storage pointer" + }, + "id": 495, + "name": "ElementaryTypeName", + "src": "5007:6:2" + } + ], + "id": 496, + "name": "VariableDeclaration", + "src": "5007:13:2" + }, + { + "attributes": { + "constant": false, + "name": "uri", + "scope": 625, + "stateVariable": false, + "storageLocation": "default", + "type": "string memory", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string storage pointer" + }, + "id": 497, + "name": "ElementaryTypeName", + "src": "5022:6:2" + } + ], + "id": 498, + "name": "VariableDeclaration", + "src": "5022:10:2" + } + ], + "id": 499, + "name": "ParameterList", + "src": "4913:120:2" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 502, + "name": "ParameterList", + "src": "5057:0:2" + }, + { + "attributes": { + "arguments": [ + null + ] + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 119, + "type": "modifier ()", + "value": "stopInEmergency" + }, + "id": 500, + "name": "Identifier", + "src": "5034:15:2" + } + ], + "id": 501, + "name": "ModifierInvocation", + "src": "5034:15:2" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1587, + "type": "function (bool) pure", + "value": "assert" + }, + "id": 503, + "name": "Identifier", + "src": "5067:6:2" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1596, + "type": "msg", + "value": "msg" + }, + "id": 504, + "name": "Identifier", + "src": "5074:3:2" + } + ], + "id": 505, + "name": "MemberAccess", + "src": "5074:10:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1008, + "type": "address", + "value": "owner" + }, + "id": 506, + "name": "Identifier", + "src": "5088:5:2" + } + ], + "id": 507, + "name": "BinaryOperation", + "src": "5074:19:2" + } + ], + "id": 508, + "name": "FunctionCall", + "src": "5067:27:2" + } + ], + "id": 509, + "name": "ExpressionStatement", + "src": "5067:27:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1599, + "type": "function (bool) pure", + "value": "require" + }, + "id": 510, + "name": "Identifier", + "src": "5145:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_StatusEnum_$31", + "typeString": "enum IexecLib.StatusEnum" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 492, + "type": "enum IexecLib.StatusEnum", + "value": "status" + }, + "id": 511, + "name": "Identifier", + "src": "5153:6:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "UNSET", + "referencedDeclaration": null, + "type": "enum IexecLib.StatusEnum" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "StatusEnum", + "referencedDeclaration": 31, + "type": "type(enum IexecLib.StatusEnum)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 32, + "type": "type(library IexecLib)", + "value": "IexecLib" + }, + "id": 512, + "name": "Identifier", + "src": "5163:8:2" + } + ], + "id": 513, + "name": "MemberAccess", + "src": "5163:19:2" + } + ], + "id": 514, + "name": "MemberAccess", + "src": "5163:25:2" + } + ], + "id": 515, + "name": "BinaryOperation", + "src": "5153:35:2" + } + ], + "id": 516, + "name": "FunctionCall", + "src": "5145:44:2" + } + ], + "id": 517, + "name": "ExpressionStatement", + "src": "5145:44:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1599, + "type": "function (bool) pure", + "value": "require" + }, + "id": 518, + "name": "Identifier", + "src": "5285:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_StatusEnum_$31", + "typeString": "enum IexecLib.StatusEnum" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "status", + "referencedDeclaration": 88, + "type": "enum IexecLib.StatusEnum" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct IexecOracle.Work storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 99, + "type": "mapping(bytes32 => struct IexecOracle.Work storage ref)", + "value": "workRegistry" + }, + "id": 519, + "name": "Identifier", + "src": "5293:12:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 486, + "type": "bytes32", + "value": "submitTxHash" + }, + "id": 520, + "name": "Identifier", + "src": "5306:12:2" + } + ], + "id": 521, + "name": "IndexAccess", + "src": "5293:26:2" + } + ], + "id": 522, + "name": "MemberAccess", + "src": "5293:33:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "UNSET", + "referencedDeclaration": null, + "type": "enum IexecLib.StatusEnum" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "StatusEnum", + "referencedDeclaration": 31, + "type": "type(enum IexecLib.StatusEnum)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 32, + "type": "type(library IexecLib)", + "value": "IexecLib" + }, + "id": 523, + "name": "Identifier", + "src": "5330:8:2" + } + ], + "id": 524, + "name": "MemberAccess", + "src": "5330:19:2" + } + ], + "id": 525, + "name": "MemberAccess", + "src": "5330:25:2" + } + ], + "id": 526, + "name": "BinaryOperation", + "src": "5293:62:2" + } + ], + "id": 527, + "name": "FunctionCall", + "src": "5285:71:2" + } + ], + "id": 528, + "name": "ExpressionStatement", + "src": "5285:71:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "timestamp", + "referencedDeclaration": 86, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct IexecOracle.Work storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 99, + "type": "mapping(bytes32 => struct IexecOracle.Work storage ref)", + "value": "workRegistry" + }, + "id": 529, + "name": "Identifier", + "src": "5366:12:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 486, + "type": "bytes32", + "value": "submitTxHash" + }, + "id": 530, + "name": "Identifier", + "src": "5379:12:2" + } + ], + "id": 531, + "name": "IndexAccess", + "src": "5366:26:2" + } + ], + "id": 532, + "name": "MemberAccess", + "src": "5366:36:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1598, + "type": "uint256", + "value": "now" + }, + "id": 533, + "name": "Identifier", + "src": "5403:3:2" + } + ], + "id": 534, + "name": "Assignment", + "src": "5366:40:2" + } + ], + "id": 535, + "name": "ExpressionStatement", + "src": "5366:40:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "enum IexecLib.StatusEnum" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "status", + "referencedDeclaration": 88, + "type": "enum IexecLib.StatusEnum" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct IexecOracle.Work storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 99, + "type": "mapping(bytes32 => struct IexecOracle.Work storage ref)", + "value": "workRegistry" + }, + "id": 536, + "name": "Identifier", + "src": "5416:12:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 486, + "type": "bytes32", + "value": "submitTxHash" + }, + "id": 537, + "name": "Identifier", + "src": "5429:12:2" + } + ], + "id": 538, + "name": "IndexAccess", + "src": "5416:26:2" + } + ], + "id": 539, + "name": "MemberAccess", + "src": "5416:33:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 492, + "type": "enum IexecLib.StatusEnum", + "value": "status" + }, + "id": 540, + "name": "Identifier", + "src": "5452:6:2" + } + ], + "id": 541, + "name": "Assignment", + "src": "5416:42:2" + } + ], + "id": 542, + "name": "ExpressionStatement", + "src": "5416:42:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "stdout", + "referencedDeclaration": 90, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct IexecOracle.Work storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 99, + "type": "mapping(bytes32 => struct IexecOracle.Work storage ref)", + "value": "workRegistry" + }, + "id": 543, + "name": "Identifier", + "src": "5468:12:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 486, + "type": "bytes32", + "value": "submitTxHash" + }, + "id": 544, + "name": "Identifier", + "src": "5481:12:2" + } + ], + "id": 545, + "name": "IndexAccess", + "src": "5468:26:2" + } + ], + "id": 546, + "name": "MemberAccess", + "src": "5468:33:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 494, + "type": "string memory", + "value": "stdout" + }, + "id": 547, + "name": "Identifier", + "src": "5504:6:2" + } + ], + "id": 548, + "name": "Assignment", + "src": "5468:42:2" + } + ], + "id": 549, + "name": "ExpressionStatement", + "src": "5468:42:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "stderr", + "referencedDeclaration": 92, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct IexecOracle.Work storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 99, + "type": "mapping(bytes32 => struct IexecOracle.Work storage ref)", + "value": "workRegistry" + }, + "id": 550, + "name": "Identifier", + "src": "5520:12:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 486, + "type": "bytes32", + "value": "submitTxHash" + }, + "id": 551, + "name": "Identifier", + "src": "5533:12:2" + } + ], + "id": 552, + "name": "IndexAccess", + "src": "5520:26:2" + } + ], + "id": 553, + "name": "MemberAccess", + "src": "5520:33:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 496, + "type": "string memory", + "value": "stderr" + }, + "id": 554, + "name": "Identifier", + "src": "5556:6:2" + } + ], + "id": 555, + "name": "Assignment", + "src": "5520:42:2" + } + ], + "id": 556, + "name": "ExpressionStatement", + "src": "5520:42:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "uri", + "referencedDeclaration": 94, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct IexecOracle.Work storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 99, + "type": "mapping(bytes32 => struct IexecOracle.Work storage ref)", + "value": "workRegistry" + }, + "id": 557, + "name": "Identifier", + "src": "5572:12:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 486, + "type": "bytes32", + "value": "submitTxHash" + }, + "id": 558, + "name": "Identifier", + "src": "5585:12:2" + } + ], + "id": 559, + "name": "IndexAccess", + "src": "5572:26:2" + } + ], + "id": 560, + "name": "MemberAccess", + "src": "5572:30:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 498, + "type": "string memory", + "value": "uri" + }, + "id": 561, + "name": "Identifier", + "src": "5605:3:2" + } + ], + "id": 562, + "name": "Assignment", + "src": "5572:36:2" + } + ], + "id": 563, + "name": "ExpressionStatement", + "src": "5572:36:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 64, + "type": "function (bytes32,address,string memory,string memory)", + "value": "SubmitCallback" + }, + "id": 564, + "name": "Identifier", + "src": "5618:14:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 486, + "type": "bytes32", + "value": "submitTxHash" + }, + "id": 565, + "name": "Identifier", + "src": "5633:12:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 488, + "type": "address", + "value": "user" + }, + "id": 566, + "name": "Identifier", + "src": "5646:4:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 494, + "type": "string memory", + "value": "stdout" + }, + "id": 567, + "name": "Identifier", + "src": "5651:6:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 498, + "type": "string memory", + "value": "uri" + }, + "id": 568, + "name": "Identifier", + "src": "5658:3:2" + } + ], + "id": 569, + "name": "FunctionCall", + "src": "5618:44:2" + } + ], + "id": 570, + "name": "ExpressionStatement", + "src": "5618:44:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 672, + "type": "function (bytes32,address,address,string memory,string memory)", + "value": "iexecSubmitCallback" + }, + "id": 571, + "name": "Identifier", + "src": "5672:19:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 486, + "type": "bytes32", + "value": "submitTxHash" + }, + "id": 572, + "name": "Identifier", + "src": "5692:12:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 490, + "type": "address", + "value": "dapp" + }, + "id": 573, + "name": "Identifier", + "src": "5705:4:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 488, + "type": "address", + "value": "user" + }, + "id": 574, + "name": "Identifier", + "src": "5710:4:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 494, + "type": "string memory", + "value": "stdout" + }, + "id": 575, + "name": "Identifier", + "src": "5715:6:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 498, + "type": "string memory", + "value": "uri" + }, + "id": 576, + "name": "Identifier", + "src": "5722:3:2" + } + ], + "id": 577, + "name": "FunctionCall", + "src": "5672:54:2" + } + ], + "id": 578, + "name": "ExpressionStatement", + "src": "5672:54:2" + }, + { + "attributes": { + "assignments": [ + 580 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "dappPrice", + "scope": 625, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 579, + "name": "ElementaryTypeName", + "src": "5736:7:2" + } + ], + "id": 580, + "name": "VariableDeclaration", + "src": "5736:17:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "dappPrice", + "referencedDeclaration": 103, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct IexecOracle.Dapp storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 110, + "type": "mapping(address => struct IexecOracle.Dapp storage ref)", + "value": "dappRegistry" + }, + "id": 581, + "name": "Identifier", + "src": "5754:12:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 490, + "type": "address", + "value": "dapp" + }, + "id": 582, + "name": "Identifier", + "src": "5767:4:2" + } + ], + "id": 583, + "name": "IndexAccess", + "src": "5754:18:2" + } + ], + "id": 584, + "name": "MemberAccess", + "src": "5754:28:2" + } + ], + "id": 585, + "name": "VariableDeclarationStatement", + "src": "5736:46:2" + }, + { + "attributes": { + "falseBody": null + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 580, + "type": "uint256", + "value": "dappPrice" + }, + "id": 586, + "name": "Identifier", + "src": "5795:9:2" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 587, + "name": "Literal", + "src": "5807:1:2" + } + ], + "id": 588, + "name": "BinaryOperation", + "src": "5795:13:2" + }, + { + "children": [ + { + "attributes": { + "falseBody": null + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_StatusEnum_$31", + "typeString": "enum IexecLib.StatusEnum" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 492, + "type": "enum IexecLib.StatusEnum", + "value": "status" + }, + "id": 589, + "name": "Identifier", + "src": "5827:6:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "COMPLETED", + "referencedDeclaration": null, + "type": "enum IexecLib.StatusEnum" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "StatusEnum", + "referencedDeclaration": 31, + "type": "type(enum IexecLib.StatusEnum)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 32, + "type": "type(library IexecLib)", + "value": "IexecLib" + }, + "id": 590, + "name": "Identifier", + "src": "5837:8:2" + } + ], + "id": 591, + "name": "MemberAccess", + "src": "5837:19:2" + } + ], + "id": 592, + "name": "MemberAccess", + "src": "5837:29:2" + } + ], + "id": 593, + "name": "BinaryOperation", + "src": "5827:39:2" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1599, + "type": "function (bool) pure", + "value": "require" + }, + "id": 594, + "name": "Identifier", + "src": "5885:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "rlcPayment", + "referencedDeclaration": 925, + "type": "function (address,uint256) external returns (bool)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 82, + "type": "contract IexecOracleEscrow", + "value": "iexecOracleEscrow" + }, + "id": 595, + "name": "Identifier", + "src": "5893:17:2" + } + ], + "id": 596, + "name": "MemberAccess", + "src": "5893:28:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "provider", + "referencedDeclaration": 105, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct IexecOracle.Dapp storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 110, + "type": "mapping(address => struct IexecOracle.Dapp storage ref)", + "value": "dappRegistry" + }, + "id": 597, + "name": "Identifier", + "src": "5922:12:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 490, + "type": "address", + "value": "dapp" + }, + "id": 598, + "name": "Identifier", + "src": "5935:4:2" + } + ], + "id": 599, + "name": "IndexAccess", + "src": "5922:18:2" + } + ], + "id": 600, + "name": "MemberAccess", + "src": "5922:27:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 580, + "type": "uint256", + "value": "dappPrice" + }, + "id": 601, + "name": "Identifier", + "src": "5950:9:2" + } + ], + "id": 602, + "name": "FunctionCall", + "src": "5893:67:2" + } + ], + "id": 603, + "name": "FunctionCall", + "src": "5885:76:2" + } + ], + "id": 604, + "name": "ExpressionStatement", + "src": "5885:76:2" + } + ], + "id": 605, + "name": "Block", + "src": "5867:109:2" + } + ], + "id": 606, + "name": "IfStatement", + "src": "5824:152:2" + }, + { + "attributes": { + "falseBody": null + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_StatusEnum_$31", + "typeString": "enum IexecLib.StatusEnum" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 492, + "type": "enum IexecLib.StatusEnum", + "value": "status" + }, + "id": 607, + "name": "Identifier", + "src": "5992:6:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "ERROR", + "referencedDeclaration": null, + "type": "enum IexecLib.StatusEnum" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "StatusEnum", + "referencedDeclaration": 31, + "type": "type(enum IexecLib.StatusEnum)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 32, + "type": "type(library IexecLib)", + "value": "IexecLib" + }, + "id": 608, + "name": "Identifier", + "src": "6002:8:2" + } + ], + "id": 609, + "name": "MemberAccess", + "src": "6002:19:2" + } + ], + "id": 610, + "name": "MemberAccess", + "src": "6002:25:2" + } + ], + "id": 611, + "name": "BinaryOperation", + "src": "5992:35:2" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1599, + "type": "function (bool) pure", + "value": "require" + }, + "id": 612, + "name": "Identifier", + "src": "6046:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "rlcPayment", + "referencedDeclaration": 925, + "type": "function (address,uint256) external returns (bool)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 82, + "type": "contract IexecOracleEscrow", + "value": "iexecOracleEscrow" + }, + "id": 613, + "name": "Identifier", + "src": "6054:17:2" + } + ], + "id": 614, + "name": "MemberAccess", + "src": "6054:28:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 488, + "type": "address", + "value": "user" + }, + "id": 615, + "name": "Identifier", + "src": "6083:4:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 580, + "type": "uint256", + "value": "dappPrice" + }, + "id": 616, + "name": "Identifier", + "src": "6088:9:2" + } + ], + "id": 617, + "name": "FunctionCall", + "src": "6054:44:2" + } + ], + "id": 618, + "name": "FunctionCall", + "src": "6046:53:2" + } + ], + "id": 619, + "name": "ExpressionStatement", + "src": "6046:53:2" + } + ], + "id": 620, + "name": "Block", + "src": "6028:86:2" + } + ], + "id": 621, + "name": "IfStatement", + "src": "5989:125:2" + } + ], + "id": 622, + "name": "Block", + "src": "5810:314:2" + } + ], + "id": 623, + "name": "IfStatement", + "src": "5792:332:2" + } + ], + "id": 624, + "name": "Block", + "src": "5057:1073:2" + } + ], + "id": 625, + "name": "FunctionDefinition", + "src": "4890:1240:2" + }, + { + "attributes": { + "constant": false, + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "changeCallbackPrice", + "payable": false, + "scope": 696, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "_callbackPrice", + "scope": 642, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 626, + "name": "ElementaryTypeName", + "src": "6165:7:2" + } + ], + "id": 627, + "name": "VariableDeclaration", + "src": "6165:22:2" + } + ], + "id": 628, + "name": "ParameterList", + "src": "6164:24:2" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 629, + "name": "ParameterList", + "src": "6196:0:2" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1587, + "type": "function (bool) pure", + "value": "assert" + }, + "id": 630, + "name": "Identifier", + "src": "6206:6:2" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1596, + "type": "msg", + "value": "msg" + }, + "id": 631, + "name": "Identifier", + "src": "6213:3:2" + } + ], + "id": 632, + "name": "MemberAccess", + "src": "6213:10:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1008, + "type": "address", + "value": "owner" + }, + "id": 633, + "name": "Identifier", + "src": "6227:5:2" + } + ], + "id": 634, + "name": "BinaryOperation", + "src": "6213:19:2" + } + ], + "id": 635, + "name": "FunctionCall", + "src": "6206:27:2" + } + ], + "id": 636, + "name": "ExpressionStatement", + "src": "6206:27:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 84, + "type": "uint256", + "value": "callbackPrice" + }, + "id": 637, + "name": "Identifier", + "src": "6243:13:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 627, + "type": "uint256", + "value": "_callbackPrice" + }, + "id": 638, + "name": "Identifier", + "src": "6257:14:2" + } + ], + "id": 639, + "name": "Assignment", + "src": "6243:28:2" + } + ], + "id": 640, + "name": "ExpressionStatement", + "src": "6243:28:2" + } + ], + "id": 641, + "name": "Block", + "src": "6196:82:2" + } + ], + "id": 642, + "name": "FunctionDefinition", + "src": "6136:142:2" + }, + { + "attributes": { + "constant": false, + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "iexecSubmitCallback", + "payable": false, + "scope": 696, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "submitTxHash", + "scope": 672, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 643, + "name": "ElementaryTypeName", + "src": "6313:7:2" + } + ], + "id": 644, + "name": "VariableDeclaration", + "src": "6313:20:2" + }, + { + "attributes": { + "constant": false, + "name": "dapp", + "scope": 672, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 645, + "name": "ElementaryTypeName", + "src": "6335:7:2" + } + ], + "id": 646, + "name": "VariableDeclaration", + "src": "6335:12:2" + }, + { + "attributes": { + "constant": false, + "name": "user", + "scope": 672, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 647, + "name": "ElementaryTypeName", + "src": "6349:7:2" + } + ], + "id": 648, + "name": "VariableDeclaration", + "src": "6349:12:2" + }, + { + "attributes": { + "constant": false, + "name": "stdout", + "scope": 672, + "stateVariable": false, + "storageLocation": "default", + "type": "string memory", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string storage pointer" + }, + "id": 649, + "name": "ElementaryTypeName", + "src": "6363:6:2" + } + ], + "id": 650, + "name": "VariableDeclaration", + "src": "6363:13:2" + }, + { + "attributes": { + "constant": false, + "name": "uri", + "scope": 672, + "stateVariable": false, + "storageLocation": "default", + "type": "string memory", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string storage pointer" + }, + "id": 651, + "name": "ElementaryTypeName", + "src": "6378:6:2" + } + ], + "id": 652, + "name": "VariableDeclaration", + "src": "6378:10:2" + } + ], + "id": 653, + "name": "ParameterList", + "src": "6312:77:2" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 654, + "name": "ParameterList", + "src": "6399:0:2" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 656 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "iexecOracleAPI", + "scope": 672, + "stateVariable": false, + "storageLocation": "default", + "type": "contract IexecOracleAPI", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "IexecOracleAPI", + "referencedDeclaration": 794, + "type": "contract IexecOracleAPI" + }, + "id": 655, + "name": "UserDefinedTypeName", + "src": "6409:14:2" + } + ], + "id": 656, + "name": "VariableDeclaration", + "src": "6409:29:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "contract IexecOracleAPI", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 794, + "type": "type(contract IexecOracleAPI)", + "value": "IexecOracleAPI" + }, + "id": 657, + "name": "Identifier", + "src": "6441:14:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 646, + "type": "address", + "value": "dapp" + }, + "id": 658, + "name": "Identifier", + "src": "6456:4:2" + } + ], + "id": 659, + "name": "FunctionCall", + "src": "6441:20:2" + } + ], + "id": 660, + "name": "VariableDeclarationStatement", + "src": "6409:52:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1599, + "type": "function (bool) pure", + "value": "require" + }, + "id": 661, + "name": "Identifier", + "src": "6471:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "iexecSubmitCallback", + "referencedDeclaration": 793, + "type": "function (bytes32,address,string memory,string memory) external returns (bool)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 656, + "type": "contract IexecOracleAPI", + "value": "iexecOracleAPI" + }, + "id": 662, + "name": "Identifier", + "src": "6479:14:2" + } + ], + "id": 663, + "name": "MemberAccess", + "src": "6479:34:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 644, + "type": "bytes32", + "value": "submitTxHash" + }, + "id": 664, + "name": "Identifier", + "src": "6514:12:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 648, + "type": "address", + "value": "user" + }, + "id": 665, + "name": "Identifier", + "src": "6527:4:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 650, + "type": "string memory", + "value": "stdout" + }, + "id": 666, + "name": "Identifier", + "src": "6532:6:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 652, + "type": "string memory", + "value": "uri" + }, + "id": 667, + "name": "Identifier", + "src": "6539:3:2" + } + ], + "id": 668, + "name": "FunctionCall", + "src": "6479:64:2" + } + ], + "id": 669, + "name": "FunctionCall", + "src": "6471:73:2" + } + ], + "id": 670, + "name": "ExpressionStatement", + "src": "6471:73:2" + } + ], + "id": 671, + "name": "Block", + "src": "6399:152:2" + } + ], + "id": 672, + "name": "FunctionDefinition", + "src": "6284:267:2" + }, + { + "attributes": { + "constant": false, + "implemented": true, + "isConstructor": false, + "name": "emergencyERC20Drain", + "payable": false, + "scope": 696, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "rlcTokenAddress", + "scope": 695, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 673, + "name": "ElementaryTypeName", + "src": "6670:7:2" + } + ], + "id": 674, + "name": "VariableDeclaration", + "src": "6670:23:2" + }, + { + "attributes": { + "constant": false, + "name": "amount", + "scope": 695, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 675, + "name": "ElementaryTypeName", + "src": "6695:4:2" + } + ], + "id": 676, + "name": "VariableDeclaration", + "src": "6695:11:2" + } + ], + "id": 677, + "name": "ParameterList", + "src": "6669:38:2" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 680, + "name": "ParameterList", + "src": "6725:0:2" + }, + { + "attributes": { + "arguments": [ + null + ] + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1026, + "type": "modifier ()", + "value": "onlyOwner" + }, + "id": 678, + "name": "Identifier", + "src": "6715:9:2" + } + ], + "id": 679, + "name": "ModifierInvocation", + "src": "6715:9:2" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 682 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "rlcToken", + "scope": 695, + "stateVariable": false, + "storageLocation": "default", + "type": "contract RLC", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "RLC", + "referencedDeclaration": 1374, + "type": "contract RLC" + }, + "id": 681, + "name": "UserDefinedTypeName", + "src": "6735:3:2" + } + ], + "id": 682, + "name": "VariableDeclaration", + "src": "6735:12:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "contract RLC", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1374, + "type": "type(contract RLC)", + "value": "RLC" + }, + "id": 683, + "name": "Identifier", + "src": "6750:3:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 674, + "type": "address", + "value": "rlcTokenAddress" + }, + "id": 684, + "name": "Identifier", + "src": "6754:15:2" + } + ], + "id": 685, + "name": "FunctionCall", + "src": "6750:20:2" + } + ], + "id": 686, + "name": "VariableDeclarationStatement", + "src": "6735:35:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "transfer", + "referencedDeclaration": 1221, + "type": "function (address,uint256) external returns (bool)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 682, + "type": "contract RLC", + "value": "rlcToken" + }, + "id": 687, + "name": "Identifier", + "src": "6780:8:2" + } + ], + "id": 689, + "name": "MemberAccess", + "src": "6780:17:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1008, + "type": "address", + "value": "owner" + }, + "id": 690, + "name": "Identifier", + "src": "6798:5:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 676, + "type": "uint256", + "value": "amount" + }, + "id": 691, + "name": "Identifier", + "src": "6805:6:2" + } + ], + "id": 692, + "name": "FunctionCall", + "src": "6780:32:2" + } + ], + "id": 693, + "name": "ExpressionStatement", + "src": "6780:32:2" + } + ], + "id": 694, + "name": "Block", + "src": "6725:94:2" + } + ], + "id": 695, + "name": "FunctionDefinition", + "src": "6641:178:2" + } + ], + "id": 696, + "name": "ContractDefinition", + "src": "206:6616:2" + } + ], + "id": 697, + "name": "SourceUnit", + "src": "0:6823:2" + }, + "compiler": { + "name": "solc", + "version": "0.4.18+commit.9cf6e910.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "1.0.1", + "updatedAt": "2018-01-13T10:23:13.990Z" +} \ No newline at end of file diff --git a/build/contracts/IexecOracleAPI.json b/build/contracts/IexecOracleAPI.json new file mode 100644 index 0000000..5085566 --- /dev/null +++ b/build/contracts/IexecOracleAPI.json @@ -0,0 +1,1522 @@ +{ + "contractName": "IexecOracleAPI", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "submitTxHash", + "type": "bytes32" + }, + { + "name": "user", + "type": "address" + }, + { + "name": "stdout", + "type": "string" + }, + { + "name": "uri", + "type": "string" + } + ], + "name": "iexecSubmitCallback", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "param", + "type": "string" + } + ], + "name": "iexecSubmit", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "name": "_iexecOracleAddress", + "type": "address" + }, + { + "name": "dappPrice", + "type": "uint256" + }, + { + "name": "dappName", + "type": "string" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "submitTxHash", + "type": "bytes32" + }, + { + "indexed": true, + "name": "user", + "type": "address" + }, + { + "indexed": false, + "name": "stdout", + "type": "string" + }, + { + "indexed": false, + "name": "uri", + "type": "string" + } + ], + "name": "IexecSubmitCallback", + "type": "event" + } + ], + "bytecode": "0x6060604052341561000f57600080fd5b604051610639380380610639833981016040528080519060200190919080519060200190919080518201919050506000836000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff16635993ef5384846000604051602001526040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561013b578082015181840152602081019050610120565b50505050905090810190601f1680156101685780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b151561018757600080fd5b6102c65a03f1151561019857600080fd5b5050506040518051905015156101ad57600080fd5b50505050610479806101c06000396000f30060606040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806310a9f201146100515780638cd213b914610135575b600080fd5b341561005c57600080fd5b61011b60048080356000191690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610187565b604051808215151515815260200191505060405180910390f35b610185600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610320565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156101e457600080fd5b8373ffffffffffffffffffffffffffffffffffffffff167f68d2eaa37ea3e53bbe55f11eb038084f280086b8f4c4552dbca1b5692efeb9138685856040518084600019166000191681526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015610271578082015181840152602081019050610256565b50505050905090810190601f16801561029e5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156102d75780820151818401526020810190506102bc565b50505050905090810190601f1680156103045780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a260019050949350505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663d99a8dc334846000604051602001526040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156103d85780820151818401526020810190506103bd565b50505050905090810190601f1680156104055780820380516001836020036101000a031916815260200191505b50925050506020604051808303818588803b151561042257600080fd5b6125ee5a03f1151561043357600080fd5b5050505060405180519050151561044957600080fd5b50505600a165627a7a72305820a54f986d06adeb4b48df8cb3498494a744d094cf168047995fe1bd9d051d87860029", + "deployedBytecode": "0x60606040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806310a9f201146100515780638cd213b914610135575b600080fd5b341561005c57600080fd5b61011b60048080356000191690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610187565b604051808215151515815260200191505060405180910390f35b610185600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610320565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156101e457600080fd5b8373ffffffffffffffffffffffffffffffffffffffff167f68d2eaa37ea3e53bbe55f11eb038084f280086b8f4c4552dbca1b5692efeb9138685856040518084600019166000191681526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015610271578082015181840152602081019050610256565b50505050905090810190601f16801561029e5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156102d75780820151818401526020810190506102bc565b50505050905090810190601f1680156103045780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a260019050949350505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663d99a8dc334846000604051602001526040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156103d85780820151818401526020810190506103bd565b50505050905090810190601f1680156104055780820380516001836020036101000a031916815260200191505b50925050506020604051808303818588803b151561042257600080fd5b6125ee5a03f1151561043357600080fd5b5050505060405180519050151561044957600080fd5b50505600a165627a7a72305820a54f986d06adeb4b48df8cb3498494a744d094cf168047995fe1bd9d051d87860029", + "sourceMap": "88:927:3:-;;;272:292;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;426:23;397:19;378:18;;:38;;;;;;;;;;;;;;;;;;464:18;;;;;;;;;;;426:57;;501:11;:35;;;537:9;547:8;501:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;493:64:3;;;;;;;;272:292;;;;88:927;;;;;;", + "deployedSourceMap": "88:927:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;761:252;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;570:185;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;761:252;870:4;907:18;;;;;;;;;;;893:32;;:10;:32;;;885:41;;;;;;;;969:4;936:49;;;956:12;974:6;981:3;936:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:4:3;995:11;;761:252;;;;;;:::o;570:185::-;630:23;668:18;;;;;;;;;;;630:57;;705:11;:18;;;730:9;741:5;705:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;697:51:3;;;;;;;;570:185;;:::o", + "source": "pragma solidity ^0.4.18;\n//v1.1.1\nimport \"./IexecOracle.sol\";\nimport './IexecLib.sol';\n\ncontract IexecOracleAPI{\n\n\n address iexecOracleAddress;\n event IexecSubmitCallback(bytes32 submitTxHash, address indexed user, string stdout, string uri);\n\n //constructor\n function IexecOracleAPI(address _iexecOracleAddress, uint256 dappPrice, string dappName) public {\n iexecOracleAddress=_iexecOracleAddress;\n IexecOracle iexecOracle = IexecOracle(iexecOracleAddress);\n require(iexecOracle.registerDappAndProvider(dappPrice,dappName));\n }\n\n function iexecSubmit(string param) payable public {\n IexecOracle iexecOracle = IexecOracle(iexecOracleAddress);\n require(iexecOracle.submit.value(msg.value)(param));\n }\n\n function iexecSubmitCallback(bytes32 submitTxHash, address user, string stdout, string uri) public returns (bool){\n require(msg.sender == iexecOracleAddress);\n IexecSubmitCallback(submitTxHash,user,stdout,uri);\n return true;\n }\n}\n", + "sourcePath": "iexec-oracle-contract/contracts/IexecOracleAPI.sol", + "ast": { + "attributes": { + "absolutePath": "iexec-oracle-contract/contracts/IexecOracleAPI.sol", + "exportedSymbols": { + "IexecOracleAPI": [ + 794 + ] + } + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + "^", + "0.4", + ".18" + ] + }, + "id": 698, + "name": "PragmaDirective", + "src": "0:24:3" + }, + { + "attributes": { + "SourceUnit": 697, + "absolutePath": "iexec-oracle-contract/contracts/IexecOracle.sol", + "file": "./IexecOracle.sol", + "scope": 795, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 699, + "name": "ImportDirective", + "src": "34:27:3" + }, + { + "attributes": { + "SourceUnit": 33, + "absolutePath": "iexec-oracle-contract/contracts/IexecLib.sol", + "file": "./IexecLib.sol", + "scope": 795, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 700, + "name": "ImportDirective", + "src": "62:24:3" + }, + { + "attributes": { + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "linearizedBaseContracts": [ + 794 + ], + "name": "IexecOracleAPI", + "scope": 795 + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "iexecOracleAddress", + "scope": 794, + "stateVariable": true, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 701, + "name": "ElementaryTypeName", + "src": "119:7:3" + } + ], + "id": 702, + "name": "VariableDeclaration", + "src": "119:26:3" + }, + { + "attributes": { + "anonymous": false, + "name": "IexecSubmitCallback" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "submitTxHash", + "scope": 712, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 703, + "name": "ElementaryTypeName", + "src": "177:7:3" + } + ], + "id": 704, + "name": "VariableDeclaration", + "src": "177:20:3" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "name": "user", + "scope": 712, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 705, + "name": "ElementaryTypeName", + "src": "199:7:3" + } + ], + "id": 706, + "name": "VariableDeclaration", + "src": "199:20:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "stdout", + "scope": 712, + "stateVariable": false, + "storageLocation": "default", + "type": "string memory", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string storage pointer" + }, + "id": 707, + "name": "ElementaryTypeName", + "src": "221:6:3" + } + ], + "id": 708, + "name": "VariableDeclaration", + "src": "221:13:3" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "uri", + "scope": 712, + "stateVariable": false, + "storageLocation": "default", + "type": "string memory", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string storage pointer" + }, + "id": 709, + "name": "ElementaryTypeName", + "src": "236:6:3" + } + ], + "id": 710, + "name": "VariableDeclaration", + "src": "236:10:3" + } + ], + "id": 711, + "name": "ParameterList", + "src": "176:71:3" + } + ], + "id": 712, + "name": "EventDefinition", + "src": "151:97:3" + }, + { + "attributes": { + "constant": false, + "implemented": true, + "isConstructor": true, + "modifiers": [ + null + ], + "name": "IexecOracleAPI", + "payable": false, + "scope": 794, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "_iexecOracleAddress", + "scope": 740, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 713, + "name": "ElementaryTypeName", + "src": "296:7:3" + } + ], + "id": 714, + "name": "VariableDeclaration", + "src": "296:27:3" + }, + { + "attributes": { + "constant": false, + "name": "dappPrice", + "scope": 740, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 715, + "name": "ElementaryTypeName", + "src": "325:7:3" + } + ], + "id": 716, + "name": "VariableDeclaration", + "src": "325:17:3" + }, + { + "attributes": { + "constant": false, + "name": "dappName", + "scope": 740, + "stateVariable": false, + "storageLocation": "default", + "type": "string memory", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string storage pointer" + }, + "id": 717, + "name": "ElementaryTypeName", + "src": "344:6:3" + } + ], + "id": 718, + "name": "VariableDeclaration", + "src": "344:15:3" + } + ], + "id": 719, + "name": "ParameterList", + "src": "295:65:3" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 720, + "name": "ParameterList", + "src": "368:0:3" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 702, + "type": "address", + "value": "iexecOracleAddress" + }, + "id": 721, + "name": "Identifier", + "src": "378:18:3" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 714, + "type": "address", + "value": "_iexecOracleAddress" + }, + "id": 722, + "name": "Identifier", + "src": "397:19:3" + } + ], + "id": 723, + "name": "Assignment", + "src": "378:38:3" + } + ], + "id": 724, + "name": "ExpressionStatement", + "src": "378:38:3" + }, + { + "attributes": { + "assignments": [ + 726 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "iexecOracle", + "scope": 740, + "stateVariable": false, + "storageLocation": "default", + "type": "contract IexecOracle", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "IexecOracle", + "referencedDeclaration": 696, + "type": "contract IexecOracle" + }, + "id": 725, + "name": "UserDefinedTypeName", + "src": "426:11:3" + } + ], + "id": 726, + "name": "VariableDeclaration", + "src": "426:23:3" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "contract IexecOracle", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 696, + "type": "type(contract IexecOracle)", + "value": "IexecOracle" + }, + "id": 727, + "name": "Identifier", + "src": "452:11:3" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 702, + "type": "address", + "value": "iexecOracleAddress" + }, + "id": 728, + "name": "Identifier", + "src": "464:18:3" + } + ], + "id": 729, + "name": "FunctionCall", + "src": "452:31:3" + } + ], + "id": 730, + "name": "VariableDeclarationStatement", + "src": "426:57:3" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1599, + "type": "function (bool) pure", + "value": "require" + }, + "id": 731, + "name": "Identifier", + "src": "493:7:3" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "registerDappAndProvider", + "referencedDeclaration": 260, + "type": "function (uint256,string memory) external returns (bool)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 726, + "type": "contract IexecOracle", + "value": "iexecOracle" + }, + "id": 732, + "name": "Identifier", + "src": "501:11:3" + } + ], + "id": 733, + "name": "MemberAccess", + "src": "501:35:3" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 716, + "type": "uint256", + "value": "dappPrice" + }, + "id": 734, + "name": "Identifier", + "src": "537:9:3" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 718, + "type": "string memory", + "value": "dappName" + }, + "id": 735, + "name": "Identifier", + "src": "547:8:3" + } + ], + "id": 736, + "name": "FunctionCall", + "src": "501:55:3" + } + ], + "id": 737, + "name": "FunctionCall", + "src": "493:64:3" + } + ], + "id": 738, + "name": "ExpressionStatement", + "src": "493:64:3" + } + ], + "id": 739, + "name": "Block", + "src": "368:196:3" + } + ], + "id": 740, + "name": "FunctionDefinition", + "src": "272:292:3" + }, + { + "attributes": { + "constant": false, + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "iexecSubmit", + "payable": true, + "scope": 794, + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "param", + "scope": 763, + "stateVariable": false, + "storageLocation": "default", + "type": "string memory", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string storage pointer" + }, + "id": 741, + "name": "ElementaryTypeName", + "src": "591:6:3" + } + ], + "id": 742, + "name": "VariableDeclaration", + "src": "591:12:3" + } + ], + "id": 743, + "name": "ParameterList", + "src": "590:14:3" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 744, + "name": "ParameterList", + "src": "620:0:3" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 746 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "iexecOracle", + "scope": 763, + "stateVariable": false, + "storageLocation": "default", + "type": "contract IexecOracle", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "IexecOracle", + "referencedDeclaration": 696, + "type": "contract IexecOracle" + }, + "id": 745, + "name": "UserDefinedTypeName", + "src": "630:11:3" + } + ], + "id": 746, + "name": "VariableDeclaration", + "src": "630:23:3" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "contract IexecOracle", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 696, + "type": "type(contract IexecOracle)", + "value": "IexecOracle" + }, + "id": 747, + "name": "Identifier", + "src": "656:11:3" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 702, + "type": "address", + "value": "iexecOracleAddress" + }, + "id": 748, + "name": "Identifier", + "src": "668:18:3" + } + ], + "id": 749, + "name": "FunctionCall", + "src": "656:31:3" + } + ], + "id": 750, + "name": "VariableDeclarationStatement", + "src": "630:57:3" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1599, + "type": "function (bool) pure", + "value": "require" + }, + "id": 751, + "name": "Identifier", + "src": "697:7:3" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "function (string memory) payable external returns (bool)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "value", + "referencedDeclaration": null, + "type": "function (uint256) returns (function (string memory) payable external returns (bool))" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "submit", + "referencedDeclaration": 484, + "type": "function (string memory) payable external returns (bool)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 746, + "type": "contract IexecOracle", + "value": "iexecOracle" + }, + "id": 752, + "name": "Identifier", + "src": "705:11:3" + } + ], + "id": 753, + "name": "MemberAccess", + "src": "705:18:3" + } + ], + "id": 754, + "name": "MemberAccess", + "src": "705:24:3" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "value", + "referencedDeclaration": null, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1596, + "type": "msg", + "value": "msg" + }, + "id": 755, + "name": "Identifier", + "src": "730:3:3" + } + ], + "id": 756, + "name": "MemberAccess", + "src": "730:9:3" + } + ], + "id": 757, + "name": "FunctionCall", + "src": "705:35:3" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 742, + "type": "string memory", + "value": "param" + }, + "id": 758, + "name": "Identifier", + "src": "741:5:3" + } + ], + "id": 759, + "name": "FunctionCall", + "src": "705:42:3" + } + ], + "id": 760, + "name": "FunctionCall", + "src": "697:51:3" + } + ], + "id": 761, + "name": "ExpressionStatement", + "src": "697:51:3" + } + ], + "id": 762, + "name": "Block", + "src": "620:135:3" + } + ], + "id": 763, + "name": "FunctionDefinition", + "src": "570:185:3" + }, + { + "attributes": { + "constant": false, + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "iexecSubmitCallback", + "payable": false, + "scope": 794, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "submitTxHash", + "scope": 793, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 764, + "name": "ElementaryTypeName", + "src": "790:7:3" + } + ], + "id": 765, + "name": "VariableDeclaration", + "src": "790:20:3" + }, + { + "attributes": { + "constant": false, + "name": "user", + "scope": 793, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 766, + "name": "ElementaryTypeName", + "src": "812:7:3" + } + ], + "id": 767, + "name": "VariableDeclaration", + "src": "812:12:3" + }, + { + "attributes": { + "constant": false, + "name": "stdout", + "scope": 793, + "stateVariable": false, + "storageLocation": "default", + "type": "string memory", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string storage pointer" + }, + "id": 768, + "name": "ElementaryTypeName", + "src": "826:6:3" + } + ], + "id": 769, + "name": "VariableDeclaration", + "src": "826:13:3" + }, + { + "attributes": { + "constant": false, + "name": "uri", + "scope": 793, + "stateVariable": false, + "storageLocation": "default", + "type": "string memory", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string storage pointer" + }, + "id": 770, + "name": "ElementaryTypeName", + "src": "841:6:3" + } + ], + "id": 771, + "name": "VariableDeclaration", + "src": "841:10:3" + } + ], + "id": 772, + "name": "ParameterList", + "src": "789:63:3" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 793, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 773, + "name": "ElementaryTypeName", + "src": "870:4:3" + } + ], + "id": 774, + "name": "VariableDeclaration", + "src": "870:4:3" + } + ], + "id": 775, + "name": "ParameterList", + "src": "869:6:3" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1599, + "type": "function (bool) pure", + "value": "require" + }, + "id": 776, + "name": "Identifier", + "src": "885:7:3" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1596, + "type": "msg", + "value": "msg" + }, + "id": 777, + "name": "Identifier", + "src": "893:3:3" + } + ], + "id": 778, + "name": "MemberAccess", + "src": "893:10:3" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 702, + "type": "address", + "value": "iexecOracleAddress" + }, + "id": 779, + "name": "Identifier", + "src": "907:18:3" + } + ], + "id": 780, + "name": "BinaryOperation", + "src": "893:32:3" + } + ], + "id": 781, + "name": "FunctionCall", + "src": "885:41:3" + } + ], + "id": 782, + "name": "ExpressionStatement", + "src": "885:41:3" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 712, + "type": "function (bytes32,address,string memory,string memory)", + "value": "IexecSubmitCallback" + }, + "id": 783, + "name": "Identifier", + "src": "936:19:3" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 765, + "type": "bytes32", + "value": "submitTxHash" + }, + "id": 784, + "name": "Identifier", + "src": "956:12:3" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 767, + "type": "address", + "value": "user" + }, + "id": 785, + "name": "Identifier", + "src": "969:4:3" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 769, + "type": "string memory", + "value": "stdout" + }, + "id": 786, + "name": "Identifier", + "src": "974:6:3" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 771, + "type": "string memory", + "value": "uri" + }, + "id": 787, + "name": "Identifier", + "src": "981:3:3" + } + ], + "id": 788, + "name": "FunctionCall", + "src": "936:49:3" + } + ], + "id": 789, + "name": "ExpressionStatement", + "src": "936:49:3" + }, + { + "attributes": { + "functionReturnParameters": 775 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 790, + "name": "Literal", + "src": "1002:4:3" + } + ], + "id": 791, + "name": "Return", + "src": "995:11:3" + } + ], + "id": 792, + "name": "Block", + "src": "875:138:3" + } + ], + "id": 793, + "name": "FunctionDefinition", + "src": "761:252:3" + } + ], + "id": 794, + "name": "ContractDefinition", + "src": "88:927:3" + } + ], + "id": 795, + "name": "SourceUnit", + "src": "0:1016:3" + }, + "compiler": { + "name": "solc", + "version": "0.4.18+commit.9cf6e910.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "1.0.1", + "updatedAt": "2018-01-13T10:23:13.992Z" +} \ No newline at end of file diff --git a/build/contracts/IexecOracleEscrow.json b/build/contracts/IexecOracleEscrow.json new file mode 100644 index 0000000..f3fd061 --- /dev/null +++ b/build/contracts/IexecOracleEscrow.json @@ -0,0 +1,2125 @@ +{ + "contractName": "IexecOracleEscrow", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "targets", + "type": "address[]" + }, + { + "name": "isRegistered", + "type": "bool" + } + ], + "name": "changeIexecOracleRegistrationStatuses", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "rlcToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "iexecOracleRegistered", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "target", + "type": "address" + }, + { + "name": "isRegistered", + "type": "bool" + } + ], + "name": "changeIexecOracleRegistrationStatus", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "target", + "type": "address" + } + ], + "name": "isIexecOracleRegistered", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "dappPrice", + "type": "uint256" + } + ], + "name": "rlcDeposit", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "beneficiary", + "type": "address" + }, + { + "name": "dappPrice", + "type": "uint256" + } + ], + "name": "rlcPayment", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "name": "_tokenAddress", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + } + ], + "bytecode": "0x6060604052341561000f57600080fd5b604051602080610aad83398101604052808051906020019091905050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506109f1806100bc6000396000f300606060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063097c0b0a1461009e57806382ca37f1146101035780638da5cb5b14610158578063b78f1b4d146101ad578063b8ad26da146101fe578063b95803e814610242578063bbc88c5d14610293578063bfd24f40146102ce578063f2fde38b14610328575b600080fd5b34156100a957600080fd5b6101016004808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919080351515906020019091905050610361565b005b341561010e57600080fd5b6101166103fa565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561016357600080fd5b61016b610420565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101b857600080fd5b6101e4600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610445565b604051808215151515815260200191505060405180910390f35b341561020957600080fd5b610240600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080351515906020019091905050610465565b005b341561024d57600080fd5b610279600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610516565b604051808215151515815260200191505060405180910390f35b341561029e57600080fd5b6102b4600480803590602001909190505061056c565b604051808215151515815260200191505060405180910390f35b34156102d957600080fd5b61030e600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061074a565b604051808215151515815260200191505060405180910390f35b341561033357600080fd5b61035f600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506108f5565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156103f557600090505b82518110156103f4576103e783828151811015156103d757fe5b9060200190602002015183610465565b80806001019150506103bd565b5b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026020528060005260406000206000915054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156105125780600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061061257506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561061a57fe5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3230856000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b151561071b57600080fd5b6102c65a03f1151561072c57600080fd5b50505060405180519050151561074157600080fd5b60019050919050565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806107f057506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156107f857fe5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156108c557600080fd5b6102c65a03f115156108d657600080fd5b5050506040518051905015156108eb57600080fd5b6001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156109c257600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156109c157806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b505600a165627a7a723058201d9d0a4289a2c87374a3299f55cc49439507634a7442d08f7066391d269ea8630029", + "deployedBytecode": "0x606060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063097c0b0a1461009e57806382ca37f1146101035780638da5cb5b14610158578063b78f1b4d146101ad578063b8ad26da146101fe578063b95803e814610242578063bbc88c5d14610293578063bfd24f40146102ce578063f2fde38b14610328575b600080fd5b34156100a957600080fd5b6101016004808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919080351515906020019091905050610361565b005b341561010e57600080fd5b6101166103fa565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561016357600080fd5b61016b610420565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101b857600080fd5b6101e4600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610445565b604051808215151515815260200191505060405180910390f35b341561020957600080fd5b610240600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080351515906020019091905050610465565b005b341561024d57600080fd5b610279600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610516565b604051808215151515815260200191505060405180910390f35b341561029e57600080fd5b6102b4600480803590602001909190505061056c565b604051808215151515815260200191505060405180910390f35b34156102d957600080fd5b61030e600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061074a565b604051808215151515815260200191505060405180910390f35b341561033357600080fd5b61035f600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506108f5565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156103f557600090505b82518110156103f4576103e783828151811015156103d757fe5b9060200190602002015183610465565b80806001019150506103bd565b5b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026020528060005260406000206000915054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156105125780600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061061257506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561061a57fe5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3230856000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b151561071b57600080fd5b6102c65a03f1151561072c57600080fd5b50505060405180519050151561074157600080fd5b60019050919050565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806107f057506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156107f857fe5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156108c557600080fd5b6102c65a03f115156108d657600080fd5b5050506040518051905015156108eb57600080fd5b6001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156109c257600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156109c157806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b505600a165627a7a723058201d9d0a4289a2c87374a3299f55cc49439507634a7442d08f7066391d269ea8630029", + "sourceMap": "116:1334:4:-;;;402:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;104:10:6;96:5;;:18;;;;;;;;;;;;;;;;;;484:13:4;469:8;;:29;;;;;;;;;;;;;;;;;;402:103;116:1334;;;;;;", + "deployedSourceMap": "116:1334:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;675:246;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;161:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46:20:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;187:51:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;511:158;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1317:130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;927:182;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1115:196;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;191:110:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;675:246:4;792:6;168:5:6;;;;;;;;;;;154:19;;:10;:19;;;150:32;;;801:1:4;792:10;;787:128;808:7;:14;804:1;:18;787:128;;;843:61;879:7;887:1;879:10;;;;;;;;;;;;;;;;;;891:12;843:35;:61::i;:::-;824:3;;;;;;;787:128;;;150:32:6;675:246:4;;;:::o;161:19::-;;;;;;;;;;;;;:::o;46:20:6:-;;;;;;;;;;;;;:::o;187:51:4:-;;;;;;;;;;;;;;;;;;;;;;:::o;511:158::-;168:5:6;;;;;;;;;;;154:19;;:10;:19;;;150:32;;;650:12:4;618:21;:29;640:6;618:29;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;150:32:6;511:158:4;;:::o;1317:130::-;1391:4;1411:21;:29;1433:6;1411:29;;;;;;;;;;;;;;;;;;;;;;;;;1404:36;;1317:130;;;:::o;927:182::-;1010:4;301:21;:33;323:10;301:33;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;353:5;;;;;;;;;;;339:19;;:10;:19;;;301:57;293:67;;;;;;1033:8;;;;;;;;;;;:21;;;1055:9;1065:4;1070:9;1033:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1025:56;;;;;;;;1098:4;1091:11;;927:182;;;:::o;1115:196::-;1219:4;301:21;:33;323:10;301:33;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;353:5;;;;;;;;;;;339:19;;:10;:19;;;301:57;293:67;;;;;;1242:8;;;;;;;;;;;:17;;;1260:11;1272:9;1242:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1234:49;;;;;;;;1300:4;1293:11;;1115:196;;;;:::o;191:110:6:-;168:5;;;;;;;;;;;154:19;;:10;:19;;;150:32;;;276:1;256:22;;:8;:22;;;;252:44;;;288:8;280:5;;:16;;;;;;;;;;;;;;;;;;252:44;150:32;191:110;:::o", + "source": "pragma solidity ^0.4.18;\n//v1.1.1\nimport \"rlc-token/contracts/RLC.sol\";\nimport \"rlc-token/contracts/Ownable.sol\";\n\n\ncontract IexecOracleEscrow is Ownable {\n\n RLC public rlcToken;\n\n mapping(address=>bool) public iexecOracleRegistered;\n\n modifier onlyOwnerOrOracleRegistered(){\n assert( iexecOracleRegistered[msg.sender] || msg.sender == owner );\n _;\n }\n\n //constructor\n function IexecOracleEscrow(address _tokenAddress) public {\n rlcToken = RLC(_tokenAddress);\n }\n\n function changeIexecOracleRegistrationStatus(address target, bool isRegistered) public onlyOwner {\n iexecOracleRegistered[target] = isRegistered;\n }\n\n function changeIexecOracleRegistrationStatuses(address[] targets, bool isRegistered) public onlyOwner {\n for (uint i = 0; i < targets.length; i++) {\n changeIexecOracleRegistrationStatus(targets[i], isRegistered);\n }\n }\n\n function rlcDeposit(uint256 dappPrice) public onlyOwnerOrOracleRegistered returns (bool){\n require(rlcToken.transferFrom(tx.origin,this,dappPrice));\n return true;\n }\n\n function rlcPayment(address beneficiary ,uint256 dappPrice) public onlyOwnerOrOracleRegistered returns (bool){\n require(rlcToken.transfer(beneficiary,dappPrice));\n return true;\n }\n\n function isIexecOracleRegistered(address target) constant public returns (bool){\n return iexecOracleRegistered[target];\n }\n\n}\n", + "sourcePath": "iexec-oracle-contract/contracts/IexecOracleEscrow.sol", + "ast": { + "attributes": { + "absolutePath": "iexec-oracle-contract/contracts/IexecOracleEscrow.sol", + "exportedSymbols": { + "IexecOracleEscrow": [ + 938 + ] + } + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + "^", + "0.4", + ".18" + ] + }, + "id": 796, + "name": "PragmaDirective", + "src": "0:24:4" + }, + { + "attributes": { + "SourceUnit": 1375, + "absolutePath": "rlc-token/contracts/RLC.sol", + "file": "rlc-token/contracts/RLC.sol", + "scope": 939, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 797, + "name": "ImportDirective", + "src": "34:37:4" + }, + { + "attributes": { + "SourceUnit": 1046, + "absolutePath": "rlc-token/contracts/Ownable.sol", + "file": "rlc-token/contracts/Ownable.sol", + "scope": 939, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 798, + "name": "ImportDirective", + "src": "72:41:4" + }, + { + "attributes": { + "contractDependencies": [ + 1045 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "linearizedBaseContracts": [ + 938, + 1045 + ], + "name": "IexecOracleEscrow", + "scope": 939 + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ] + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "Ownable", + "referencedDeclaration": 1045, + "type": "contract Ownable" + }, + "id": 799, + "name": "UserDefinedTypeName", + "src": "146:7:4" + } + ], + "id": 800, + "name": "InheritanceSpecifier", + "src": "146:7:4" + }, + { + "attributes": { + "constant": false, + "name": "rlcToken", + "scope": 938, + "stateVariable": true, + "storageLocation": "default", + "type": "contract RLC", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "RLC", + "referencedDeclaration": 1374, + "type": "contract RLC" + }, + "id": 801, + "name": "UserDefinedTypeName", + "src": "161:3:4" + } + ], + "id": 802, + "name": "VariableDeclaration", + "src": "161:19:4" + }, + { + "attributes": { + "constant": false, + "name": "iexecOracleRegistered", + "scope": 938, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => bool)", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => bool)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 803, + "name": "ElementaryTypeName", + "src": "195:7:4" + }, + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 804, + "name": "ElementaryTypeName", + "src": "204:4:4" + } + ], + "id": 805, + "name": "Mapping", + "src": "187:22:4" + } + ], + "id": 806, + "name": "VariableDeclaration", + "src": "187:51:4" + }, + { + "attributes": { + "name": "onlyOwnerOrOracleRegistered", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 807, + "name": "ParameterList", + "src": "281:2:4" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1587, + "type": "function (bool) pure", + "value": "assert" + }, + "id": 808, + "name": "Identifier", + "src": "293:6:4" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 806, + "type": "mapping(address => bool)", + "value": "iexecOracleRegistered" + }, + "id": 809, + "name": "Identifier", + "src": "301:21:4" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1596, + "type": "msg", + "value": "msg" + }, + "id": 810, + "name": "Identifier", + "src": "323:3:4" + } + ], + "id": 811, + "name": "MemberAccess", + "src": "323:10:4" + } + ], + "id": 812, + "name": "IndexAccess", + "src": "301:33:4" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1596, + "type": "msg", + "value": "msg" + }, + "id": 813, + "name": "Identifier", + "src": "339:3:4" + } + ], + "id": 814, + "name": "MemberAccess", + "src": "339:10:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1008, + "type": "address", + "value": "owner" + }, + "id": 815, + "name": "Identifier", + "src": "353:5:4" + } + ], + "id": 816, + "name": "BinaryOperation", + "src": "339:19:4" + } + ], + "id": 817, + "name": "BinaryOperation", + "src": "301:57:4" + } + ], + "id": 818, + "name": "FunctionCall", + "src": "293:67:4" + } + ], + "id": 819, + "name": "ExpressionStatement", + "src": "293:67:4" + }, + { + "id": 820, + "name": "PlaceholderStatement", + "src": "370:1:4" + } + ], + "id": 821, + "name": "Block", + "src": "283:95:4" + } + ], + "id": 822, + "name": "ModifierDefinition", + "src": "245:133:4" + }, + { + "attributes": { + "constant": false, + "implemented": true, + "isConstructor": true, + "modifiers": [ + null + ], + "name": "IexecOracleEscrow", + "payable": false, + "scope": 938, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "_tokenAddress", + "scope": 834, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 823, + "name": "ElementaryTypeName", + "src": "429:7:4" + } + ], + "id": 824, + "name": "VariableDeclaration", + "src": "429:21:4" + } + ], + "id": 825, + "name": "ParameterList", + "src": "428:23:4" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 826, + "name": "ParameterList", + "src": "459:0:4" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "contract RLC" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 802, + "type": "contract RLC", + "value": "rlcToken" + }, + "id": 827, + "name": "Identifier", + "src": "469:8:4" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "contract RLC", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1374, + "type": "type(contract RLC)", + "value": "RLC" + }, + "id": 828, + "name": "Identifier", + "src": "480:3:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 824, + "type": "address", + "value": "_tokenAddress" + }, + "id": 829, + "name": "Identifier", + "src": "484:13:4" + } + ], + "id": 830, + "name": "FunctionCall", + "src": "480:18:4" + } + ], + "id": 831, + "name": "Assignment", + "src": "469:29:4" + } + ], + "id": 832, + "name": "ExpressionStatement", + "src": "469:29:4" + } + ], + "id": 833, + "name": "Block", + "src": "459:46:4" + } + ], + "id": 834, + "name": "FunctionDefinition", + "src": "402:103:4" + }, + { + "attributes": { + "constant": false, + "implemented": true, + "isConstructor": false, + "name": "changeIexecOracleRegistrationStatus", + "payable": false, + "scope": 938, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "target", + "scope": 850, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 835, + "name": "ElementaryTypeName", + "src": "556:7:4" + } + ], + "id": 836, + "name": "VariableDeclaration", + "src": "556:14:4" + }, + { + "attributes": { + "constant": false, + "name": "isRegistered", + "scope": 850, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 837, + "name": "ElementaryTypeName", + "src": "572:4:4" + } + ], + "id": 838, + "name": "VariableDeclaration", + "src": "572:17:4" + } + ], + "id": 839, + "name": "ParameterList", + "src": "555:35:4" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 842, + "name": "ParameterList", + "src": "608:0:4" + }, + { + "attributes": { + "arguments": [ + null + ] + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1026, + "type": "modifier ()", + "value": "onlyOwner" + }, + "id": 840, + "name": "Identifier", + "src": "598:9:4" + } + ], + "id": 841, + "name": "ModifierInvocation", + "src": "598:9:4" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 806, + "type": "mapping(address => bool)", + "value": "iexecOracleRegistered" + }, + "id": 843, + "name": "Identifier", + "src": "618:21:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 836, + "type": "address", + "value": "target" + }, + "id": 844, + "name": "Identifier", + "src": "640:6:4" + } + ], + "id": 845, + "name": "IndexAccess", + "src": "618:29:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 838, + "type": "bool", + "value": "isRegistered" + }, + "id": 846, + "name": "Identifier", + "src": "650:12:4" + } + ], + "id": 847, + "name": "Assignment", + "src": "618:44:4" + } + ], + "id": 848, + "name": "ExpressionStatement", + "src": "618:44:4" + } + ], + "id": 849, + "name": "Block", + "src": "608:61:4" + } + ], + "id": 850, + "name": "FunctionDefinition", + "src": "511:158:4" + }, + { + "attributes": { + "constant": false, + "implemented": true, + "isConstructor": false, + "name": "changeIexecOracleRegistrationStatuses", + "payable": false, + "scope": 938, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "targets", + "scope": 881, + "stateVariable": false, + "storageLocation": "default", + "type": "address[] memory", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "address[] storage pointer" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 851, + "name": "ElementaryTypeName", + "src": "722:7:4" + } + ], + "id": 852, + "name": "ArrayTypeName", + "src": "722:9:4" + } + ], + "id": 853, + "name": "VariableDeclaration", + "src": "722:17:4" + }, + { + "attributes": { + "constant": false, + "name": "isRegistered", + "scope": 881, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 854, + "name": "ElementaryTypeName", + "src": "741:4:4" + } + ], + "id": 855, + "name": "VariableDeclaration", + "src": "741:17:4" + } + ], + "id": 856, + "name": "ParameterList", + "src": "721:38:4" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 859, + "name": "ParameterList", + "src": "777:0:4" + }, + { + "attributes": { + "arguments": [ + null + ] + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1026, + "type": "modifier ()", + "value": "onlyOwner" + }, + "id": 857, + "name": "Identifier", + "src": "767:9:4" + } + ], + "id": 858, + "name": "ModifierInvocation", + "src": "767:9:4" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "assignments": [ + 861 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "i", + "scope": 881, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 860, + "name": "ElementaryTypeName", + "src": "792:4:4" + } + ], + "id": 861, + "name": "VariableDeclaration", + "src": "792:6:4" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 862, + "name": "Literal", + "src": "801:1:4" + } + ], + "id": 863, + "name": "VariableDeclarationStatement", + "src": "792:10:4" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 861, + "type": "uint256", + "value": "i" + }, + "id": 864, + "name": "Identifier", + "src": "804:1:4" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "referencedDeclaration": null, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 853, + "type": "address[] memory", + "value": "targets" + }, + "id": 865, + "name": "Identifier", + "src": "808:7:4" + } + ], + "id": 866, + "name": "MemberAccess", + "src": "808:14:4" + } + ], + "id": 867, + "name": "BinaryOperation", + "src": "804:18:4" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "++", + "prefix": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 861, + "type": "uint256", + "value": "i" + }, + "id": 868, + "name": "Identifier", + "src": "824:1:4" + } + ], + "id": 869, + "name": "UnaryOperation", + "src": "824:3:4" + } + ], + "id": 870, + "name": "ExpressionStatement", + "src": "824:3:4" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 850, + "type": "function (address,bool)", + "value": "changeIexecOracleRegistrationStatus" + }, + "id": 871, + "name": "Identifier", + "src": "843:35:4" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 853, + "type": "address[] memory", + "value": "targets" + }, + "id": 872, + "name": "Identifier", + "src": "879:7:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 861, + "type": "uint256", + "value": "i" + }, + "id": 873, + "name": "Identifier", + "src": "887:1:4" + } + ], + "id": 874, + "name": "IndexAccess", + "src": "879:10:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 855, + "type": "bool", + "value": "isRegistered" + }, + "id": 875, + "name": "Identifier", + "src": "891:12:4" + } + ], + "id": 876, + "name": "FunctionCall", + "src": "843:61:4" + } + ], + "id": 877, + "name": "ExpressionStatement", + "src": "843:61:4" + } + ], + "id": 878, + "name": "Block", + "src": "829:86:4" + } + ], + "id": 879, + "name": "ForStatement", + "src": "787:128:4" + } + ], + "id": 880, + "name": "Block", + "src": "777:144:4" + } + ], + "id": 881, + "name": "FunctionDefinition", + "src": "675:246:4" + }, + { + "attributes": { + "constant": false, + "implemented": true, + "isConstructor": false, + "name": "rlcDeposit", + "payable": false, + "scope": 938, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "dappPrice", + "scope": 903, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 882, + "name": "ElementaryTypeName", + "src": "947:7:4" + } + ], + "id": 883, + "name": "VariableDeclaration", + "src": "947:17:4" + } + ], + "id": 884, + "name": "ParameterList", + "src": "946:19:4" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 903, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 887, + "name": "ElementaryTypeName", + "src": "1010:4:4" + } + ], + "id": 888, + "name": "VariableDeclaration", + "src": "1010:4:4" + } + ], + "id": 889, + "name": "ParameterList", + "src": "1009:6:4" + }, + { + "attributes": { + "arguments": [ + null + ] + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 822, + "type": "modifier ()", + "value": "onlyOwnerOrOracleRegistered" + }, + "id": 885, + "name": "Identifier", + "src": "973:27:4" + } + ], + "id": 886, + "name": "ModifierInvocation", + "src": "973:27:4" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1599, + "type": "function (bool) pure", + "value": "require" + }, + "id": 890, + "name": "Identifier", + "src": "1025:7:4" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_contract$_IexecOracleEscrow_$938", + "typeString": "contract IexecOracleEscrow" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "transferFrom", + "referencedDeclaration": 1285, + "type": "function (address,address,uint256) external returns (bool)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 802, + "type": "contract RLC", + "value": "rlcToken" + }, + "id": 891, + "name": "Identifier", + "src": "1033:8:4" + } + ], + "id": 892, + "name": "MemberAccess", + "src": "1033:21:4" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "origin", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1606, + "type": "tx", + "value": "tx" + }, + "id": 893, + "name": "Identifier", + "src": "1055:2:4" + } + ], + "id": 894, + "name": "MemberAccess", + "src": "1055:9:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1617, + "type": "contract IexecOracleEscrow", + "value": "this" + }, + "id": 895, + "name": "Identifier", + "src": "1065:4:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 883, + "type": "uint256", + "value": "dappPrice" + }, + "id": 896, + "name": "Identifier", + "src": "1070:9:4" + } + ], + "id": 897, + "name": "FunctionCall", + "src": "1033:47:4" + } + ], + "id": 898, + "name": "FunctionCall", + "src": "1025:56:4" + } + ], + "id": 899, + "name": "ExpressionStatement", + "src": "1025:56:4" + }, + { + "attributes": { + "functionReturnParameters": 889 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 900, + "name": "Literal", + "src": "1098:4:4" + } + ], + "id": 901, + "name": "Return", + "src": "1091:11:4" + } + ], + "id": 902, + "name": "Block", + "src": "1015:94:4" + } + ], + "id": 903, + "name": "FunctionDefinition", + "src": "927:182:4" + }, + { + "attributes": { + "constant": false, + "implemented": true, + "isConstructor": false, + "name": "rlcPayment", + "payable": false, + "scope": 938, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "beneficiary", + "scope": 925, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 904, + "name": "ElementaryTypeName", + "src": "1135:7:4" + } + ], + "id": 905, + "name": "VariableDeclaration", + "src": "1135:19:4" + }, + { + "attributes": { + "constant": false, + "name": "dappPrice", + "scope": 925, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 906, + "name": "ElementaryTypeName", + "src": "1156:7:4" + } + ], + "id": 907, + "name": "VariableDeclaration", + "src": "1156:17:4" + } + ], + "id": 908, + "name": "ParameterList", + "src": "1134:40:4" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 925, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 911, + "name": "ElementaryTypeName", + "src": "1219:4:4" + } + ], + "id": 912, + "name": "VariableDeclaration", + "src": "1219:4:4" + } + ], + "id": 913, + "name": "ParameterList", + "src": "1218:6:4" + }, + { + "attributes": { + "arguments": [ + null + ] + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 822, + "type": "modifier ()", + "value": "onlyOwnerOrOracleRegistered" + }, + "id": 909, + "name": "Identifier", + "src": "1182:27:4" + } + ], + "id": 910, + "name": "ModifierInvocation", + "src": "1182:27:4" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1599, + "type": "function (bool) pure", + "value": "require" + }, + "id": 914, + "name": "Identifier", + "src": "1234:7:4" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "transfer", + "referencedDeclaration": 1221, + "type": "function (address,uint256) external returns (bool)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 802, + "type": "contract RLC", + "value": "rlcToken" + }, + "id": 915, + "name": "Identifier", + "src": "1242:8:4" + } + ], + "id": 916, + "name": "MemberAccess", + "src": "1242:17:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 905, + "type": "address", + "value": "beneficiary" + }, + "id": 917, + "name": "Identifier", + "src": "1260:11:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 907, + "type": "uint256", + "value": "dappPrice" + }, + "id": 918, + "name": "Identifier", + "src": "1272:9:4" + } + ], + "id": 919, + "name": "FunctionCall", + "src": "1242:40:4" + } + ], + "id": 920, + "name": "FunctionCall", + "src": "1234:49:4" + } + ], + "id": 921, + "name": "ExpressionStatement", + "src": "1234:49:4" + }, + { + "attributes": { + "functionReturnParameters": 913 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 922, + "name": "Literal", + "src": "1300:4:4" + } + ], + "id": 923, + "name": "Return", + "src": "1293:11:4" + } + ], + "id": 924, + "name": "Block", + "src": "1224:87:4" + } + ], + "id": 925, + "name": "FunctionDefinition", + "src": "1115:196:4" + }, + { + "attributes": { + "constant": true, + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "isIexecOracleRegistered", + "payable": false, + "scope": 938, + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "target", + "scope": 937, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 926, + "name": "ElementaryTypeName", + "src": "1350:7:4" + } + ], + "id": 927, + "name": "VariableDeclaration", + "src": "1350:14:4" + } + ], + "id": 928, + "name": "ParameterList", + "src": "1349:16:4" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 937, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 929, + "name": "ElementaryTypeName", + "src": "1391:4:4" + } + ], + "id": 930, + "name": "VariableDeclaration", + "src": "1391:4:4" + } + ], + "id": 931, + "name": "ParameterList", + "src": "1390:6:4" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 931 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 806, + "type": "mapping(address => bool)", + "value": "iexecOracleRegistered" + }, + "id": 932, + "name": "Identifier", + "src": "1411:21:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 927, + "type": "address", + "value": "target" + }, + "id": 933, + "name": "Identifier", + "src": "1433:6:4" + } + ], + "id": 934, + "name": "IndexAccess", + "src": "1411:29:4" + } + ], + "id": 935, + "name": "Return", + "src": "1404:36:4" + } + ], + "id": 936, + "name": "Block", + "src": "1396:51:4" + } + ], + "id": 937, + "name": "FunctionDefinition", + "src": "1317:130:4" + } + ], + "id": 938, + "name": "ContractDefinition", + "src": "116:1334:4" + } + ], + "id": 939, + "name": "SourceUnit", + "src": "0:1451:4" + }, + "compiler": { + "name": "solc", + "version": "0.4.18+commit.9cf6e910.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "1.0.1", + "updatedAt": "2018-01-13T10:23:13.992Z" +} \ No newline at end of file diff --git a/build/contracts/MyContract.json b/build/contracts/MyContract.json new file mode 100644 index 0000000..eda0a85 --- /dev/null +++ b/build/contracts/MyContract.json @@ -0,0 +1,436 @@ +{ + "contractName": "MyContract", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "submitTxHash", + "type": "bytes32" + }, + { + "name": "user", + "type": "address" + }, + { + "name": "stdout", + "type": "string" + }, + { + "name": "uri", + "type": "string" + } + ], + "name": "iexecSubmitCallback", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "DAPP_PRICE", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "param", + "type": "string" + } + ], + "name": "iexecSubmit", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "DAPP_NAME", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_iexecOracleAddress", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "submitTxHash", + "type": "bytes32" + }, + { + "indexed": true, + "name": "user", + "type": "address" + }, + { + "indexed": false, + "name": "stdout", + "type": "string" + }, + { + "indexed": false, + "name": "uri", + "type": "string" + } + ], + "name": "IexecSubmitCallback", + "type": "event" + } + ], + "bytecode": "0x6060604052341561000f57600080fd5b60405160208061076c833981016040528080519060200190919050508060006040805190810160405280600481526020017f696e6974000000000000000000000000000000000000000000000000000000008152506000836000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff16635993ef5384846000604051602001526040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610162578082015181840152602081019050610147565b50505050905090810190601f16801561018f5780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15156101ae57600080fd5b6102c65a03f115156101bf57600080fd5b5050506040518051905015156101d457600080fd5b5050505050610584806101e86000396000f300606060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806310a9f201146100675780633c0aef301461014b5780638cd213b914610174578063c878f958146101c6575b600080fd5b341561007257600080fd5b61013160048080356000191690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610254565b604051808215151515815260200191505060405180910390f35b341561015657600080fd5b61015e6103ed565b6040518082815260200191505060405180910390f35b6101c4600480803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506103f2565b005b34156101d157600080fd5b6101d961051f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102195780820151818401526020810190506101fe565b50505050905090810190601f1680156102465780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156102b157600080fd5b8373ffffffffffffffffffffffffffffffffffffffff167f68d2eaa37ea3e53bbe55f11eb038084f280086b8f4c4552dbca1b5692efeb9138685856040518084600019166000191681526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101561033e578082015181840152602081019050610323565b50505050905090810190601f16801561036b5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156103a4578082015181840152602081019050610389565b50505050905090810190601f1680156103d15780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a260019050949350505050565b600081565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663d99a8dc334846000604051602001526040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156104aa57808201518184015260208101905061048f565b50505050905090810190601f1680156104d75780820380516001836020036101000a031916815260200191505b50925050506020604051808303818588803b15156104f457600080fd5b6125ee5a03f1151561050557600080fd5b5050505060405180519050151561051b57600080fd5b5050565b6040805190810160405280600481526020017f696e697400000000000000000000000000000000000000000000000000000000815250815600a165627a7a723058203ad58bfd842836fbab63e8da1c58eacc04f060ed5ec703ac1d057a1a060c776e0029", + "deployedBytecode": "0x606060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806310a9f201146100675780633c0aef301461014b5780638cd213b914610174578063c878f958146101c6575b600080fd5b341561007257600080fd5b61013160048080356000191690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610254565b604051808215151515815260200191505060405180910390f35b341561015657600080fd5b61015e6103ed565b6040518082815260200191505060405180910390f35b6101c4600480803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506103f2565b005b34156101d157600080fd5b6101d961051f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102195780820151818401526020810190506101fe565b50505050905090810190601f1680156102465780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156102b157600080fd5b8373ffffffffffffffffffffffffffffffffffffffff167f68d2eaa37ea3e53bbe55f11eb038084f280086b8f4c4552dbca1b5692efeb9138685856040518084600019166000191681526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101561033e578082015181840152602081019050610323565b50505050905090810190601f16801561036b5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156103a4578082015181840152602081019050610389565b50505050905090810190601f1680156103d15780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a260019050949350505050565b600081565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663d99a8dc334846000604051602001526040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156104aa57808201518184015260208101905061048f565b50505050905090810190601f1680156104d75780820380516001836020036101000a031916815260200191505b50925050506020604051808303818588803b15156104f457600080fd5b6125ee5a03f1151561050557600080fd5b5050505060405180519050151561051b57600080fd5b5050565b6040805190810160405280600481526020017f696e697400000000000000000000000000000000000000000000000000000000815250815600a165627a7a723058203ad58bfd842836fbab63e8da1c58eacc04f060ed5ec703ac1d057a1a060c776e0029", + "sourceMap": "86:254:0:-;;;223:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;288:19;164:1;319:9;;;;;;;;;;;;;;;;;;426:23:3;397:19;378:18;;:38;;;;;;;;;;;;;;;;;;464:18;;;;;;;;;;;426:57;;501:11;:35;;;537:9;547:8;501:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;493:64:3;;;;;;;;272:292;;;;223:114:0;86:254;;;;;;", + "deployedSourceMap": "86:254:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;761:252:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;130:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;570:185:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;171:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;761:252:3;870:4;907:18;;;;;;;;;;;893:32;;:10;:32;;;885:41;;;;;;;;969:4;936:49;;;956:12;974:6;981:3;936:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:4:3;995:11;;761:252;;;;;;:::o;130:35:0:-;164:1;130:35;:::o;570:185:3:-;630:23;668:18;;;;;;;;;;;630:57;;705:11;:18;;;730:9;741:5;705:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;697:51:3;;;;;;;;570:185;;:::o;171:41:0:-;;;;;;;;;;;;;;;;;;;;:::o", + "source": "pragma solidity ^0.4.11;\nimport \"iexec-oracle-contract/contracts/IexecOracleAPI.sol\";\ncontract MyContract is IexecOracleAPI{\n\n uint public constant DAPP_PRICE = 0;\n string public constant DAPP_NAME = \"init\";\n \n function MyContract (address _iexecOracleAddress) IexecOracleAPI(_iexecOracleAddress,DAPP_PRICE,DAPP_NAME){\n\n }\n\n}\n", + "sourcePath": "/home/vagrant/iexecdev/iexec-init/contracts/MyContract.sol", + "ast": { + "attributes": { + "absolutePath": "/home/vagrant/iexecdev/iexec-init/contracts/MyContract.sol", + "exportedSymbols": { + "MyContract": [ + 22 + ] + } + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + "^", + "0.4", + ".11" + ] + }, + "id": 1, + "name": "PragmaDirective", + "src": "0:24:0" + }, + { + "attributes": { + "SourceUnit": 795, + "absolutePath": "iexec-oracle-contract/contracts/IexecOracleAPI.sol", + "file": "iexec-oracle-contract/contracts/IexecOracleAPI.sol", + "scope": 23, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 2, + "name": "ImportDirective", + "src": "25:60:0" + }, + { + "attributes": { + "contractDependencies": [ + 794 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "linearizedBaseContracts": [ + 22, + 794 + ], + "name": "MyContract", + "scope": 23 + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ] + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "IexecOracleAPI", + "referencedDeclaration": 794, + "type": "contract IexecOracleAPI" + }, + "id": 3, + "name": "UserDefinedTypeName", + "src": "109:14:0" + } + ], + "id": 4, + "name": "InheritanceSpecifier", + "src": "109:14:0" + }, + { + "attributes": { + "constant": true, + "name": "DAPP_PRICE", + "scope": 22, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 5, + "name": "ElementaryTypeName", + "src": "130:4:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 6, + "name": "Literal", + "src": "164:1:0" + } + ], + "id": 7, + "name": "VariableDeclaration", + "src": "130:35:0" + }, + { + "attributes": { + "constant": true, + "name": "DAPP_NAME", + "scope": 22, + "stateVariable": true, + "storageLocation": "default", + "type": "string memory", + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string storage pointer" + }, + "id": 8, + "name": "ElementaryTypeName", + "src": "171:6:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "696e6974", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"init\"", + "value": "init" + }, + "id": 9, + "name": "Literal", + "src": "206:6:0" + } + ], + "id": 10, + "name": "VariableDeclaration", + "src": "171:41:0" + }, + { + "attributes": { + "constant": false, + "implemented": true, + "isConstructor": true, + "name": "MyContract", + "payable": false, + "scope": 22, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "_iexecOracleAddress", + "scope": 21, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 11, + "name": "ElementaryTypeName", + "src": "244:7:0" + } + ], + "id": 12, + "name": "VariableDeclaration", + "src": "244:27:0" + } + ], + "id": 13, + "name": "ParameterList", + "src": "243:29:0" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 19, + "name": "ParameterList", + "src": "329:0:0" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 794, + "type": "type(contract IexecOracleAPI)", + "value": "IexecOracleAPI" + }, + "id": 14, + "name": "Identifier", + "src": "273:14:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 12, + "type": "address", + "value": "_iexecOracleAddress" + }, + "id": 15, + "name": "Identifier", + "src": "288:19:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 7, + "type": "uint256", + "value": "DAPP_PRICE" + }, + "id": 16, + "name": "Identifier", + "src": "308:10:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 10, + "type": "string memory", + "value": "DAPP_NAME" + }, + "id": 17, + "name": "Identifier", + "src": "319:9:0" + } + ], + "id": 18, + "name": "ModifierInvocation", + "src": "273:56:0" + }, + { + "attributes": { + "statements": [ + null + ] + }, + "children": [], + "id": 20, + "name": "Block", + "src": "329:8:0" + } + ], + "id": 21, + "name": "FunctionDefinition", + "src": "223:114:0" + } + ], + "id": 22, + "name": "ContractDefinition", + "src": "86:254:0" + } + ], + "id": 23, + "name": "SourceUnit", + "src": "0:341:0" + }, + "compiler": { + "name": "solc", + "version": "0.4.18+commit.9cf6e910.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "1.0.1", + "updatedAt": "2017-12-20T16:10:37.901Z" +} \ No newline at end of file diff --git a/build/contracts/Ownable.json b/build/contracts/Ownable.json new file mode 100644 index 0000000..e5fe558 --- /dev/null +++ b/build/contracts/Ownable.json @@ -0,0 +1,602 @@ +{ + "contractName": "Ownable", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + } + ], + "bytecode": "0x6060604052341561000f57600080fd5b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506102008061005e6000396000f30060606040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680638da5cb5b14610051578063f2fde38b146100a6575b600080fd5b341561005c57600080fd5b6100646100df565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156100b157600080fd5b6100dd600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610104565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156101d157600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156101d057806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b505600a165627a7a723058201a240d5589456740a31e312bf3bd22de14abff3304abb2c28f675efa7267c4510029", + "deployedBytecode": "0x60606040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680638da5cb5b14610051578063f2fde38b146100a6575b600080fd5b341561005c57600080fd5b6100646100df565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156100b157600080fd5b6100dd600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610104565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156101d157600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156101d057806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b505600a165627a7a723058201a240d5589456740a31e312bf3bd22de14abff3304abb2c28f675efa7267c4510029", + "sourceMap": "25:279:6:-;;;71:48;;;;;;;;104:10;96:5;;:18;;;;;;;;;;;;;;;;;;25:279;;;;;;", + "deployedSourceMap": "25:279:6:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;191:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;46:20;;;;;;;;;;;;;:::o;191:110::-;168:5;;;;;;;;;;;154:19;;:10;:19;;;150:32;;;276:1;256:22;;:8;:22;;;;252:44;;;288:8;280:5;;:16;;;;;;;;;;;;;;;;;;252:44;150:32;191:110;:::o", + "source": "pragma solidity ^0.4.8;\n\ncontract Ownable {\n address public owner;\n\n function Ownable() {\n owner = msg.sender;\n }\n\n modifier onlyOwner() {\n if (msg.sender == owner)\n _;\n }\n\n function transferOwnership(address newOwner) onlyOwner {\n if (newOwner != address(0)) owner = newOwner;\n }\n\n}", + "sourcePath": "rlc-token/contracts/Ownable.sol", + "ast": { + "attributes": { + "absolutePath": "rlc-token/contracts/Ownable.sol", + "exportedSymbols": { + "Ownable": [ + 1045 + ] + } + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + "^", + "0.4", + ".8" + ] + }, + "id": 1006, + "name": "PragmaDirective", + "src": "0:23:6" + }, + { + "attributes": { + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1045 + ], + "name": "Ownable", + "scope": 1046 + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "owner", + "scope": 1045, + "stateVariable": true, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 1007, + "name": "ElementaryTypeName", + "src": "46:7:6" + } + ], + "id": 1008, + "name": "VariableDeclaration", + "src": "46:20:6" + }, + { + "attributes": { + "constant": false, + "implemented": true, + "isConstructor": true, + "modifiers": [ + null + ], + "name": "Ownable", + "payable": false, + "scope": 1045, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1009, + "name": "ParameterList", + "src": "87:2:6" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1010, + "name": "ParameterList", + "src": "90:0:6" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1008, + "type": "address", + "value": "owner" + }, + "id": 1011, + "name": "Identifier", + "src": "96:5:6" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1596, + "type": "msg", + "value": "msg" + }, + "id": 1012, + "name": "Identifier", + "src": "104:3:6" + } + ], + "id": 1013, + "name": "MemberAccess", + "src": "104:10:6" + } + ], + "id": 1014, + "name": "Assignment", + "src": "96:18:6" + } + ], + "id": 1015, + "name": "ExpressionStatement", + "src": "96:18:6" + } + ], + "id": 1016, + "name": "Block", + "src": "90:29:6" + } + ], + "id": 1017, + "name": "FunctionDefinition", + "src": "71:48:6" + }, + { + "attributes": { + "name": "onlyOwner", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1018, + "name": "ParameterList", + "src": "141:2:6" + }, + { + "children": [ + { + "attributes": { + "falseBody": null + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1596, + "type": "msg", + "value": "msg" + }, + "id": 1019, + "name": "Identifier", + "src": "154:3:6" + } + ], + "id": 1020, + "name": "MemberAccess", + "src": "154:10:6" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1008, + "type": "address", + "value": "owner" + }, + "id": 1021, + "name": "Identifier", + "src": "168:5:6" + } + ], + "id": 1022, + "name": "BinaryOperation", + "src": "154:19:6" + }, + { + "id": 1023, + "name": "PlaceholderStatement", + "src": "181:1:6" + } + ], + "id": 1024, + "name": "IfStatement", + "src": "150:32:6" + } + ], + "id": 1025, + "name": "Block", + "src": "144:43:6" + } + ], + "id": 1026, + "name": "ModifierDefinition", + "src": "123:64:6" + }, + { + "attributes": { + "constant": false, + "implemented": true, + "isConstructor": false, + "name": "transferOwnership", + "payable": false, + "scope": 1045, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "newOwner", + "scope": 1044, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 1027, + "name": "ElementaryTypeName", + "src": "218:7:6" + } + ], + "id": 1028, + "name": "VariableDeclaration", + "src": "218:16:6" + } + ], + "id": 1029, + "name": "ParameterList", + "src": "217:18:6" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1032, + "name": "ParameterList", + "src": "246:0:6" + }, + { + "attributes": { + "arguments": [ + null + ] + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1026, + "type": "modifier ()", + "value": "onlyOwner" + }, + "id": 1030, + "name": "Identifier", + "src": "236:9:6" + } + ], + "id": 1031, + "name": "ModifierInvocation", + "src": "236:9:6" + }, + { + "children": [ + { + "attributes": { + "falseBody": null + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1028, + "type": "address", + "value": "newOwner" + }, + "id": 1033, + "name": "Identifier", + "src": "256:8:6" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "address", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)", + "value": "address" + }, + "id": 1034, + "name": "ElementaryTypeNameExpression", + "src": "268:7:6" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1035, + "name": "Literal", + "src": "276:1:6" + } + ], + "id": 1036, + "name": "FunctionCall", + "src": "268:10:6" + } + ], + "id": 1037, + "name": "BinaryOperation", + "src": "256:22:6" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1008, + "type": "address", + "value": "owner" + }, + "id": 1038, + "name": "Identifier", + "src": "280:5:6" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1028, + "type": "address", + "value": "newOwner" + }, + "id": 1039, + "name": "Identifier", + "src": "288:8:6" + } + ], + "id": 1040, + "name": "Assignment", + "src": "280:16:6" + } + ], + "id": 1041, + "name": "ExpressionStatement", + "src": "280:16:6" + } + ], + "id": 1042, + "name": "IfStatement", + "src": "252:44:6" + } + ], + "id": 1043, + "name": "Block", + "src": "246:55:6" + } + ], + "id": 1044, + "name": "FunctionDefinition", + "src": "191:110:6" + } + ], + "id": 1045, + "name": "ContractDefinition", + "src": "25:279:6" + } + ], + "id": 1046, + "name": "SourceUnit", + "src": "0:304:6" + }, + "compiler": { + "name": "solc", + "version": "0.4.18+commit.9cf6e910.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "1.0.1", + "updatedAt": "2018-01-13T10:23:13.993Z" +} \ No newline at end of file diff --git a/build/contracts/RLC.json b/build/contracts/RLC.json new file mode 100644 index 0000000..66b6660 --- /dev/null +++ b/build/contracts/RLC.json @@ -0,0 +1,4899 @@ +{ + "contractName": "RLC", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "initialSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_value", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "balance", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "unlock", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + }, + { + "name": "_extraData", + "type": "bytes" + } + ], + "name": "approveAndCall", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "locked", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + }, + { + "name": "_spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "remaining", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + } + ], + "bytecode": "0x60606040526040805190810160405280600481526020017f76302e31000000000000000000000000000000000000000000000000000000008152506005908051906020019062000051929190620001d6565b5034156200005e57600080fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600860006101000a81548160ff0219169083151502179055506701351609ff758000600681905550600654600781905550600654600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506040805190810160405280601481526020017f6945782e6563204e6574776f726b20546f6b656e0000000000000000000000008152506002908051906020019062000165929190620001d6565b506040805190810160405280600381526020017f524c43000000000000000000000000000000000000000000000000000000000081525060039080519060200190620001b3929190620001d6565b506009600460006101000a81548160ff021916908360ff16021790555062000285565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200021957805160ff19168380011785556200024a565b828001600101855582156200024a579182015b82811115620002495782518255916020019190600101906200022c565b5b5090506200025991906200025d565b5090565b6200028291905b808211156200027e57600081600090555060010162000264565b5090565b90565b6113c080620002956000396000f3006060604052600436106100f1576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100f6578063095ea7b31461018457806318160ddd146101de57806323b872dd14610207578063313ce56714610280578063378dc3dc146102af57806342966c68146102d857806354fd4d501461031357806370a08231146103a15780638da5cb5b146103ee57806395d89b4114610443578063a69df4b5146104d1578063a9059cbb146104e6578063cae9ca5114610540578063cf309012146105c5578063dd62ed3e146105f2578063f2fde38b1461065e575b600080fd5b341561010157600080fd5b610109610697565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561014957808201518184015260208101905061012e565b50505050905090810190601f1680156101765780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561018f57600080fd5b6101c4600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610735565b604051808215151515815260200191505060405180910390f35b34156101e957600080fd5b6101f1610827565b6040518082815260200191505060405180910390f35b341561021257600080fd5b610266600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061082d565b604051808215151515815260200191505060405180910390f35b341561028b57600080fd5b610293610b36565b604051808260ff1660ff16815260200191505060405180910390f35b34156102ba57600080fd5b6102c2610b49565b6040518082815260200191505060405180910390f35b34156102e357600080fd5b6102f96004808035906020019091905050610b4f565b604051808215151515815260200191505060405180910390f35b341561031e57600080fd5b610326610c48565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561036657808201518184015260208101905061034b565b50505050905090810190601f1680156103935780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103ac57600080fd5b6103d8600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610ce6565b6040518082815260200191505060405180910390f35b34156103f957600080fd5b610401610d2f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561044e57600080fd5b610456610d55565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561049657808201518184015260208101905061047b565b50505050905090810190601f1680156104c35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156104dc57600080fd5b6104e4610df3565b005b34156104f157600080fd5b610526600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610e67565b604051808215151515815260200191505060405180910390f35b341561054b57600080fd5b6105c3600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611064565b005b34156105d057600080fd5b6105d86111d6565b604051808215151515815260200191505060405180910390f35b34156105fd57600080fd5b610648600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506111e9565b6040518082815260200191505060405180910390f35b341561066957600080fd5b610695600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611270565b005b60028054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561072d5780601f106107025761010080835404028352916020019161072d565b820191906000526020600020905b81548152906001019060200180831161071057829003601f168201915b505050505081565b600081600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60075481565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561089a5750600860009054906101000a900460ff165b156108a457600080fd5b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905061096c600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484611342565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109f8600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461136c565b600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a45818461136c565b600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150509392505050565b600460009054906101000a900460ff1681565b60065481565b6000610b9a600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361136c565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610be96007548361136c565b60078190555060003373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050919050565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610cde5780601f10610cb357610100808354040283529160200191610cde565b820191906000526020600020905b815481529060010190602001808311610cc157829003601f168201915b505050505081565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610deb5780601f10610dc057610100808354040283529160200191610deb565b820191906000526020600020905b815481529060010190602001808311610dce57829003601f168201915b505050505081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610e65576000600860006101000a81548160ff0219169083151502179055505b565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610ed35750600860009054906101000a900460ff165b15610edd57600080fd5b610f26600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361136c565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610fb2600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611342565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60008390506110738484610735565b156111d0578073ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561116d578082015181840152602081019050611152565b50505050905090810190601f16801561119a5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15156111bb57600080fd5b6102c65a03f115156111cc57600080fd5b5050505b50505050565b600860009054906101000a900460ff1681565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561133f57600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151561133e5780600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b50565b600080828401905061136284821015801561135d5750838210155b611385565b8091505092915050565b600061137a83831115611385565b818303905092915050565b80151561139157600080fd5b505600a165627a7a723058206a4fe8f71faad786eec9cf19f82e6a772e410fbe6cafb1ea3a84cafa64bf5f9f0029", + "deployedBytecode": "0x6060604052600436106100f1576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100f6578063095ea7b31461018457806318160ddd146101de57806323b872dd14610207578063313ce56714610280578063378dc3dc146102af57806342966c68146102d857806354fd4d501461031357806370a08231146103a15780638da5cb5b146103ee57806395d89b4114610443578063a69df4b5146104d1578063a9059cbb146104e6578063cae9ca5114610540578063cf309012146105c5578063dd62ed3e146105f2578063f2fde38b1461065e575b600080fd5b341561010157600080fd5b610109610697565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561014957808201518184015260208101905061012e565b50505050905090810190601f1680156101765780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561018f57600080fd5b6101c4600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610735565b604051808215151515815260200191505060405180910390f35b34156101e957600080fd5b6101f1610827565b6040518082815260200191505060405180910390f35b341561021257600080fd5b610266600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061082d565b604051808215151515815260200191505060405180910390f35b341561028b57600080fd5b610293610b36565b604051808260ff1660ff16815260200191505060405180910390f35b34156102ba57600080fd5b6102c2610b49565b6040518082815260200191505060405180910390f35b34156102e357600080fd5b6102f96004808035906020019091905050610b4f565b604051808215151515815260200191505060405180910390f35b341561031e57600080fd5b610326610c48565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561036657808201518184015260208101905061034b565b50505050905090810190601f1680156103935780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103ac57600080fd5b6103d8600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610ce6565b6040518082815260200191505060405180910390f35b34156103f957600080fd5b610401610d2f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561044e57600080fd5b610456610d55565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561049657808201518184015260208101905061047b565b50505050905090810190601f1680156104c35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156104dc57600080fd5b6104e4610df3565b005b34156104f157600080fd5b610526600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610e67565b604051808215151515815260200191505060405180910390f35b341561054b57600080fd5b6105c3600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611064565b005b34156105d057600080fd5b6105d86111d6565b604051808215151515815260200191505060405180910390f35b34156105fd57600080fd5b610648600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506111e9565b6040518082815260200191505060405180910390f35b341561066957600080fd5b610695600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611270565b005b60028054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561072d5780601f106107025761010080835404028352916020019161072d565b820191906000526020600020905b81548152906001019060200180831161071057829003601f168201915b505050505081565b600081600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60075481565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561089a5750600860009054906101000a900460ff165b156108a457600080fd5b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905061096c600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484611342565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109f8600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461136c565b600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a45818461136c565b600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150509392505050565b600460009054906101000a900460ff1681565b60065481565b6000610b9a600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361136c565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610be96007548361136c565b60078190555060003373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050919050565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610cde5780601f10610cb357610100808354040283529160200191610cde565b820191906000526020600020905b815481529060010190602001808311610cc157829003601f168201915b505050505081565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610deb5780601f10610dc057610100808354040283529160200191610deb565b820191906000526020600020905b815481529060010190602001808311610dce57829003601f168201915b505050505081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610e65576000600860006101000a81548160ff0219169083151502179055505b565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610ed35750600860009054906101000a900460ff165b15610edd57600080fd5b610f26600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361136c565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610fb2600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611342565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60008390506110738484610735565b156111d0578073ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561116d578082015181840152602081019050611152565b50505050905090810190601f16801561119a5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15156111bb57600080fd5b6102c65a03f115156111cc57600080fd5b5050505b50505050565b600860009054906101000a900460ff1681565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561133f57600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151561133e5780600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b50565b600080828401905061136284821015801561135d5750838210155b611385565b8091505092915050565b600061137a83831115611385565b818303905092915050565b80151561139157600080fd5b505600a165627a7a723058206a4fe8f71faad786eec9cf19f82e6a772e410fbe6cafb1ea3a84cafa64bf5f9f0029", + "sourceMap": "125:2917:7:-;;;333:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;773:601;;;;;;;;104:10:6;96:5;;:18;;;;;;;;;;;;;;;;;;858:4:7;849:6;;:13;;;;;;;;;;;;;;;;;;968:17;952:13;:33;;;;1005:13;;991:11;:27;;;;1047:13;;1024:8;:20;1033:10;1024:20;;;;;;;;;;;;;;;:36;;;;1124:29;;;;;;;;;;;;;;;;;;:4;:29;;;;;;;;;;;;:::i;:::-;;1208:14;;;;;;;;;;;;;;;;;;:6;:14;;;;;;;;;;;;:::i;:::-;;1302:1;1291:8;;:12;;;;;;;;;;;;;;;;;;125:2917;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", + "deployedSourceMap": "125:2917:7:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;211:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2394:173:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;397:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1914:371;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;276:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;368:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1435:220;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;333:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2289:101:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46:20:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;252::7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1378:53:7;;;;;;;;;;;;;;1659:251;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2646:257;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;424:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2907:130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;191:110:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;211:18:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2394:173::-;2451:4;2495:6;2463:7;:19;2471:10;2463:19;;;;;;;;;;;;;;;:29;2483:8;2463:29;;;;;;;;;;;;;;;:38;;;;2528:8;2507:38;;2516:10;2507:38;;;2538:6;2507:38;;;;;;;;;;;;;;;;;;2558:4;2551:11;;2394:173;;;;:::o;397:23::-;;;;:::o;1914:371::-;1999:4;2011:14;654:5;;;;;;;;;;;640:19;;:10;:19;;;;:29;;;;;663:6;;;;;;;;;;;640:29;636:40;;;671:5;;;636:40;2028:7;:14;2036:5;2028:14;;;;;;;;;;;;;;;:26;2043:10;2028:26;;;;;;;;;;;;;;;;2011:43;;2081:30;2089:8;:13;2098:3;2089:13;;;;;;;;;;;;;;;;2104:6;2081:7;:30::i;:::-;2065:8;:13;2074:3;2065:13;;;;;;;;;;;;;;;:46;;;;2135:32;2143:8;:15;2152:5;2143:15;;;;;;;;;;;;;;;;2160:6;2135:7;:32::i;:::-;2117:8;:15;2126:5;2117:15;;;;;;;;;;;;;;;:50;;;;2202:27;2210:10;2222:6;2202:7;:27::i;:::-;2173:7;:14;2181:5;2173:14;;;;;;;;;;;;;;;:26;2188:10;2173:26;;;;;;;;;;;;;;;:56;;;;2251:3;2235:28;;2244:5;2235:28;;;2256:6;2235:28;;;;;;;;;;;;;;;;;;2276:4;2269:11;;1914:371;;;;;;:::o;276:21::-;;;;;;;;;;;;;:::o;368:25::-;;;;:::o;1435:220::-;1474:4;1508:37;1516:8;:20;1525:10;1516:20;;;;;;;;;;;;;;;;1538:6;1508:7;:37::i;:::-;1485:8;:20;1494:10;1485:20;;;;;;;;;;;;;;;:60;;;;1566:28;1574:11;;1587:6;1566:7;:28::i;:::-;1552:11;:42;;;;1621:3;1609:10;1600:33;;;1626:6;1600:33;;;;;;;;;;;;;;;;;;1646:4;1639:11;;1435:220;;;:::o;333:30::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2289:101::-;2342:12;2369:8;:16;2378:6;2369:16;;;;;;;;;;;;;;;;2362:23;;2289:101;;;:::o;46:20:6:-;;;;;;;;;;;;;:::o;252::7:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1378:53::-;168:5:6;;;;;;;;;;;154:19;;:10;:19;;;150:32;;;1421:5:7;1412:6;;:14;;;;;;;;;;;;;;;;;;150:32:6;1378:53:7:o;1659:251::-;1725:4;654:5;;;;;;;;;;;640:19;;:10;:19;;;;:29;;;;;663:6;;;;;;;;;;;640:29;636:40;;;671:5;;;636:40;1760:37;1768:8;:20;1777:10;1768:20;;;;;;;;;;;;;;;;1790:6;1760:7;:37::i;:::-;1737:8;:20;1746:10;1737:20;;;;;;;;;;;;;;;:60;;;;1819:30;1827:8;:13;1836:3;1827:13;;;;;;;;;;;;;;;;1842:6;1819:7;:30::i;:::-;1803:8;:13;1812:3;1803:13;;;;;;;;;;;;;;;:46;;;;1876:3;1855:33;;1864:10;1855:33;;;1881:6;1855:33;;;;;;;;;;;;;;;;;;1901:4;1894:11;;1659:251;;;;:::o;2646:257::-;2733:20;2769:8;2733:45;;2790:25;2798:8;2808:6;2790:7;:25::i;:::-;2786:113;;;2829:7;:23;;;2853:10;2865:6;2873:4;2879:10;2829:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2786:113:7;2646:257;;;;:::o;424:18::-;;;;;;;;;;;;;:::o;2907:130::-;2978:14;3007:7;:15;3015:6;3007:15;;;;;;;;;;;;;;;:25;3023:8;3007:25;;;;;;;;;;;;;;;;3000:32;;2907:130;;;;:::o;191:110:6:-;168:5;;;;;;;;;;;154:19;;:10;:19;;;150:32;;;276:1;256:22;;:8;:22;;;;252:44;;;288:8;280:5;;:16;;;;;;;;;;;;;;;;;;252:44;150:32;191:110;:::o;436:122:8:-;487:4;499:6;512:1;508;:5;499:14;;519:20;529:1;526;:4;;:12;;;;;537:1;534;:4;;526:12;519:6;:20::i;:::-;552:1;545:8;;436:122;;;;;:::o;332:100::-;383:4;395:14;407:1;402;:6;;395;:14::i;:::-;426:1;422;:5;415:12;;332:100;;;;:::o;992:87::-;1044:9;1043:10;1039:36;;;1063:5;;;1039:36;992:87;:::o", + "source": "pragma solidity ^0.4.8;\n\nimport \"./Ownable.sol\";\nimport \"./SafeMath.sol\";\nimport \"./ERC20.sol\";\nimport \"./TokenSpender.sol\";\ncontract RLC is ERC20, SafeMath, Ownable {\n\n /* Public variables of the token */\n string public name; //fancy name\n string public symbol;\n uint8 public decimals; //How many decimals to show.\n string public version = 'v0.1'; \n uint public initialSupply;\n uint public totalSupply;\n bool public locked;\n //uint public unlockBlock;\n\n mapping(address => uint) balances;\n mapping (address => mapping (address => uint)) allowed;\n\n // lock transfer during the ICO\n modifier onlyUnlocked() {\n if (msg.sender != owner && locked) throw;\n _;\n }\n\n /*\n * The RLC Token created with the time at which the crowdsale end\n */\n\n function RLC() {\n // lock the transfer function during the crowdsale\n locked = true;\n //unlockBlock= now + 45 days; // (testnet) - for mainnet put the block number\n\n initialSupply = 87000000000000000;\n totalSupply = initialSupply;\n balances[msg.sender] = initialSupply;// Give the creator all initial tokens \n name = 'iEx.ec Network Token'; // Set the name for display purposes \n symbol = 'RLC'; // Set the symbol for display purposes \n decimals = 9; // Amount of decimals for display purposes\n }\n\n function unlock() onlyOwner {\n locked = false;\n }\n\n function burn(uint256 _value) returns (bool){\n balances[msg.sender] = safeSub(balances[msg.sender], _value) ;\n totalSupply = safeSub(totalSupply, _value);\n Transfer(msg.sender, 0x0, _value);\n return true;\n }\n\n function transfer(address _to, uint _value) onlyUnlocked returns (bool) {\n balances[msg.sender] = safeSub(balances[msg.sender], _value);\n balances[_to] = safeAdd(balances[_to], _value);\n Transfer(msg.sender, _to, _value);\n return true;\n }\n\n function transferFrom(address _from, address _to, uint _value) onlyUnlocked returns (bool) {\n var _allowance = allowed[_from][msg.sender];\n \n balances[_to] = safeAdd(balances[_to], _value);\n balances[_from] = safeSub(balances[_from], _value);\n allowed[_from][msg.sender] = safeSub(_allowance, _value);\n Transfer(_from, _to, _value);\n return true;\n }\n\n function balanceOf(address _owner) constant returns (uint balance) {\n return balances[_owner];\n }\n\n function approve(address _spender, uint _value) returns (bool) {\n allowed[msg.sender][_spender] = _value;\n Approval(msg.sender, _spender, _value);\n return true;\n }\n\n /* Approve and then comunicate the approved contract in a single tx */\n function approveAndCall(address _spender, uint256 _value, bytes _extraData){ \n TokenSpender spender = TokenSpender(_spender);\n if (approve(_spender, _value)) {\n spender.receiveApproval(msg.sender, _value, this, _extraData);\n }\n }\n\n function allowance(address _owner, address _spender) constant returns (uint remaining) {\n return allowed[_owner][_spender];\n }\n \n}\n\n", + "sourcePath": "rlc-token/contracts/RLC.sol", + "ast": { + "attributes": { + "absolutePath": "rlc-token/contracts/RLC.sol", + "exportedSymbols": { + "RLC": [ + 1374 + ] + } + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + "^", + "0.4", + ".8" + ] + }, + "id": 1047, + "name": "PragmaDirective", + "src": "0:23:7" + }, + { + "attributes": { + "SourceUnit": 1046, + "absolutePath": "rlc-token/contracts/Ownable.sol", + "file": "./Ownable.sol", + "scope": 1375, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 1048, + "name": "ImportDirective", + "src": "25:23:7" + }, + { + "attributes": { + "SourceUnit": 1571, + "absolutePath": "rlc-token/contracts/SafeMath.sol", + "file": "./SafeMath.sol", + "scope": 1375, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 1049, + "name": "ImportDirective", + "src": "49:24:7" + }, + { + "attributes": { + "SourceUnit": 1005, + "absolutePath": "rlc-token/contracts/ERC20.sol", + "file": "./ERC20.sol", + "scope": 1375, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 1050, + "name": "ImportDirective", + "src": "74:21:7" + }, + { + "attributes": { + "SourceUnit": 1585, + "absolutePath": "rlc-token/contracts/TokenSpender.sol", + "file": "./TokenSpender.sol", + "scope": 1375, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 1051, + "name": "ImportDirective", + "src": "96:28:7" + }, + { + "attributes": { + "contractDependencies": [ + 1004, + 1045, + 1570 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1374, + 1045, + 1570, + 1004 + ], + "name": "RLC", + "scope": 1375 + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ] + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "ERC20", + "referencedDeclaration": 1004, + "type": "contract ERC20" + }, + "id": 1052, + "name": "UserDefinedTypeName", + "src": "141:5:7" + } + ], + "id": 1053, + "name": "InheritanceSpecifier", + "src": "141:5:7" + }, + { + "attributes": { + "arguments": [ + null + ] + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "SafeMath", + "referencedDeclaration": 1570, + "type": "contract SafeMath" + }, + "id": 1054, + "name": "UserDefinedTypeName", + "src": "148:8:7" + } + ], + "id": 1055, + "name": "InheritanceSpecifier", + "src": "148:8:7" + }, + { + "attributes": { + "arguments": [ + null + ] + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "Ownable", + "referencedDeclaration": 1045, + "type": "contract Ownable" + }, + "id": 1056, + "name": "UserDefinedTypeName", + "src": "158:7:7" + } + ], + "id": 1057, + "name": "InheritanceSpecifier", + "src": "158:7:7" + }, + { + "attributes": { + "constant": false, + "name": "name", + "scope": 1374, + "stateVariable": true, + "storageLocation": "default", + "type": "string storage ref", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string storage pointer" + }, + "id": 1058, + "name": "ElementaryTypeName", + "src": "211:6:7" + } + ], + "id": 1059, + "name": "VariableDeclaration", + "src": "211:18:7" + }, + { + "attributes": { + "constant": false, + "name": "symbol", + "scope": 1374, + "stateVariable": true, + "storageLocation": "default", + "type": "string storage ref", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string storage pointer" + }, + "id": 1060, + "name": "ElementaryTypeName", + "src": "252:6:7" + } + ], + "id": 1061, + "name": "VariableDeclaration", + "src": "252:20:7" + }, + { + "attributes": { + "constant": false, + "name": "decimals", + "scope": 1374, + "stateVariable": true, + "storageLocation": "default", + "type": "uint8", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 1062, + "name": "ElementaryTypeName", + "src": "276:5:7" + } + ], + "id": 1063, + "name": "VariableDeclaration", + "src": "276:21:7" + }, + { + "attributes": { + "constant": false, + "name": "version", + "scope": 1374, + "stateVariable": true, + "storageLocation": "default", + "type": "string storage ref", + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string storage pointer" + }, + "id": 1064, + "name": "ElementaryTypeName", + "src": "333:6:7" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "76302e31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"v0.1\"", + "value": "v0.1" + }, + "id": 1065, + "name": "Literal", + "src": "357:6:7" + } + ], + "id": 1066, + "name": "VariableDeclaration", + "src": "333:30:7" + }, + { + "attributes": { + "constant": false, + "name": "initialSupply", + "scope": 1374, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1067, + "name": "ElementaryTypeName", + "src": "368:4:7" + } + ], + "id": 1068, + "name": "VariableDeclaration", + "src": "368:25:7" + }, + { + "attributes": { + "constant": false, + "name": "totalSupply", + "scope": 1374, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1069, + "name": "ElementaryTypeName", + "src": "397:4:7" + } + ], + "id": 1070, + "name": "VariableDeclaration", + "src": "397:23:7" + }, + { + "attributes": { + "constant": false, + "name": "locked", + "scope": 1374, + "stateVariable": true, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1071, + "name": "ElementaryTypeName", + "src": "424:4:7" + } + ], + "id": 1072, + "name": "VariableDeclaration", + "src": "424:18:7" + }, + { + "attributes": { + "constant": false, + "name": "balances", + "scope": 1374, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => uint256)", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => uint256)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 1073, + "name": "ElementaryTypeName", + "src": "484:7:7" + }, + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1074, + "name": "ElementaryTypeName", + "src": "495:4:7" + } + ], + "id": 1075, + "name": "Mapping", + "src": "476:24:7" + } + ], + "id": 1076, + "name": "VariableDeclaration", + "src": "476:33:7" + }, + { + "attributes": { + "constant": false, + "name": "allowed", + "scope": 1374, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => mapping(address => uint256))", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => mapping(address => uint256))" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 1077, + "name": "ElementaryTypeName", + "src": "522:7:7" + }, + { + "attributes": { + "type": "mapping(address => uint256)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 1078, + "name": "ElementaryTypeName", + "src": "542:7:7" + }, + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1079, + "name": "ElementaryTypeName", + "src": "553:4:7" + } + ], + "id": 1080, + "name": "Mapping", + "src": "533:25:7" + } + ], + "id": 1081, + "name": "Mapping", + "src": "513:46:7" + } + ], + "id": 1082, + "name": "VariableDeclaration", + "src": "513:54:7" + }, + { + "attributes": { + "name": "onlyUnlocked", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1083, + "name": "ParameterList", + "src": "627:2:7" + }, + { + "children": [ + { + "attributes": { + "falseBody": null + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "&&", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1596, + "type": "msg", + "value": "msg" + }, + "id": 1084, + "name": "Identifier", + "src": "640:3:7" + } + ], + "id": 1085, + "name": "MemberAccess", + "src": "640:10:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1008, + "type": "address", + "value": "owner" + }, + "id": 1086, + "name": "Identifier", + "src": "654:5:7" + } + ], + "id": 1087, + "name": "BinaryOperation", + "src": "640:19:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1072, + "type": "bool", + "value": "locked" + }, + "id": 1088, + "name": "Identifier", + "src": "663:6:7" + } + ], + "id": 1089, + "name": "BinaryOperation", + "src": "640:29:7" + }, + { + "children": [], + "id": 1090, + "name": "Throw", + "src": "671:5:7" + } + ], + "id": 1091, + "name": "IfStatement", + "src": "636:40:7" + }, + { + "id": 1092, + "name": "PlaceholderStatement", + "src": "682:1:7" + } + ], + "id": 1093, + "name": "Block", + "src": "630:58:7" + } + ], + "id": 1094, + "name": "ModifierDefinition", + "src": "606:82:7" + }, + { + "attributes": { + "constant": false, + "implemented": true, + "isConstructor": true, + "modifiers": [ + null + ], + "name": "RLC", + "payable": false, + "scope": 1374, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1095, + "name": "ParameterList", + "src": "785:2:7" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1096, + "name": "ParameterList", + "src": "788:0:7" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1072, + "type": "bool", + "value": "locked" + }, + "id": 1097, + "name": "Identifier", + "src": "849:6:7" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1098, + "name": "Literal", + "src": "858:4:7" + } + ], + "id": 1099, + "name": "Assignment", + "src": "849:13:7" + } + ], + "id": 1100, + "name": "ExpressionStatement", + "src": "849:13:7" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1068, + "type": "uint256", + "value": "initialSupply" + }, + "id": 1101, + "name": "Identifier", + "src": "952:13:7" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "3837303030303030303030303030303030", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 87000000000000000", + "value": "87000000000000000" + }, + "id": 1102, + "name": "Literal", + "src": "968:17:7" + } + ], + "id": 1103, + "name": "Assignment", + "src": "952:33:7" + } + ], + "id": 1104, + "name": "ExpressionStatement", + "src": "952:33:7" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1070, + "type": "uint256", + "value": "totalSupply" + }, + "id": 1105, + "name": "Identifier", + "src": "991:11:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1068, + "type": "uint256", + "value": "initialSupply" + }, + "id": 1106, + "name": "Identifier", + "src": "1005:13:7" + } + ], + "id": 1107, + "name": "Assignment", + "src": "991:27:7" + } + ], + "id": 1108, + "name": "ExpressionStatement", + "src": "991:27:7" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1076, + "type": "mapping(address => uint256)", + "value": "balances" + }, + "id": 1109, + "name": "Identifier", + "src": "1024:8:7" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1596, + "type": "msg", + "value": "msg" + }, + "id": 1110, + "name": "Identifier", + "src": "1033:3:7" + } + ], + "id": 1111, + "name": "MemberAccess", + "src": "1033:10:7" + } + ], + "id": 1112, + "name": "IndexAccess", + "src": "1024:20:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1068, + "type": "uint256", + "value": "initialSupply" + }, + "id": 1113, + "name": "Identifier", + "src": "1047:13:7" + } + ], + "id": 1114, + "name": "Assignment", + "src": "1024:36:7" + } + ], + "id": 1115, + "name": "ExpressionStatement", + "src": "1024:36:7" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1059, + "type": "string storage ref", + "value": "name" + }, + "id": 1116, + "name": "Identifier", + "src": "1124:4:7" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "6945782e6563204e6574776f726b20546f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"iEx.ec Network Token\"", + "value": "iEx.ec Network Token" + }, + "id": 1117, + "name": "Literal", + "src": "1131:22:7" + } + ], + "id": 1118, + "name": "Assignment", + "src": "1124:29:7" + } + ], + "id": 1119, + "name": "ExpressionStatement", + "src": "1124:29:7" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1061, + "type": "string storage ref", + "value": "symbol" + }, + "id": 1120, + "name": "Identifier", + "src": "1208:6:7" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "524c43", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"RLC\"", + "value": "RLC" + }, + "id": 1121, + "name": "Literal", + "src": "1217:5:7" + } + ], + "id": 1122, + "name": "Assignment", + "src": "1208:14:7" + } + ], + "id": 1123, + "name": "ExpressionStatement", + "src": "1208:14:7" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1063, + "type": "uint8", + "value": "decimals" + }, + "id": 1124, + "name": "Identifier", + "src": "1291:8:7" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "39", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 9", + "value": "9" + }, + "id": 1125, + "name": "Literal", + "src": "1302:1:7" + } + ], + "id": 1126, + "name": "Assignment", + "src": "1291:12:7" + } + ], + "id": 1127, + "name": "ExpressionStatement", + "src": "1291:12:7" + } + ], + "id": 1128, + "name": "Block", + "src": "788:586:7" + } + ], + "id": 1129, + "name": "FunctionDefinition", + "src": "773:601:7" + }, + { + "attributes": { + "constant": false, + "implemented": true, + "isConstructor": false, + "name": "unlock", + "payable": false, + "scope": 1374, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1130, + "name": "ParameterList", + "src": "1393:2:7" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1133, + "name": "ParameterList", + "src": "1406:0:7" + }, + { + "attributes": { + "arguments": [ + null + ] + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1026, + "type": "modifier ()", + "value": "onlyOwner" + }, + "id": 1131, + "name": "Identifier", + "src": "1396:9:7" + } + ], + "id": 1132, + "name": "ModifierInvocation", + "src": "1396:9:7" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1072, + "type": "bool", + "value": "locked" + }, + "id": 1134, + "name": "Identifier", + "src": "1412:6:7" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 1135, + "name": "Literal", + "src": "1421:5:7" + } + ], + "id": 1136, + "name": "Assignment", + "src": "1412:14:7" + } + ], + "id": 1137, + "name": "ExpressionStatement", + "src": "1412:14:7" + } + ], + "id": 1138, + "name": "Block", + "src": "1406:25:7" + } + ], + "id": 1139, + "name": "FunctionDefinition", + "src": "1378:53:7" + }, + { + "attributes": { + "constant": false, + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "burn", + "payable": false, + "scope": 1374, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "_value", + "scope": 1176, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1140, + "name": "ElementaryTypeName", + "src": "1449:7:7" + } + ], + "id": 1141, + "name": "VariableDeclaration", + "src": "1449:14:7" + } + ], + "id": 1142, + "name": "ParameterList", + "src": "1448:16:7" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 1176, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1143, + "name": "ElementaryTypeName", + "src": "1474:4:7" + } + ], + "id": 1144, + "name": "VariableDeclaration", + "src": "1474:4:7" + } + ], + "id": 1145, + "name": "ParameterList", + "src": "1473:6:7" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1076, + "type": "mapping(address => uint256)", + "value": "balances" + }, + "id": 1146, + "name": "Identifier", + "src": "1485:8:7" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1596, + "type": "msg", + "value": "msg" + }, + "id": 1147, + "name": "Identifier", + "src": "1494:3:7" + } + ], + "id": 1148, + "name": "MemberAccess", + "src": "1494:10:7" + } + ], + "id": 1149, + "name": "IndexAccess", + "src": "1485:20:7" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1462, + "type": "function (uint256,uint256) returns (uint256)", + "value": "safeSub" + }, + "id": 1150, + "name": "Identifier", + "src": "1508:7:7" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1076, + "type": "mapping(address => uint256)", + "value": "balances" + }, + "id": 1151, + "name": "Identifier", + "src": "1516:8:7" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1596, + "type": "msg", + "value": "msg" + }, + "id": 1152, + "name": "Identifier", + "src": "1525:3:7" + } + ], + "id": 1153, + "name": "MemberAccess", + "src": "1525:10:7" + } + ], + "id": 1154, + "name": "IndexAccess", + "src": "1516:20:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1141, + "type": "uint256", + "value": "_value" + }, + "id": 1155, + "name": "Identifier", + "src": "1538:6:7" + } + ], + "id": 1156, + "name": "FunctionCall", + "src": "1508:37:7" + } + ], + "id": 1157, + "name": "Assignment", + "src": "1485:60:7" + } + ], + "id": 1158, + "name": "ExpressionStatement", + "src": "1485:60:7" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1070, + "type": "uint256", + "value": "totalSupply" + }, + "id": 1159, + "name": "Identifier", + "src": "1552:11:7" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1462, + "type": "function (uint256,uint256) returns (uint256)", + "value": "safeSub" + }, + "id": 1160, + "name": "Identifier", + "src": "1566:7:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1070, + "type": "uint256", + "value": "totalSupply" + }, + "id": 1161, + "name": "Identifier", + "src": "1574:11:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1141, + "type": "uint256", + "value": "_value" + }, + "id": 1162, + "name": "Identifier", + "src": "1587:6:7" + } + ], + "id": 1163, + "name": "FunctionCall", + "src": "1566:28:7" + } + ], + "id": 1164, + "name": "Assignment", + "src": "1552:42:7" + } + ], + "id": 1165, + "name": "ExpressionStatement", + "src": "1552:42:7" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 995, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 1166, + "name": "Identifier", + "src": "1600:8:7" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1596, + "type": "msg", + "value": "msg" + }, + "id": 1167, + "name": "Identifier", + "src": "1609:3:7" + } + ], + "id": 1168, + "name": "MemberAccess", + "src": "1609:10:7" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "307830", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0x0" + }, + "id": 1169, + "name": "Literal", + "src": "1621:3:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1141, + "type": "uint256", + "value": "_value" + }, + "id": 1170, + "name": "Identifier", + "src": "1626:6:7" + } + ], + "id": 1171, + "name": "FunctionCall", + "src": "1600:33:7" + } + ], + "id": 1172, + "name": "ExpressionStatement", + "src": "1600:33:7" + }, + { + "attributes": { + "functionReturnParameters": 1145 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1173, + "name": "Literal", + "src": "1646:4:7" + } + ], + "id": 1174, + "name": "Return", + "src": "1639:11:7" + } + ], + "id": 1175, + "name": "Block", + "src": "1479:176:7" + } + ], + "id": 1176, + "name": "FunctionDefinition", + "src": "1435:220:7" + }, + { + "attributes": { + "constant": false, + "implemented": true, + "isConstructor": false, + "name": "transfer", + "payable": false, + "scope": 1374, + "stateMutability": "nonpayable", + "superFunction": 967, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "_to", + "scope": 1221, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 1177, + "name": "ElementaryTypeName", + "src": "1677:7:7" + } + ], + "id": 1178, + "name": "VariableDeclaration", + "src": "1677:11:7" + }, + { + "attributes": { + "constant": false, + "name": "_value", + "scope": 1221, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1179, + "name": "ElementaryTypeName", + "src": "1690:4:7" + } + ], + "id": 1180, + "name": "VariableDeclaration", + "src": "1690:11:7" + } + ], + "id": 1181, + "name": "ParameterList", + "src": "1676:26:7" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 1221, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1184, + "name": "ElementaryTypeName", + "src": "1725:4:7" + } + ], + "id": 1185, + "name": "VariableDeclaration", + "src": "1725:4:7" + } + ], + "id": 1186, + "name": "ParameterList", + "src": "1724:6:7" + }, + { + "attributes": { + "arguments": [ + null + ] + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1094, + "type": "modifier ()", + "value": "onlyUnlocked" + }, + "id": 1182, + "name": "Identifier", + "src": "1703:12:7" + } + ], + "id": 1183, + "name": "ModifierInvocation", + "src": "1703:12:7" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1076, + "type": "mapping(address => uint256)", + "value": "balances" + }, + "id": 1187, + "name": "Identifier", + "src": "1737:8:7" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1596, + "type": "msg", + "value": "msg" + }, + "id": 1188, + "name": "Identifier", + "src": "1746:3:7" + } + ], + "id": 1189, + "name": "MemberAccess", + "src": "1746:10:7" + } + ], + "id": 1190, + "name": "IndexAccess", + "src": "1737:20:7" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1462, + "type": "function (uint256,uint256) returns (uint256)", + "value": "safeSub" + }, + "id": 1191, + "name": "Identifier", + "src": "1760:7:7" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1076, + "type": "mapping(address => uint256)", + "value": "balances" + }, + "id": 1192, + "name": "Identifier", + "src": "1768:8:7" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1596, + "type": "msg", + "value": "msg" + }, + "id": 1193, + "name": "Identifier", + "src": "1777:3:7" + } + ], + "id": 1194, + "name": "MemberAccess", + "src": "1777:10:7" + } + ], + "id": 1195, + "name": "IndexAccess", + "src": "1768:20:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1180, + "type": "uint256", + "value": "_value" + }, + "id": 1196, + "name": "Identifier", + "src": "1790:6:7" + } + ], + "id": 1197, + "name": "FunctionCall", + "src": "1760:37:7" + } + ], + "id": 1198, + "name": "Assignment", + "src": "1737:60:7" + } + ], + "id": 1199, + "name": "ExpressionStatement", + "src": "1737:60:7" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1076, + "type": "mapping(address => uint256)", + "value": "balances" + }, + "id": 1200, + "name": "Identifier", + "src": "1803:8:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1178, + "type": "address", + "value": "_to" + }, + "id": 1201, + "name": "Identifier", + "src": "1812:3:7" + } + ], + "id": 1202, + "name": "IndexAccess", + "src": "1803:13:7" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1490, + "type": "function (uint256,uint256) returns (uint256)", + "value": "safeAdd" + }, + "id": 1203, + "name": "Identifier", + "src": "1819:7:7" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1076, + "type": "mapping(address => uint256)", + "value": "balances" + }, + "id": 1204, + "name": "Identifier", + "src": "1827:8:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1178, + "type": "address", + "value": "_to" + }, + "id": 1205, + "name": "Identifier", + "src": "1836:3:7" + } + ], + "id": 1206, + "name": "IndexAccess", + "src": "1827:13:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1180, + "type": "uint256", + "value": "_value" + }, + "id": 1207, + "name": "Identifier", + "src": "1842:6:7" + } + ], + "id": 1208, + "name": "FunctionCall", + "src": "1819:30:7" + } + ], + "id": 1209, + "name": "Assignment", + "src": "1803:46:7" + } + ], + "id": 1210, + "name": "ExpressionStatement", + "src": "1803:46:7" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 995, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 1211, + "name": "Identifier", + "src": "1855:8:7" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1596, + "type": "msg", + "value": "msg" + }, + "id": 1212, + "name": "Identifier", + "src": "1864:3:7" + } + ], + "id": 1213, + "name": "MemberAccess", + "src": "1864:10:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1178, + "type": "address", + "value": "_to" + }, + "id": 1214, + "name": "Identifier", + "src": "1876:3:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1180, + "type": "uint256", + "value": "_value" + }, + "id": 1215, + "name": "Identifier", + "src": "1881:6:7" + } + ], + "id": 1216, + "name": "FunctionCall", + "src": "1855:33:7" + } + ], + "id": 1217, + "name": "ExpressionStatement", + "src": "1855:33:7" + }, + { + "attributes": { + "functionReturnParameters": 1186 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1218, + "name": "Literal", + "src": "1901:4:7" + } + ], + "id": 1219, + "name": "Return", + "src": "1894:11:7" + } + ], + "id": 1220, + "name": "Block", + "src": "1731:179:7" + } + ], + "id": 1221, + "name": "FunctionDefinition", + "src": "1659:251:7" + }, + { + "attributes": { + "constant": false, + "implemented": true, + "isConstructor": false, + "name": "transferFrom", + "payable": false, + "scope": 1374, + "stateMutability": "nonpayable", + "superFunction": 978, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "_from", + "scope": 1285, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 1222, + "name": "ElementaryTypeName", + "src": "1936:7:7" + } + ], + "id": 1223, + "name": "VariableDeclaration", + "src": "1936:13:7" + }, + { + "attributes": { + "constant": false, + "name": "_to", + "scope": 1285, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 1224, + "name": "ElementaryTypeName", + "src": "1951:7:7" + } + ], + "id": 1225, + "name": "VariableDeclaration", + "src": "1951:11:7" + }, + { + "attributes": { + "constant": false, + "name": "_value", + "scope": 1285, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1226, + "name": "ElementaryTypeName", + "src": "1964:4:7" + } + ], + "id": 1227, + "name": "VariableDeclaration", + "src": "1964:11:7" + } + ], + "id": 1228, + "name": "ParameterList", + "src": "1935:41:7" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 1285, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1231, + "name": "ElementaryTypeName", + "src": "1999:4:7" + } + ], + "id": 1232, + "name": "VariableDeclaration", + "src": "1999:4:7" + } + ], + "id": 1233, + "name": "ParameterList", + "src": "1998:6:7" + }, + { + "attributes": { + "arguments": [ + null + ] + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1094, + "type": "modifier ()", + "value": "onlyUnlocked" + }, + "id": 1229, + "name": "Identifier", + "src": "1977:12:7" + } + ], + "id": 1230, + "name": "ModifierInvocation", + "src": "1977:12:7" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1234 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "_allowance", + "scope": 1285, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "typeName": null, + "value": null, + "visibility": "internal" + }, + "children": [], + "id": 1234, + "name": "VariableDeclaration", + "src": "2011:14:7" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(address => uint256)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1082, + "type": "mapping(address => mapping(address => uint256))", + "value": "allowed" + }, + "id": 1235, + "name": "Identifier", + "src": "2028:7:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1223, + "type": "address", + "value": "_from" + }, + "id": 1236, + "name": "Identifier", + "src": "2036:5:7" + } + ], + "id": 1237, + "name": "IndexAccess", + "src": "2028:14:7" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1596, + "type": "msg", + "value": "msg" + }, + "id": 1238, + "name": "Identifier", + "src": "2043:3:7" + } + ], + "id": 1239, + "name": "MemberAccess", + "src": "2043:10:7" + } + ], + "id": 1240, + "name": "IndexAccess", + "src": "2028:26:7" + } + ], + "id": 1241, + "name": "VariableDeclarationStatement", + "src": "2011:43:7" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1076, + "type": "mapping(address => uint256)", + "value": "balances" + }, + "id": 1242, + "name": "Identifier", + "src": "2065:8:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1225, + "type": "address", + "value": "_to" + }, + "id": 1243, + "name": "Identifier", + "src": "2074:3:7" + } + ], + "id": 1244, + "name": "IndexAccess", + "src": "2065:13:7" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1490, + "type": "function (uint256,uint256) returns (uint256)", + "value": "safeAdd" + }, + "id": 1245, + "name": "Identifier", + "src": "2081:7:7" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1076, + "type": "mapping(address => uint256)", + "value": "balances" + }, + "id": 1246, + "name": "Identifier", + "src": "2089:8:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1225, + "type": "address", + "value": "_to" + }, + "id": 1247, + "name": "Identifier", + "src": "2098:3:7" + } + ], + "id": 1248, + "name": "IndexAccess", + "src": "2089:13:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1227, + "type": "uint256", + "value": "_value" + }, + "id": 1249, + "name": "Identifier", + "src": "2104:6:7" + } + ], + "id": 1250, + "name": "FunctionCall", + "src": "2081:30:7" + } + ], + "id": 1251, + "name": "Assignment", + "src": "2065:46:7" + } + ], + "id": 1252, + "name": "ExpressionStatement", + "src": "2065:46:7" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1076, + "type": "mapping(address => uint256)", + "value": "balances" + }, + "id": 1253, + "name": "Identifier", + "src": "2117:8:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1223, + "type": "address", + "value": "_from" + }, + "id": 1254, + "name": "Identifier", + "src": "2126:5:7" + } + ], + "id": 1255, + "name": "IndexAccess", + "src": "2117:15:7" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1462, + "type": "function (uint256,uint256) returns (uint256)", + "value": "safeSub" + }, + "id": 1256, + "name": "Identifier", + "src": "2135:7:7" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1076, + "type": "mapping(address => uint256)", + "value": "balances" + }, + "id": 1257, + "name": "Identifier", + "src": "2143:8:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1223, + "type": "address", + "value": "_from" + }, + "id": 1258, + "name": "Identifier", + "src": "2152:5:7" + } + ], + "id": 1259, + "name": "IndexAccess", + "src": "2143:15:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1227, + "type": "uint256", + "value": "_value" + }, + "id": 1260, + "name": "Identifier", + "src": "2160:6:7" + } + ], + "id": 1261, + "name": "FunctionCall", + "src": "2135:32:7" + } + ], + "id": 1262, + "name": "Assignment", + "src": "2117:50:7" + } + ], + "id": 1263, + "name": "ExpressionStatement", + "src": "2117:50:7" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(address => uint256)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1082, + "type": "mapping(address => mapping(address => uint256))", + "value": "allowed" + }, + "id": 1264, + "name": "Identifier", + "src": "2173:7:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1223, + "type": "address", + "value": "_from" + }, + "id": 1265, + "name": "Identifier", + "src": "2181:5:7" + } + ], + "id": 1268, + "name": "IndexAccess", + "src": "2173:14:7" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1596, + "type": "msg", + "value": "msg" + }, + "id": 1266, + "name": "Identifier", + "src": "2188:3:7" + } + ], + "id": 1267, + "name": "MemberAccess", + "src": "2188:10:7" + } + ], + "id": 1269, + "name": "IndexAccess", + "src": "2173:26:7" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1462, + "type": "function (uint256,uint256) returns (uint256)", + "value": "safeSub" + }, + "id": 1270, + "name": "Identifier", + "src": "2202:7:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1234, + "type": "uint256", + "value": "_allowance" + }, + "id": 1271, + "name": "Identifier", + "src": "2210:10:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1227, + "type": "uint256", + "value": "_value" + }, + "id": 1272, + "name": "Identifier", + "src": "2222:6:7" + } + ], + "id": 1273, + "name": "FunctionCall", + "src": "2202:27:7" + } + ], + "id": 1274, + "name": "Assignment", + "src": "2173:56:7" + } + ], + "id": 1275, + "name": "ExpressionStatement", + "src": "2173:56:7" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 995, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 1276, + "name": "Identifier", + "src": "2235:8:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1223, + "type": "address", + "value": "_from" + }, + "id": 1277, + "name": "Identifier", + "src": "2244:5:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1225, + "type": "address", + "value": "_to" + }, + "id": 1278, + "name": "Identifier", + "src": "2251:3:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1227, + "type": "uint256", + "value": "_value" + }, + "id": 1279, + "name": "Identifier", + "src": "2256:6:7" + } + ], + "id": 1280, + "name": "FunctionCall", + "src": "2235:28:7" + } + ], + "id": 1281, + "name": "ExpressionStatement", + "src": "2235:28:7" + }, + { + "attributes": { + "functionReturnParameters": 1233 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1282, + "name": "Literal", + "src": "2276:4:7" + } + ], + "id": 1283, + "name": "Return", + "src": "2269:11:7" + } + ], + "id": 1284, + "name": "Block", + "src": "2005:280:7" + } + ], + "id": 1285, + "name": "FunctionDefinition", + "src": "1914:371:7" + }, + { + "attributes": { + "constant": true, + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "balanceOf", + "payable": false, + "scope": 1374, + "stateMutability": "view", + "superFunction": 949, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "_owner", + "scope": 1297, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 1286, + "name": "ElementaryTypeName", + "src": "2308:7:7" + } + ], + "id": 1287, + "name": "VariableDeclaration", + "src": "2308:14:7" + } + ], + "id": 1288, + "name": "ParameterList", + "src": "2307:16:7" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "balance", + "scope": 1297, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1289, + "name": "ElementaryTypeName", + "src": "2342:4:7" + } + ], + "id": 1290, + "name": "VariableDeclaration", + "src": "2342:12:7" + } + ], + "id": 1291, + "name": "ParameterList", + "src": "2341:14:7" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1291 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1076, + "type": "mapping(address => uint256)", + "value": "balances" + }, + "id": 1292, + "name": "Identifier", + "src": "2369:8:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1287, + "type": "address", + "value": "_owner" + }, + "id": 1293, + "name": "Identifier", + "src": "2378:6:7" + } + ], + "id": 1294, + "name": "IndexAccess", + "src": "2369:16:7" + } + ], + "id": 1295, + "name": "Return", + "src": "2362:23:7" + } + ], + "id": 1296, + "name": "Block", + "src": "2356:34:7" + } + ], + "id": 1297, + "name": "FunctionDefinition", + "src": "2289:101:7" + }, + { + "attributes": { + "constant": false, + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "approve", + "payable": false, + "scope": 1374, + "stateMutability": "nonpayable", + "superFunction": 987, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "_spender", + "scope": 1325, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 1298, + "name": "ElementaryTypeName", + "src": "2411:7:7" + } + ], + "id": 1299, + "name": "VariableDeclaration", + "src": "2411:16:7" + }, + { + "attributes": { + "constant": false, + "name": "_value", + "scope": 1325, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1300, + "name": "ElementaryTypeName", + "src": "2429:4:7" + } + ], + "id": 1301, + "name": "VariableDeclaration", + "src": "2429:11:7" + } + ], + "id": 1302, + "name": "ParameterList", + "src": "2410:31:7" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 1325, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1303, + "name": "ElementaryTypeName", + "src": "2451:4:7" + } + ], + "id": 1304, + "name": "VariableDeclaration", + "src": "2451:4:7" + } + ], + "id": 1305, + "name": "ParameterList", + "src": "2450:6:7" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(address => uint256)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1082, + "type": "mapping(address => mapping(address => uint256))", + "value": "allowed" + }, + "id": 1306, + "name": "Identifier", + "src": "2463:7:7" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1596, + "type": "msg", + "value": "msg" + }, + "id": 1307, + "name": "Identifier", + "src": "2471:3:7" + } + ], + "id": 1308, + "name": "MemberAccess", + "src": "2471:10:7" + } + ], + "id": 1310, + "name": "IndexAccess", + "src": "2463:19:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1299, + "type": "address", + "value": "_spender" + }, + "id": 1309, + "name": "Identifier", + "src": "2483:8:7" + } + ], + "id": 1311, + "name": "IndexAccess", + "src": "2463:29:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1301, + "type": "uint256", + "value": "_value" + }, + "id": 1312, + "name": "Identifier", + "src": "2495:6:7" + } + ], + "id": 1313, + "name": "Assignment", + "src": "2463:38:7" + } + ], + "id": 1314, + "name": "ExpressionStatement", + "src": "2463:38:7" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1003, + "type": "function (address,address,uint256)", + "value": "Approval" + }, + "id": 1315, + "name": "Identifier", + "src": "2507:8:7" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1596, + "type": "msg", + "value": "msg" + }, + "id": 1316, + "name": "Identifier", + "src": "2516:3:7" + } + ], + "id": 1317, + "name": "MemberAccess", + "src": "2516:10:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1299, + "type": "address", + "value": "_spender" + }, + "id": 1318, + "name": "Identifier", + "src": "2528:8:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1301, + "type": "uint256", + "value": "_value" + }, + "id": 1319, + "name": "Identifier", + "src": "2538:6:7" + } + ], + "id": 1320, + "name": "FunctionCall", + "src": "2507:38:7" + } + ], + "id": 1321, + "name": "ExpressionStatement", + "src": "2507:38:7" + }, + { + "attributes": { + "functionReturnParameters": 1305 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1322, + "name": "Literal", + "src": "2558:4:7" + } + ], + "id": 1323, + "name": "Return", + "src": "2551:11:7" + } + ], + "id": 1324, + "name": "Block", + "src": "2457:110:7" + } + ], + "id": 1325, + "name": "FunctionDefinition", + "src": "2394:173:7" + }, + { + "attributes": { + "constant": false, + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "approveAndCall", + "payable": false, + "scope": 1374, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "_spender", + "scope": 1357, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 1326, + "name": "ElementaryTypeName", + "src": "2670:7:7" + } + ], + "id": 1327, + "name": "VariableDeclaration", + "src": "2670:16:7" + }, + { + "attributes": { + "constant": false, + "name": "_value", + "scope": 1357, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1328, + "name": "ElementaryTypeName", + "src": "2688:7:7" + } + ], + "id": 1329, + "name": "VariableDeclaration", + "src": "2688:14:7" + }, + { + "attributes": { + "constant": false, + "name": "_extraData", + "scope": 1357, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes memory", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes storage pointer" + }, + "id": 1330, + "name": "ElementaryTypeName", + "src": "2704:5:7" + } + ], + "id": 1331, + "name": "VariableDeclaration", + "src": "2704:16:7" + } + ], + "id": 1332, + "name": "ParameterList", + "src": "2669:52:7" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1333, + "name": "ParameterList", + "src": "2721:0:7" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1335 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "spender", + "scope": 1357, + "stateVariable": false, + "storageLocation": "default", + "type": "contract TokenSpender", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "TokenSpender", + "referencedDeclaration": 1584, + "type": "contract TokenSpender" + }, + "id": 1334, + "name": "UserDefinedTypeName", + "src": "2733:12:7" + } + ], + "id": 1335, + "name": "VariableDeclaration", + "src": "2733:20:7" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "contract TokenSpender", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1584, + "type": "type(contract TokenSpender)", + "value": "TokenSpender" + }, + "id": 1336, + "name": "Identifier", + "src": "2756:12:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1327, + "type": "address", + "value": "_spender" + }, + "id": 1337, + "name": "Identifier", + "src": "2769:8:7" + } + ], + "id": 1338, + "name": "FunctionCall", + "src": "2756:22:7" + } + ], + "id": 1339, + "name": "VariableDeclarationStatement", + "src": "2733:45:7" + }, + { + "attributes": { + "falseBody": null + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + 1325 + ], + "referencedDeclaration": 1325, + "type": "function (address,uint256) returns (bool)", + "value": "approve" + }, + "id": 1340, + "name": "Identifier", + "src": "2790:7:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1327, + "type": "address", + "value": "_spender" + }, + "id": 1341, + "name": "Identifier", + "src": "2798:8:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1329, + "type": "uint256", + "value": "_value" + }, + "id": 1342, + "name": "Identifier", + "src": "2808:6:7" + } + ], + "id": 1343, + "name": "FunctionCall", + "src": "2790:25:7" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_contract$_RLC_$1374", + "typeString": "contract RLC" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "receiveApproval", + "referencedDeclaration": 1583, + "type": "function (address,uint256,address,bytes memory) external" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1335, + "type": "contract TokenSpender", + "value": "spender" + }, + "id": 1344, + "name": "Identifier", + "src": "2829:7:7" + } + ], + "id": 1346, + "name": "MemberAccess", + "src": "2829:23:7" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1596, + "type": "msg", + "value": "msg" + }, + "id": 1347, + "name": "Identifier", + "src": "2853:3:7" + } + ], + "id": 1348, + "name": "MemberAccess", + "src": "2853:10:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1329, + "type": "uint256", + "value": "_value" + }, + "id": 1349, + "name": "Identifier", + "src": "2865:6:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1615, + "type": "contract RLC", + "value": "this" + }, + "id": 1350, + "name": "Identifier", + "src": "2873:4:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1331, + "type": "bytes memory", + "value": "_extraData" + }, + "id": 1351, + "name": "Identifier", + "src": "2879:10:7" + } + ], + "id": 1352, + "name": "FunctionCall", + "src": "2829:61:7" + } + ], + "id": 1353, + "name": "ExpressionStatement", + "src": "2829:61:7" + } + ], + "id": 1354, + "name": "Block", + "src": "2817:82:7" + } + ], + "id": 1355, + "name": "IfStatement", + "src": "2786:113:7" + } + ], + "id": 1356, + "name": "Block", + "src": "2721:182:7" + } + ], + "id": 1357, + "name": "FunctionDefinition", + "src": "2646:257:7" + }, + { + "attributes": { + "constant": true, + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "allowance", + "payable": false, + "scope": 1374, + "stateMutability": "view", + "superFunction": 958, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "_owner", + "scope": 1373, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 1358, + "name": "ElementaryTypeName", + "src": "2926:7:7" + } + ], + "id": 1359, + "name": "VariableDeclaration", + "src": "2926:14:7" + }, + { + "attributes": { + "constant": false, + "name": "_spender", + "scope": 1373, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 1360, + "name": "ElementaryTypeName", + "src": "2942:7:7" + } + ], + "id": 1361, + "name": "VariableDeclaration", + "src": "2942:16:7" + } + ], + "id": 1362, + "name": "ParameterList", + "src": "2925:34:7" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "remaining", + "scope": 1373, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1363, + "name": "ElementaryTypeName", + "src": "2978:4:7" + } + ], + "id": 1364, + "name": "VariableDeclaration", + "src": "2978:14:7" + } + ], + "id": 1365, + "name": "ParameterList", + "src": "2977:16:7" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1365 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(address => uint256)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1082, + "type": "mapping(address => mapping(address => uint256))", + "value": "allowed" + }, + "id": 1366, + "name": "Identifier", + "src": "3007:7:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1359, + "type": "address", + "value": "_owner" + }, + "id": 1367, + "name": "Identifier", + "src": "3015:6:7" + } + ], + "id": 1368, + "name": "IndexAccess", + "src": "3007:15:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1361, + "type": "address", + "value": "_spender" + }, + "id": 1369, + "name": "Identifier", + "src": "3023:8:7" + } + ], + "id": 1370, + "name": "IndexAccess", + "src": "3007:25:7" + } + ], + "id": 1371, + "name": "Return", + "src": "3000:32:7" + } + ], + "id": 1372, + "name": "Block", + "src": "2994:43:7" + } + ], + "id": 1373, + "name": "FunctionDefinition", + "src": "2907:130:7" + } + ], + "id": 1374, + "name": "ContractDefinition", + "src": "125:2917:7" + } + ], + "id": 1375, + "name": "SourceUnit", + "src": "0:3044:7" + }, + "compiler": { + "name": "solc", + "version": "0.4.18+commit.9cf6e910.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "1.0.1", + "updatedAt": "2018-01-13T10:23:13.993Z" +} \ No newline at end of file diff --git a/build/contracts/SafeMath.json b/build/contracts/SafeMath.json new file mode 100644 index 0000000..4ba85c4 --- /dev/null +++ b/build/contracts/SafeMath.json @@ -0,0 +1,2694 @@ +{ + "contractName": "SafeMath", + "abi": [], + "bytecode": "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a723058200a92dfbff50f3579312bc0747a90124e83c060292fe7bd7a1b3809f470e320d30029", + "deployedBytecode": "0x6060604052600080fd00a165627a7a723058200a92dfbff50f3579312bc0747a90124e83c060292fe7bd7a1b3809f470e320d30029", + "sourceMap": "25:1056:8:-;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "25:1056:8:-;;;;;", + "source": "pragma solidity ^0.4.8;\n\ncontract SafeMath {\n function safeMul(uint a, uint b) internal returns (uint) {\n uint c = a * b;\n assert(a == 0 || c / a == b);\n return c;\n }\n\n function safeDiv(uint a, uint b) internal returns (uint) {\n assert(b > 0);\n uint c = a / b;\n assert(a == b * c + a % b);\n return c;\n }\n\n function safeSub(uint a, uint b) internal returns (uint) {\n assert(b <= a);\n return a - b;\n }\n\n function safeAdd(uint a, uint b) internal returns (uint) {\n uint c = a + b;\n assert(c>=a && c>=b);\n return c;\n }\n\n function max64(uint64 a, uint64 b) internal constant returns (uint64) {\n return a >= b ? a : b;\n }\n\n function min64(uint64 a, uint64 b) internal constant returns (uint64) {\n return a < b ? a : b;\n }\n\n function max256(uint256 a, uint256 b) internal constant returns (uint256) {\n return a >= b ? a : b;\n }\n\n function min256(uint256 a, uint256 b) internal constant returns (uint256) {\n return a < b ? a : b;\n }\n\n function assert(bool assertion) internal {\n if (!assertion) {\n throw;\n }\n }\n}", + "sourcePath": "rlc-token/contracts/SafeMath.sol", + "ast": { + "attributes": { + "absolutePath": "rlc-token/contracts/SafeMath.sol", + "exportedSymbols": { + "SafeMath": [ + 1570 + ] + } + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + "^", + "0.4", + ".8" + ] + }, + "id": 1376, + "name": "PragmaDirective", + "src": "0:23:8" + }, + { + "attributes": { + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1570 + ], + "name": "SafeMath", + "scope": 1571 + }, + "children": [ + { + "attributes": { + "constant": false, + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "safeMul", + "payable": false, + "scope": 1570, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "a", + "scope": 1406, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1377, + "name": "ElementaryTypeName", + "src": "64:4:8" + } + ], + "id": 1378, + "name": "VariableDeclaration", + "src": "64:6:8" + }, + { + "attributes": { + "constant": false, + "name": "b", + "scope": 1406, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1379, + "name": "ElementaryTypeName", + "src": "72:4:8" + } + ], + "id": 1380, + "name": "VariableDeclaration", + "src": "72:6:8" + } + ], + "id": 1381, + "name": "ParameterList", + "src": "63:16:8" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 1406, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1382, + "name": "ElementaryTypeName", + "src": "98:4:8" + } + ], + "id": 1383, + "name": "VariableDeclaration", + "src": "98:4:8" + } + ], + "id": 1384, + "name": "ParameterList", + "src": "97:6:8" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1386 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "c", + "scope": 1406, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1385, + "name": "ElementaryTypeName", + "src": "110:4:8" + } + ], + "id": 1386, + "name": "VariableDeclaration", + "src": "110:6:8" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1378, + "type": "uint256", + "value": "a" + }, + "id": 1387, + "name": "Identifier", + "src": "119:1:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1380, + "type": "uint256", + "value": "b" + }, + "id": 1388, + "name": "Identifier", + "src": "123:1:8" + } + ], + "id": 1389, + "name": "BinaryOperation", + "src": "119:5:8" + } + ], + "id": 1390, + "name": "VariableDeclarationStatement", + "src": "110:14:8" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1569, + "type": "function (bool)", + "value": "assert" + }, + "id": 1391, + "name": "Identifier", + "src": "130:6:8" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1378, + "type": "uint256", + "value": "a" + }, + "id": 1392, + "name": "Identifier", + "src": "137:1:8" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1393, + "name": "Literal", + "src": "142:1:8" + } + ], + "id": 1394, + "name": "BinaryOperation", + "src": "137:6:8" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1386, + "type": "uint256", + "value": "c" + }, + "id": 1395, + "name": "Identifier", + "src": "147:1:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1378, + "type": "uint256", + "value": "a" + }, + "id": 1396, + "name": "Identifier", + "src": "151:1:8" + } + ], + "id": 1397, + "name": "BinaryOperation", + "src": "147:5:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1380, + "type": "uint256", + "value": "b" + }, + "id": 1398, + "name": "Identifier", + "src": "156:1:8" + } + ], + "id": 1399, + "name": "BinaryOperation", + "src": "147:10:8" + } + ], + "id": 1400, + "name": "BinaryOperation", + "src": "137:20:8" + } + ], + "id": 1401, + "name": "FunctionCall", + "src": "130:28:8" + } + ], + "id": 1402, + "name": "ExpressionStatement", + "src": "130:28:8" + }, + { + "attributes": { + "functionReturnParameters": 1384 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1386, + "type": "uint256", + "value": "c" + }, + "id": 1403, + "name": "Identifier", + "src": "171:1:8" + } + ], + "id": 1404, + "name": "Return", + "src": "164:8:8" + } + ], + "id": 1405, + "name": "Block", + "src": "104:73:8" + } + ], + "id": 1406, + "name": "FunctionDefinition", + "src": "47:130:8" + }, + { + "attributes": { + "constant": false, + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "safeDiv", + "payable": false, + "scope": 1570, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "a", + "scope": 1442, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1407, + "name": "ElementaryTypeName", + "src": "198:4:8" + } + ], + "id": 1408, + "name": "VariableDeclaration", + "src": "198:6:8" + }, + { + "attributes": { + "constant": false, + "name": "b", + "scope": 1442, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1409, + "name": "ElementaryTypeName", + "src": "206:4:8" + } + ], + "id": 1410, + "name": "VariableDeclaration", + "src": "206:6:8" + } + ], + "id": 1411, + "name": "ParameterList", + "src": "197:16:8" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 1442, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1412, + "name": "ElementaryTypeName", + "src": "232:4:8" + } + ], + "id": 1413, + "name": "VariableDeclaration", + "src": "232:4:8" + } + ], + "id": 1414, + "name": "ParameterList", + "src": "231:6:8" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1569, + "type": "function (bool)", + "value": "assert" + }, + "id": 1415, + "name": "Identifier", + "src": "244:6:8" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1410, + "type": "uint256", + "value": "b" + }, + "id": 1416, + "name": "Identifier", + "src": "251:1:8" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1417, + "name": "Literal", + "src": "255:1:8" + } + ], + "id": 1418, + "name": "BinaryOperation", + "src": "251:5:8" + } + ], + "id": 1419, + "name": "FunctionCall", + "src": "244:13:8" + } + ], + "id": 1420, + "name": "ExpressionStatement", + "src": "244:13:8" + }, + { + "attributes": { + "assignments": [ + 1422 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "c", + "scope": 1442, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1421, + "name": "ElementaryTypeName", + "src": "263:4:8" + } + ], + "id": 1422, + "name": "VariableDeclaration", + "src": "263:6:8" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1408, + "type": "uint256", + "value": "a" + }, + "id": 1423, + "name": "Identifier", + "src": "272:1:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1410, + "type": "uint256", + "value": "b" + }, + "id": 1424, + "name": "Identifier", + "src": "276:1:8" + } + ], + "id": 1425, + "name": "BinaryOperation", + "src": "272:5:8" + } + ], + "id": 1426, + "name": "VariableDeclarationStatement", + "src": "263:14:8" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1569, + "type": "function (bool)", + "value": "assert" + }, + "id": 1427, + "name": "Identifier", + "src": "283:6:8" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1408, + "type": "uint256", + "value": "a" + }, + "id": 1428, + "name": "Identifier", + "src": "290:1:8" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1410, + "type": "uint256", + "value": "b" + }, + "id": 1429, + "name": "Identifier", + "src": "295:1:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1422, + "type": "uint256", + "value": "c" + }, + "id": 1430, + "name": "Identifier", + "src": "299:1:8" + } + ], + "id": 1431, + "name": "BinaryOperation", + "src": "295:5:8" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1408, + "type": "uint256", + "value": "a" + }, + "id": 1432, + "name": "Identifier", + "src": "303:1:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1410, + "type": "uint256", + "value": "b" + }, + "id": 1433, + "name": "Identifier", + "src": "307:1:8" + } + ], + "id": 1434, + "name": "BinaryOperation", + "src": "303:5:8" + } + ], + "id": 1435, + "name": "BinaryOperation", + "src": "295:13:8" + } + ], + "id": 1436, + "name": "BinaryOperation", + "src": "290:18:8" + } + ], + "id": 1437, + "name": "FunctionCall", + "src": "283:26:8" + } + ], + "id": 1438, + "name": "ExpressionStatement", + "src": "283:26:8" + }, + { + "attributes": { + "functionReturnParameters": 1414 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1422, + "type": "uint256", + "value": "c" + }, + "id": 1439, + "name": "Identifier", + "src": "322:1:8" + } + ], + "id": 1440, + "name": "Return", + "src": "315:8:8" + } + ], + "id": 1441, + "name": "Block", + "src": "238:90:8" + } + ], + "id": 1442, + "name": "FunctionDefinition", + "src": "181:147:8" + }, + { + "attributes": { + "constant": false, + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "safeSub", + "payable": false, + "scope": 1570, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "a", + "scope": 1462, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1443, + "name": "ElementaryTypeName", + "src": "349:4:8" + } + ], + "id": 1444, + "name": "VariableDeclaration", + "src": "349:6:8" + }, + { + "attributes": { + "constant": false, + "name": "b", + "scope": 1462, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1445, + "name": "ElementaryTypeName", + "src": "357:4:8" + } + ], + "id": 1446, + "name": "VariableDeclaration", + "src": "357:6:8" + } + ], + "id": 1447, + "name": "ParameterList", + "src": "348:16:8" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 1462, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1448, + "name": "ElementaryTypeName", + "src": "383:4:8" + } + ], + "id": 1449, + "name": "VariableDeclaration", + "src": "383:4:8" + } + ], + "id": 1450, + "name": "ParameterList", + "src": "382:6:8" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1569, + "type": "function (bool)", + "value": "assert" + }, + "id": 1451, + "name": "Identifier", + "src": "395:6:8" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1446, + "type": "uint256", + "value": "b" + }, + "id": 1452, + "name": "Identifier", + "src": "402:1:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1444, + "type": "uint256", + "value": "a" + }, + "id": 1453, + "name": "Identifier", + "src": "407:1:8" + } + ], + "id": 1454, + "name": "BinaryOperation", + "src": "402:6:8" + } + ], + "id": 1455, + "name": "FunctionCall", + "src": "395:14:8" + } + ], + "id": 1456, + "name": "ExpressionStatement", + "src": "395:14:8" + }, + { + "attributes": { + "functionReturnParameters": 1450 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1444, + "type": "uint256", + "value": "a" + }, + "id": 1457, + "name": "Identifier", + "src": "422:1:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1446, + "type": "uint256", + "value": "b" + }, + "id": 1458, + "name": "Identifier", + "src": "426:1:8" + } + ], + "id": 1459, + "name": "BinaryOperation", + "src": "422:5:8" + } + ], + "id": 1460, + "name": "Return", + "src": "415:12:8" + } + ], + "id": 1461, + "name": "Block", + "src": "389:43:8" + } + ], + "id": 1462, + "name": "FunctionDefinition", + "src": "332:100:8" + }, + { + "attributes": { + "constant": false, + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "safeAdd", + "payable": false, + "scope": 1570, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "a", + "scope": 1490, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1463, + "name": "ElementaryTypeName", + "src": "453:4:8" + } + ], + "id": 1464, + "name": "VariableDeclaration", + "src": "453:6:8" + }, + { + "attributes": { + "constant": false, + "name": "b", + "scope": 1490, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1465, + "name": "ElementaryTypeName", + "src": "461:4:8" + } + ], + "id": 1466, + "name": "VariableDeclaration", + "src": "461:6:8" + } + ], + "id": 1467, + "name": "ParameterList", + "src": "452:16:8" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 1490, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1468, + "name": "ElementaryTypeName", + "src": "487:4:8" + } + ], + "id": 1469, + "name": "VariableDeclaration", + "src": "487:4:8" + } + ], + "id": 1470, + "name": "ParameterList", + "src": "486:6:8" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1472 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "c", + "scope": 1490, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 1471, + "name": "ElementaryTypeName", + "src": "499:4:8" + } + ], + "id": 1472, + "name": "VariableDeclaration", + "src": "499:6:8" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1464, + "type": "uint256", + "value": "a" + }, + "id": 1473, + "name": "Identifier", + "src": "508:1:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1466, + "type": "uint256", + "value": "b" + }, + "id": 1474, + "name": "Identifier", + "src": "512:1:8" + } + ], + "id": 1475, + "name": "BinaryOperation", + "src": "508:5:8" + } + ], + "id": 1476, + "name": "VariableDeclarationStatement", + "src": "499:14:8" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1569, + "type": "function (bool)", + "value": "assert" + }, + "id": 1477, + "name": "Identifier", + "src": "519:6:8" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "&&", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1472, + "type": "uint256", + "value": "c" + }, + "id": 1478, + "name": "Identifier", + "src": "526:1:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1464, + "type": "uint256", + "value": "a" + }, + "id": 1479, + "name": "Identifier", + "src": "529:1:8" + } + ], + "id": 1480, + "name": "BinaryOperation", + "src": "526:4:8" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1472, + "type": "uint256", + "value": "c" + }, + "id": 1481, + "name": "Identifier", + "src": "534:1:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1466, + "type": "uint256", + "value": "b" + }, + "id": 1482, + "name": "Identifier", + "src": "537:1:8" + } + ], + "id": 1483, + "name": "BinaryOperation", + "src": "534:4:8" + } + ], + "id": 1484, + "name": "BinaryOperation", + "src": "526:12:8" + } + ], + "id": 1485, + "name": "FunctionCall", + "src": "519:20:8" + } + ], + "id": 1486, + "name": "ExpressionStatement", + "src": "519:20:8" + }, + { + "attributes": { + "functionReturnParameters": 1470 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1472, + "type": "uint256", + "value": "c" + }, + "id": 1487, + "name": "Identifier", + "src": "552:1:8" + } + ], + "id": 1488, + "name": "Return", + "src": "545:8:8" + } + ], + "id": 1489, + "name": "Block", + "src": "493:65:8" + } + ], + "id": 1490, + "name": "FunctionDefinition", + "src": "436:122:8" + }, + { + "attributes": { + "constant": true, + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "max64", + "payable": false, + "scope": 1570, + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "a", + "scope": 1507, + "stateVariable": false, + "storageLocation": "default", + "type": "uint64", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint64", + "type": "uint64" + }, + "id": 1491, + "name": "ElementaryTypeName", + "src": "577:6:8" + } + ], + "id": 1492, + "name": "VariableDeclaration", + "src": "577:8:8" + }, + { + "attributes": { + "constant": false, + "name": "b", + "scope": 1507, + "stateVariable": false, + "storageLocation": "default", + "type": "uint64", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint64", + "type": "uint64" + }, + "id": 1493, + "name": "ElementaryTypeName", + "src": "587:6:8" + } + ], + "id": 1494, + "name": "VariableDeclaration", + "src": "587:8:8" + } + ], + "id": 1495, + "name": "ParameterList", + "src": "576:20:8" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 1507, + "stateVariable": false, + "storageLocation": "default", + "type": "uint64", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint64", + "type": "uint64" + }, + "id": 1496, + "name": "ElementaryTypeName", + "src": "624:6:8" + } + ], + "id": 1497, + "name": "VariableDeclaration", + "src": "624:6:8" + } + ], + "id": 1498, + "name": "ParameterList", + "src": "623:8:8" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1498 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "uint64" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1492, + "type": "uint64", + "value": "a" + }, + "id": 1499, + "name": "Identifier", + "src": "645:1:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1494, + "type": "uint64", + "value": "b" + }, + "id": 1500, + "name": "Identifier", + "src": "650:1:8" + } + ], + "id": 1501, + "name": "BinaryOperation", + "src": "645:6:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1492, + "type": "uint64", + "value": "a" + }, + "id": 1502, + "name": "Identifier", + "src": "654:1:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1494, + "type": "uint64", + "value": "b" + }, + "id": 1503, + "name": "Identifier", + "src": "658:1:8" + } + ], + "id": 1504, + "name": "Conditional", + "src": "645:14:8" + } + ], + "id": 1505, + "name": "Return", + "src": "638:21:8" + } + ], + "id": 1506, + "name": "Block", + "src": "632:32:8" + } + ], + "id": 1507, + "name": "FunctionDefinition", + "src": "562:102:8" + }, + { + "attributes": { + "constant": true, + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "min64", + "payable": false, + "scope": 1570, + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "a", + "scope": 1524, + "stateVariable": false, + "storageLocation": "default", + "type": "uint64", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint64", + "type": "uint64" + }, + "id": 1508, + "name": "ElementaryTypeName", + "src": "683:6:8" + } + ], + "id": 1509, + "name": "VariableDeclaration", + "src": "683:8:8" + }, + { + "attributes": { + "constant": false, + "name": "b", + "scope": 1524, + "stateVariable": false, + "storageLocation": "default", + "type": "uint64", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint64", + "type": "uint64" + }, + "id": 1510, + "name": "ElementaryTypeName", + "src": "693:6:8" + } + ], + "id": 1511, + "name": "VariableDeclaration", + "src": "693:8:8" + } + ], + "id": 1512, + "name": "ParameterList", + "src": "682:20:8" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 1524, + "stateVariable": false, + "storageLocation": "default", + "type": "uint64", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint64", + "type": "uint64" + }, + "id": 1513, + "name": "ElementaryTypeName", + "src": "730:6:8" + } + ], + "id": 1514, + "name": "VariableDeclaration", + "src": "730:6:8" + } + ], + "id": 1515, + "name": "ParameterList", + "src": "729:8:8" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1515 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "uint64" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1509, + "type": "uint64", + "value": "a" + }, + "id": 1516, + "name": "Identifier", + "src": "751:1:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1511, + "type": "uint64", + "value": "b" + }, + "id": 1517, + "name": "Identifier", + "src": "755:1:8" + } + ], + "id": 1518, + "name": "BinaryOperation", + "src": "751:5:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1509, + "type": "uint64", + "value": "a" + }, + "id": 1519, + "name": "Identifier", + "src": "759:1:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1511, + "type": "uint64", + "value": "b" + }, + "id": 1520, + "name": "Identifier", + "src": "763:1:8" + } + ], + "id": 1521, + "name": "Conditional", + "src": "751:13:8" + } + ], + "id": 1522, + "name": "Return", + "src": "744:20:8" + } + ], + "id": 1523, + "name": "Block", + "src": "738:31:8" + } + ], + "id": 1524, + "name": "FunctionDefinition", + "src": "668:101:8" + }, + { + "attributes": { + "constant": true, + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "max256", + "payable": false, + "scope": 1570, + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "a", + "scope": 1541, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1525, + "name": "ElementaryTypeName", + "src": "789:7:8" + } + ], + "id": 1526, + "name": "VariableDeclaration", + "src": "789:9:8" + }, + { + "attributes": { + "constant": false, + "name": "b", + "scope": 1541, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1527, + "name": "ElementaryTypeName", + "src": "800:7:8" + } + ], + "id": 1528, + "name": "VariableDeclaration", + "src": "800:9:8" + } + ], + "id": 1529, + "name": "ParameterList", + "src": "788:22:8" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 1541, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1530, + "name": "ElementaryTypeName", + "src": "838:7:8" + } + ], + "id": 1531, + "name": "VariableDeclaration", + "src": "838:7:8" + } + ], + "id": 1532, + "name": "ParameterList", + "src": "837:9:8" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1532 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1526, + "type": "uint256", + "value": "a" + }, + "id": 1533, + "name": "Identifier", + "src": "860:1:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1528, + "type": "uint256", + "value": "b" + }, + "id": 1534, + "name": "Identifier", + "src": "865:1:8" + } + ], + "id": 1535, + "name": "BinaryOperation", + "src": "860:6:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1526, + "type": "uint256", + "value": "a" + }, + "id": 1536, + "name": "Identifier", + "src": "869:1:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1528, + "type": "uint256", + "value": "b" + }, + "id": 1537, + "name": "Identifier", + "src": "873:1:8" + } + ], + "id": 1538, + "name": "Conditional", + "src": "860:14:8" + } + ], + "id": 1539, + "name": "Return", + "src": "853:21:8" + } + ], + "id": 1540, + "name": "Block", + "src": "847:32:8" + } + ], + "id": 1541, + "name": "FunctionDefinition", + "src": "773:106:8" + }, + { + "attributes": { + "constant": true, + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "min256", + "payable": false, + "scope": 1570, + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "a", + "scope": 1558, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1542, + "name": "ElementaryTypeName", + "src": "899:7:8" + } + ], + "id": 1543, + "name": "VariableDeclaration", + "src": "899:9:8" + }, + { + "attributes": { + "constant": false, + "name": "b", + "scope": 1558, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1544, + "name": "ElementaryTypeName", + "src": "910:7:8" + } + ], + "id": 1545, + "name": "VariableDeclaration", + "src": "910:9:8" + } + ], + "id": 1546, + "name": "ParameterList", + "src": "898:22:8" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 1558, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1547, + "name": "ElementaryTypeName", + "src": "948:7:8" + } + ], + "id": 1548, + "name": "VariableDeclaration", + "src": "948:7:8" + } + ], + "id": 1549, + "name": "ParameterList", + "src": "947:9:8" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1549 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1543, + "type": "uint256", + "value": "a" + }, + "id": 1550, + "name": "Identifier", + "src": "970:1:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1545, + "type": "uint256", + "value": "b" + }, + "id": 1551, + "name": "Identifier", + "src": "974:1:8" + } + ], + "id": 1552, + "name": "BinaryOperation", + "src": "970:5:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1543, + "type": "uint256", + "value": "a" + }, + "id": 1553, + "name": "Identifier", + "src": "978:1:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1545, + "type": "uint256", + "value": "b" + }, + "id": 1554, + "name": "Identifier", + "src": "982:1:8" + } + ], + "id": 1555, + "name": "Conditional", + "src": "970:13:8" + } + ], + "id": 1556, + "name": "Return", + "src": "963:20:8" + } + ], + "id": 1557, + "name": "Block", + "src": "957:31:8" + } + ], + "id": 1558, + "name": "FunctionDefinition", + "src": "883:105:8" + }, + { + "attributes": { + "constant": false, + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "assert", + "payable": false, + "scope": 1570, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "assertion", + "scope": 1569, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1559, + "name": "ElementaryTypeName", + "src": "1008:4:8" + } + ], + "id": 1560, + "name": "VariableDeclaration", + "src": "1008:14:8" + } + ], + "id": 1561, + "name": "ParameterList", + "src": "1007:16:8" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1562, + "name": "ParameterList", + "src": "1033:0:8" + }, + { + "children": [ + { + "attributes": { + "falseBody": null + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1560, + "type": "bool", + "value": "assertion" + }, + "id": 1563, + "name": "Identifier", + "src": "1044:9:8" + } + ], + "id": 1564, + "name": "UnaryOperation", + "src": "1043:10:8" + }, + { + "children": [ + { + "children": [], + "id": 1565, + "name": "Throw", + "src": "1063:5:8" + } + ], + "id": 1566, + "name": "Block", + "src": "1055:20:8" + } + ], + "id": 1567, + "name": "IfStatement", + "src": "1039:36:8" + } + ], + "id": 1568, + "name": "Block", + "src": "1033:46:8" + } + ], + "id": 1569, + "name": "FunctionDefinition", + "src": "992:87:8" + } + ], + "id": 1570, + "name": "ContractDefinition", + "src": "25:1056:8" + } + ], + "id": 1571, + "name": "SourceUnit", + "src": "0:1081:8" + }, + "compiler": { + "name": "solc", + "version": "0.4.18+commit.9cf6e910.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "1.0.1", + "updatedAt": "2018-01-13T10:23:13.994Z" +} \ No newline at end of file diff --git a/build/contracts/Scrapto.json b/build/contracts/Scrapto.json new file mode 100644 index 0000000..01f173b --- /dev/null +++ b/build/contracts/Scrapto.json @@ -0,0 +1,440 @@ +{ + "contractName": "Scrapto", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "submitTxHash", + "type": "bytes32" + }, + { + "name": "user", + "type": "address" + }, + { + "name": "stdout", + "type": "string" + }, + { + "name": "uri", + "type": "string" + } + ], + "name": "iexecSubmitCallback", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "DAPP_PRICE", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "param", + "type": "string" + } + ], + "name": "iexecSubmit", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "DAPP_NAME", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_iexecOracleAddress", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "submitTxHash", + "type": "bytes32" + }, + { + "indexed": true, + "name": "user", + "type": "address" + }, + { + "indexed": false, + "name": "stdout", + "type": "string" + }, + { + "indexed": false, + "name": "uri", + "type": "string" + } + ], + "name": "IexecSubmitCallback", + "type": "event" + } + ], + "bytecode": "0x6060604052341561000f57600080fd5b60405160208061076c833981016040528080519060200190919050508060006040805190810160405280600781526020017f7363726170746f000000000000000000000000000000000000000000000000008152506000836000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff16635993ef5384846000604051602001526040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610162578082015181840152602081019050610147565b50505050905090810190601f16801561018f5780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15156101ae57600080fd5b6102c65a03f115156101bf57600080fd5b5050506040518051905015156101d457600080fd5b5050505050610584806101e86000396000f300606060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806310a9f201146100675780633c0aef301461014b5780638cd213b914610174578063c878f958146101c6575b600080fd5b341561007257600080fd5b61013160048080356000191690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610254565b604051808215151515815260200191505060405180910390f35b341561015657600080fd5b61015e6103ed565b6040518082815260200191505060405180910390f35b6101c4600480803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506103f2565b005b34156101d157600080fd5b6101d961051f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102195780820151818401526020810190506101fe565b50505050905090810190601f1680156102465780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156102b157600080fd5b8373ffffffffffffffffffffffffffffffffffffffff167f68d2eaa37ea3e53bbe55f11eb038084f280086b8f4c4552dbca1b5692efeb9138685856040518084600019166000191681526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101561033e578082015181840152602081019050610323565b50505050905090810190601f16801561036b5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156103a4578082015181840152602081019050610389565b50505050905090810190601f1680156103d15780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a260019050949350505050565b600081565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663d99a8dc334846000604051602001526040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156104aa57808201518184015260208101905061048f565b50505050905090810190601f1680156104d75780820380516001836020036101000a031916815260200191505b50925050506020604051808303818588803b15156104f457600080fd5b6125ee5a03f1151561050557600080fd5b5050505060405180519050151561051b57600080fd5b5050565b6040805190810160405280600781526020017f7363726170746f00000000000000000000000000000000000000000000000000815250815600a165627a7a72305820b01a4676f27e1b10f577c64589d188c1269439a591669ba0c74be21d60c50f9b0029", + "deployedBytecode": "0x606060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806310a9f201146100675780633c0aef301461014b5780638cd213b914610174578063c878f958146101c6575b600080fd5b341561007257600080fd5b61013160048080356000191690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610254565b604051808215151515815260200191505060405180910390f35b341561015657600080fd5b61015e6103ed565b6040518082815260200191505060405180910390f35b6101c4600480803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506103f2565b005b34156101d157600080fd5b6101d961051f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102195780820151818401526020810190506101fe565b50505050905090810190601f1680156102465780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156102b157600080fd5b8373ffffffffffffffffffffffffffffffffffffffff167f68d2eaa37ea3e53bbe55f11eb038084f280086b8f4c4552dbca1b5692efeb9138685856040518084600019166000191681526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101561033e578082015181840152602081019050610323565b50505050905090810190601f16801561036b5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156103a4578082015181840152602081019050610389565b50505050905090810190601f1680156103d15780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a260019050949350505050565b600081565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663d99a8dc334846000604051602001526040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156104aa57808201518184015260208101905061048f565b50505050905090810190601f1680156104d75780820380516001836020036101000a031916815260200191505b50925050506020604051808303818588803b15156104f457600080fd5b6125ee5a03f1151561050557600080fd5b5050505060405180519050151561051b57600080fd5b5050565b6040805190810160405280600781526020017f7363726170746f00000000000000000000000000000000000000000000000000815250815600a165627a7a72305820b01a4676f27e1b10f577c64589d188c1269439a591669ba0c74be21d60c50f9b0029", + "sourceMap": "86:251:0:-;;;223:111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;285:19;161:1;316:9;;;;;;;;;;;;;;;;;;426:23:3;397:19;378:18;;:38;;;;;;;;;;;;;;;;;;464:18;;;;;;;;;;;426:57;;501:11;:35;;;537:9;547:8;501:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;493:64:3;;;;;;;;272:292;;;;223:111:0;86:251;;;;;;", + "deployedSourceMap": "86:251:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;761:252:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;127:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;570:185:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;168:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;761:252:3;870:4;907:18;;;;;;;;;;;893:32;;:10;:32;;;885:41;;;;;;;;969:4;936:49;;;956:12;974:6;981:3;936:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:4:3;995:11;;761:252;;;;;;:::o;127:35:0:-;161:1;127:35;:::o;570:185:3:-;630:23;668:18;;;;;;;;;;;630:57;;705:11;:18;;;730:9;741:5;705:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;697:51:3;;;;;;;;570:185;;:::o;168:44:0:-;;;;;;;;;;;;;;;;;;;;:::o", + "source": "pragma solidity ^0.4.11;\nimport \"iexec-oracle-contract/contracts/IexecOracleAPI.sol\";\ncontract Scrapto is IexecOracleAPI{\n\n uint public constant DAPP_PRICE = 0;\n string public constant DAPP_NAME = \"scrapto\";\n \n function Scrapto (address _iexecOracleAddress) IexecOracleAPI(_iexecOracleAddress,DAPP_PRICE,DAPP_NAME){\n\n }\n\n}\n", + "sourcePath": "/var/www/projects.dev/scrapto.dev/iexec/contracts/Scrapto.sol", + "ast": { + "attributes": { + "absolutePath": "/var/www/projects.dev/scrapto.dev/iexec/contracts/Scrapto.sol", + "exportedSymbols": { + "Scrapto": [ + 22 + ] + } + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + "^", + "0.4", + ".11" + ] + }, + "id": 1, + "name": "PragmaDirective", + "src": "0:24:0" + }, + { + "attributes": { + "SourceUnit": 795, + "absolutePath": "iexec-oracle-contract/contracts/IexecOracleAPI.sol", + "file": "iexec-oracle-contract/contracts/IexecOracleAPI.sol", + "scope": 23, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 2, + "name": "ImportDirective", + "src": "25:60:0" + }, + { + "attributes": { + "contractDependencies": [ + 794 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "linearizedBaseContracts": [ + 22, + 794 + ], + "name": "Scrapto", + "scope": 23 + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ] + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "IexecOracleAPI", + "referencedDeclaration": 794, + "type": "contract IexecOracleAPI" + }, + "id": 3, + "name": "UserDefinedTypeName", + "src": "106:14:0" + } + ], + "id": 4, + "name": "InheritanceSpecifier", + "src": "106:14:0" + }, + { + "attributes": { + "constant": true, + "name": "DAPP_PRICE", + "scope": 22, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 5, + "name": "ElementaryTypeName", + "src": "127:4:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 6, + "name": "Literal", + "src": "161:1:0" + } + ], + "id": 7, + "name": "VariableDeclaration", + "src": "127:35:0" + }, + { + "attributes": { + "constant": true, + "name": "DAPP_NAME", + "scope": 22, + "stateVariable": true, + "storageLocation": "default", + "type": "string memory", + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string storage pointer" + }, + "id": 8, + "name": "ElementaryTypeName", + "src": "168:6:0" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "7363726170746f", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"scrapto\"", + "value": "scrapto" + }, + "id": 9, + "name": "Literal", + "src": "203:9:0" + } + ], + "id": 10, + "name": "VariableDeclaration", + "src": "168:44:0" + }, + { + "attributes": { + "constant": false, + "implemented": true, + "isConstructor": true, + "name": "Scrapto", + "payable": false, + "scope": 22, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "_iexecOracleAddress", + "scope": 21, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 11, + "name": "ElementaryTypeName", + "src": "241:7:0" + } + ], + "id": 12, + "name": "VariableDeclaration", + "src": "241:27:0" + } + ], + "id": 13, + "name": "ParameterList", + "src": "240:29:0" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 19, + "name": "ParameterList", + "src": "326:0:0" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 794, + "type": "type(contract IexecOracleAPI)", + "value": "IexecOracleAPI" + }, + "id": 14, + "name": "Identifier", + "src": "270:14:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 12, + "type": "address", + "value": "_iexecOracleAddress" + }, + "id": 15, + "name": "Identifier", + "src": "285:19:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 7, + "type": "uint256", + "value": "DAPP_PRICE" + }, + "id": 16, + "name": "Identifier", + "src": "305:10:0" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 10, + "type": "string memory", + "value": "DAPP_NAME" + }, + "id": 17, + "name": "Identifier", + "src": "316:9:0" + } + ], + "id": 18, + "name": "ModifierInvocation", + "src": "270:56:0" + }, + { + "attributes": { + "statements": [ + null + ] + }, + "children": [], + "id": 20, + "name": "Block", + "src": "326:8:0" + } + ], + "id": 21, + "name": "FunctionDefinition", + "src": "223:111:0" + } + ], + "id": 22, + "name": "ContractDefinition", + "src": "86:251:0" + } + ], + "id": 23, + "name": "SourceUnit", + "src": "0:338:0" + }, + "compiler": { + "name": "solc", + "version": "0.4.18+commit.9cf6e910.Emscripten.clang" + }, + "networks": { + "4": { + "address": "0xb90ee1f07744806746d0f0d171df1a5088da0252" + } + }, + "schemaVersion": "1.0.1", + "updatedAt": "2018-01-13T10:23:13.990Z" +} \ No newline at end of file diff --git a/build/contracts/TokenSpender.json b/build/contracts/TokenSpender.json new file mode 100644 index 0000000..090cfe0 --- /dev/null +++ b/build/contracts/TokenSpender.json @@ -0,0 +1,239 @@ +{ + "contractName": "TokenSpender", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + }, + { + "name": "_token", + "type": "address" + }, + { + "name": "_extraData", + "type": "bytes" + } + ], + "name": "receiveApproval", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "pragma solidity ^0.4.8;\n\ncontract TokenSpender {\n function receiveApproval(address _from, uint256 _value, address _token, bytes _extraData);\n}", + "sourcePath": "rlc-token/contracts/TokenSpender.sol", + "ast": { + "attributes": { + "absolutePath": "rlc-token/contracts/TokenSpender.sol", + "exportedSymbols": { + "TokenSpender": [ + 1584 + ] + } + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + "^", + "0.4", + ".8" + ] + }, + "id": 1572, + "name": "PragmaDirective", + "src": "0:23:9" + }, + { + "attributes": { + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "linearizedBaseContracts": [ + 1584 + ], + "name": "TokenSpender", + "scope": 1585 + }, + "children": [ + { + "attributes": { + "body": null, + "constant": false, + "implemented": false, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "receiveApproval", + "payable": false, + "scope": 1584, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "_from", + "scope": 1583, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 1573, + "name": "ElementaryTypeName", + "src": "78:7:9" + } + ], + "id": 1574, + "name": "VariableDeclaration", + "src": "78:13:9" + }, + { + "attributes": { + "constant": false, + "name": "_value", + "scope": 1583, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1575, + "name": "ElementaryTypeName", + "src": "93:7:9" + } + ], + "id": 1576, + "name": "VariableDeclaration", + "src": "93:14:9" + }, + { + "attributes": { + "constant": false, + "name": "_token", + "scope": 1583, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 1577, + "name": "ElementaryTypeName", + "src": "109:7:9" + } + ], + "id": 1578, + "name": "VariableDeclaration", + "src": "109:14:9" + }, + { + "attributes": { + "constant": false, + "name": "_extraData", + "scope": 1583, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes memory", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes storage pointer" + }, + "id": 1579, + "name": "ElementaryTypeName", + "src": "125:5:9" + } + ], + "id": 1580, + "name": "VariableDeclaration", + "src": "125:16:9" + } + ], + "id": 1581, + "name": "ParameterList", + "src": "77:65:9" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1582, + "name": "ParameterList", + "src": "142:0:9" + } + ], + "id": 1583, + "name": "FunctionDefinition", + "src": "53:90:9" + } + ], + "id": 1584, + "name": "ContractDefinition", + "src": "25:120:9" + } + ], + "id": 1585, + "name": "SourceUnit", + "src": "0:145:9" + }, + "compiler": { + "name": "solc", + "version": "0.4.18+commit.9cf6e910.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "1.0.1", + "updatedAt": "2018-01-13T10:23:13.994Z" +} \ No newline at end of file diff --git a/contracts/MyContract.sol b/contracts/MyContract.sol deleted file mode 100644 index 5382017..0000000 --- a/contracts/MyContract.sol +++ /dev/null @@ -1,9 +0,0 @@ -pragma solidity ^0.4.11; -import "./IexecOracleAPI.sol"; -contract MyContract is IexecOracleAPI{ - - function MyContract (address _iexecOracleAddress) IexecOracleAPI(_iexecOracleAddress){ - - } - -} \ No newline at end of file diff --git a/contracts/Scrapto.sol b/contracts/Scrapto.sol new file mode 100644 index 0000000..d1c7539 --- /dev/null +++ b/contracts/Scrapto.sol @@ -0,0 +1,12 @@ +pragma solidity ^0.4.11; +import "iexec-oracle-contract/contracts/IexecOracleAPI.sol"; +contract Scrapto is IexecOracleAPI{ + + uint public constant DAPP_PRICE = 0; + string public constant DAPP_NAME = "scrapto"; + + function Scrapto (address _iexecOracleAddress) IexecOracleAPI(_iexecOracleAddress,DAPP_PRICE,DAPP_NAME){ + + } + +} diff --git a/examples/iexec-cmdline-10.js b/examples/iexec-cmdline-10.js new file mode 100644 index 0000000..d70f53c --- /dev/null +++ b/examples/iexec-cmdline-10.js @@ -0,0 +1,11 @@ +module.exports = { +name:'Scrapto', + data: { + type: 'BINARY', + cpu: 'AMD64', + os: 'LINUX', + }, + work: { + cmdline: 'demo_id_job', + } +}; diff --git a/iexec.js b/iexec.js index ddb3c67..d70f53c 100644 --- a/iexec.js +++ b/iexec.js @@ -1,6 +1,11 @@ module.exports = { - name: 'MyContract', - constructorArgs: ['0xb34406538112bd2b3036b2c417c7cff827777a11'], // oracle v0.1.2 ropsten - // constructorArgs: ['0x98275d4b6511ef05ed063d127dd82b72588326c9'], // oracle v0.1.2 rinkeby - // constructorArgs: ['0xb81d38d843cb526a3d0c3130d568fe09799135aa'], // oracle v0.1.2 kovan -}; \ No newline at end of file +name:'Scrapto', + data: { + type: 'BINARY', + cpu: 'AMD64', + os: 'LINUX', + }, + work: { + cmdline: 'demo_id_job', + } +}; diff --git a/img/scrapto-component.png b/img/scrapto-component.png new file mode 100644 index 0000000..52bd67f Binary files /dev/null and b/img/scrapto-component.png differ diff --git a/img/scrapto-sequence.png b/img/scrapto-sequence.png new file mode 100644 index 0000000..a7bd9ef Binary files /dev/null and b/img/scrapto-sequence.png differ diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..903a54c --- /dev/null +++ b/package-lock.json @@ -0,0 +1,27 @@ +{ + "name": "iexec-dapp-init", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "ethereumjs-testrpc": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/ethereumjs-testrpc/-/ethereumjs-testrpc-3.9.2.tgz", + "integrity": "sha1-uw8tPDqjk1CHKtOOQMg+nXhzMck=" + }, + "iexec-oracle-contract": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/iexec-oracle-contract/-/iexec-oracle-contract-1.1.3.tgz", + "integrity": "sha1-7obv6RA3h4UjJbUMK+bCvnLaia4=", + "requires": { + "rlc-token": "github:iexecblockchaincomputing/rlc-token#34d2a5c2a5320630b0421a96bafeefd401e41726" + } + }, + "rlc-token": { + "version": "github:iexecblockchaincomputing/rlc-token#34d2a5c2a5320630b0421a96bafeefd401e41726", + "requires": { + "ethereumjs-testrpc": "3.9.2" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..3b45b48 --- /dev/null +++ b/package.json @@ -0,0 +1,22 @@ +{ + "name": "iexec-dapp-init", + "version": "1.0.0", + "description": "This is the registry for sample iexec dapps, used by the iexec-sdk cli.", + "main": "iexec.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/iExecBlockchainComputing/iexec-dapp-samples.git" + }, + "author": "", + "license": "ISC", + "bugs": { + "url": "https://github.com/iExecBlockchainComputing/iexec-dapp-samples/issues" + }, + "homepage": "https://github.com/iExecBlockchainComputing/iexec-dapp-samples#readme", + "dependencies": { + "iexec-oracle-contract": "^1.1.3" + } +} diff --git a/truffle.js b/truffle.js index 87b347c..cee669e 100644 --- a/truffle.js +++ b/truffle.js @@ -1,31 +1,53 @@ +'use strict'; + +const oracleJSON = require('iexec-oracle-contract/build/contracts/IexecOracle.json'); + +const ROPSTEN_ORACLE_ADDRESS = oracleJSON.networks['3'].address; +const RINKEBY_ORACLE_ADDRESS = oracleJSON.networks['4'].address; +const KOVAN_ORACLE_ADDRESS = oracleJSON.networks['42'].address; +const MAIN_ORACLE_ADDRESS = oracleJSON.networks['1'].address; +const LOCAL_ORACLE_ADDRESS = 'local_oracle_address_value'; + module.exports = { - networks: { - development: { - host: "http://localhost:8545", - port: 8545, - network_id: "*" // Match any network id - }, - ropsten: { - host: "https://ropsten.infura.io/berv5GTB5cSdOJPPnqOq", - port: 8545, - network_id: "3", - iexecOracleAddress: "0xb34406538112bd2b3036b2c417c7cff827777a11", // oracle v0.1.2 ropsten - // gasPriceMultiplier: 2, // use factor 2 of the network estimated gasPrice - // gasLimitMultiplier: 4, // use factor 4 of the network estimated gasLimit - // gasPrice: 21000000000 // manually set the gasPrice in gwei. Prefer "gasPriceMultiplier" - // gas: 400000 // manually set the gas limit in gwei. Prefer "gasLimitMultiplier" - }, - rinkeby: { - host: "https://rinkeby.infura.io/berv5GTB5cSdOJPPnqOq", - port: 8545, - network_id: "4", - iexecOracleAddress: "0x98275d4b6511ef05ed063d127dd82b72588326c9",// oracle v0.1.2 rinkeby - }, - kovan: { - host: "https://kovan.infura.io/berv5GTB5cSdOJPPnqOq", - port: 8545, - network_id: "42", - iexecOracleAddress: "0xb81d38d843cb526a3d0c3130d568fe09799135aa",// oracle v0.1.2 kovan - }, + networks: { + development: { + host: 'http://localhost:8545', + port: 8545, + network_id: '*', // Match any network id, + constructorArgs: [LOCAL_ORACLE_ADDRESS], + server: 'https://localhost:443' + }, + ropsten: { + host: 'https://ropsten.infura.io/berv5GTB5cSdOJPPnqOq', + port: 8545, + network_id: '3', + constructorArgs: [ROPSTEN_ORACLE_ADDRESS], + server: 'https://testxw.iex.ec:443' + // gasPriceMultiplier: 2, // use factor 2 of the network estimated gasPrice + // gasLimitMultiplier: 4, // use factor 4 of the network estimated gasLimit + // gasPrice: 21000000000 // manually set the gasPrice in gwei. Prefer 'gasPriceMultiplier' + // gas: 400000 // manually set the gas limit in gwei. Prefer 'gasLimitMultiplier' + }, + rinkeby: { + host: 'https://rinkeby.infura.io/berv5GTB5cSdOJPPnqOq', + port: 8545, + network_id: '4', + constructorArgs: [RINKEBY_ORACLE_ADDRESS], + server: 'https://testxw.iex.ec:443' + }, + kovan: { + host: 'https://kovan.infura.io/berv5GTB5cSdOJPPnqOq', + port: 8545, + network_id: '42', + constructorArgs: [KOVAN_ORACLE_ADDRESS], + server: 'https://testxw.iex.ec:443' + }, + mainnet: { + host: 'https://mainnet.infura.io/berv5GTB5cSdOJPPnqOq ', + port: 8545, + network_id: '1', + constructorArgs: [MAIN_ORACLE_ADDRESS], + server: 'https://mainxw.iex.ec:443' } -}; + } +}; \ No newline at end of file