{
  "contractName": "IexecODBLibOrders",
  "abi": [
    {
      "inputs": [],
      "name": "APPORDER_TYPEHASH",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "DATASETORDER_TYPEHASH",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "EIP712DOMAIN_TYPEHASH",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "REQUESTORDER_TYPEHASH",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "WORKERPOOLORDER_TYPEHASH",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "app",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "appprice",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "volume",
              "type": "uint256"
            },
            {
              "internalType": "bytes32",
              "name": "tag",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "datasetrestrict",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "workerpoolrestrict",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "requesterrestrict",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "salt",
              "type": "bytes32"
            },
            {
              "internalType": "bytes",
              "name": "sign",
              "type": "bytes"
            }
          ],
          "internalType": "struct IexecODBLibOrders.AppOrder",
          "name": "_apporder",
          "type": "tuple"
        }
      ],
      "name": "hash",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "apphash",
          "type": "bytes32"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "app",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "appmaxprice",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "dataset",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "datasetmaxprice",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "workerpool",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "workerpoolmaxprice",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "requester",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "volume",
              "type": "uint256"
            },
            {
              "internalType": "bytes32",
              "name": "tag",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "category",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "trust",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "beneficiary",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "callback",
              "type": "address"
            },
            {
              "internalType": "string",
              "name": "params",
              "type": "string"
            },
            {
              "internalType": "bytes32",
              "name": "salt",
              "type": "bytes32"
            },
            {
              "internalType": "bytes",
              "name": "sign",
              "type": "bytes"
            }
          ],
          "internalType": "struct IexecODBLibOrders.RequestOrder",
          "name": "_requestorder",
          "type": "tuple"
        }
      ],
      "name": "hash",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "requesthash",
          "type": "bytes32"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "dataset",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "datasetprice",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "volume",
              "type": "uint256"
            },
            {
              "internalType": "bytes32",
              "name": "tag",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "apprestrict",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "workerpoolrestrict",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "requesterrestrict",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "salt",
              "type": "bytes32"
            },
            {
              "internalType": "bytes",
              "name": "sign",
              "type": "bytes"
            }
          ],
          "internalType": "struct IexecODBLibOrders.DatasetOrder",
          "name": "_datasetorder",
          "type": "tuple"
        }
      ],
      "name": "hash",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "datasethash",
          "type": "bytes32"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "workerpool",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "workerpoolprice",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "volume",
              "type": "uint256"
            },
            {
              "internalType": "bytes32",
              "name": "tag",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "category",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "trust",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "apprestrict",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "datasetrestrict",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "requesterrestrict",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "salt",
              "type": "bytes32"
            },
            {
              "internalType": "bytes",
              "name": "sign",
              "type": "bytes"
            }
          ],
          "internalType": "struct IexecODBLibOrders.WorkerpoolOrder",
          "name": "_workerpoolorder",
          "type": "tuple"
        }
      ],
      "name": "hash",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "workerpoolhash",
          "type": "bytes32"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "string",
              "name": "name",
              "type": "string"
            },
            {
              "internalType": "string",
              "name": "version",
              "type": "string"
            },
            {
              "internalType": "uint256",
              "name": "chainId",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "verifyingContract",
              "type": "address"
            }
          ],
          "internalType": "struct IexecODBLibOrders.EIP712Domain",
          "name": "_domain",
          "type": "tuple"
        }
      ],
      "name": "hash",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "domainhash",
          "type": "bytes32"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_structHash",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "_domainHash",
          "type": "bytes32"
        }
      ],
      "name": "toEthTypedStructHash",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "typedStructHash",
          "type": "bytes32"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"APPORDER_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DATASETORDER_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"EIP712DOMAIN_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"REQUESTORDER_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WORKERPOOLORDER_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"app\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"appprice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"volume\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"tag\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"datasetrestrict\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"workerpoolrestrict\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"requesterrestrict\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"sign\",\"type\":\"bytes\"}],\"internalType\":\"struct IexecODBLibOrders.AppOrder\",\"name\":\"_apporder\",\"type\":\"tuple\"}],\"name\":\"hash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"apphash\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"app\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"appmaxprice\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"dataset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"datasetmaxprice\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"workerpool\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"workerpoolmaxprice\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"volume\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"tag\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"category\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trust\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"callback\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"params\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"sign\",\"type\":\"bytes\"}],\"internalType\":\"struct IexecODBLibOrders.RequestOrder\",\"name\":\"_requestorder\",\"type\":\"tuple\"}],\"name\":\"hash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"requesthash\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"dataset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"datasetprice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"volume\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"tag\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"apprestrict\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"workerpoolrestrict\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"requesterrestrict\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"sign\",\"type\":\"bytes\"}],\"internalType\":\"struct IexecODBLibOrders.DatasetOrder\",\"name\":\"_datasetorder\",\"type\":\"tuple\"}],\"name\":\"hash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"datasethash\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"workerpool\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"workerpoolprice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"volume\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"tag\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"category\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trust\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"apprestrict\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"datasetrestrict\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"requesterrestrict\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"sign\",\"type\":\"bytes\"}],\"internalType\":\"struct IexecODBLibOrders.WorkerpoolOrder\",\"name\":\"_workerpoolorder\",\"type\":\"tuple\"}],\"name\":\"hash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"workerpoolhash\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"}],\"internalType\":\"struct IexecODBLibOrders.EIP712Domain\",\"name\":\"_domain\",\"type\":\"tuple\"}],\"name\":\"hash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"domainhash\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_structHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_domainHash\",\"type\":\"bytes32\"}],\"name\":\"toEthTypedStructHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"typedStructHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"@iexec/interface/contracts/libs/IexecODBLibOrders.sol\":\"IexecODBLibOrders\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@iexec/interface/contracts/libs/IexecODBLibOrders.sol\":{\"keccak256\":\"0xe2848a685785b09dc9ee5a6e6329a417eaf18e520388e8575d45a5376b1d62ca\",\"urls\":[\"bzz-raw://d1385ab26f382baa7aadb80faed54290296be09eeccbee1193a1b8a53b0b15d5\",\"dweb:/ipfs/QmUQTFcGX5VZiYwHKu9Yjc4PHNrMgdAyKwKi6tFEMsbaJk\"]}},\"version\":1}",
  "bytecode": "0x6108a7610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100b35760003560e01c806358b505861161007b57806358b505861461012257806365db1dbb146101355780636f84d2da1461013d5780639a6f72ee14610145578063c49f91d31461014d578063eca34ccf14610155576100b3565b806304951329146100b85780630813424e146100e1578063176eaa49146100f4578063207dbbfe146101075780632bd4c7341461010f575b600080fd5b6100cb6100c63660046104eb565b610168565b6040516100d89190610829565b60405180910390f35b6100cb6100ef3660046105d1565b61019b565b6100cb6101023660046104ca565b6101e4565b6100cb610218565b6100cb61011d3660046104eb565b61023c565b6100cb610130366004610730565b61026f565b6100cb6102a2565b6100cb6102c6565b6100cb6102ea565b6100cb61030e565b6100cb610163366004610526565b610332565b601f190180517f60815a0eeec47dddf1615fe53b31d016c31444e01b9d796db365443a6445d00882526101208220915290565b6101a08101805180516020820120601f1990930180517ff24e853034a3a450aba845a82914fbb564ad85accca6cf62be112a154520fae082529383526102008120939052905290565b600081836040516020016101f992919061080e565b6040516020818303038152906040528051906020012090505b92915050565b7f60815a0eeec47dddf1615fe53b31d016c31444e01b9d796db365443a6445d00881565b601f190180517f6cfc932a5a3d22c4359295b9f433edff52b60703fa47690a04a83e40933dd47c82526101208220915290565b601f190180517faa3429fb281b34691803133d3d978a75bb77c617ed6bc9aa162b9b30920022bb82526101608220915290565b7faa3429fb281b34691803133d3d978a75bb77c617ed6bc9aa162b9b30920022bb81565b7f6cfc932a5a3d22c4359295b9f433edff52b60703fa47690a04a83e40933dd47c81565b7ff24e853034a3a450aba845a82914fbb564ad85accca6cf62be112a154520fae081565b7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81565b805180516020808301919091208184018051805193810193909320601f19860180517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f825293875290825260a0812092905292909352905290565b80356001600160a01b038116811461021257600080fd5b600082601f8301126103b4578081fd5b813567ffffffffffffffff8111156103ca578182fd5b6103dd601f8201601f1916602001610832565b91508082528360208285010111156103f457600080fd5b8060208401602084013760009082016020015292915050565b6000610120808385031215610420578182fd5b61042981610832565b915050610436838361038d565b8152602082013560208201526040820135604082015260608201356060820152610463836080840161038d565b60808201526104758360a0840161038d565b60a08201526104878360c0840161038d565b60c082015260e082013560e08201526101008083013567ffffffffffffffff8111156104b257600080fd5b6104be858286016103a4565b82840152505092915050565b600080604083850312156104dc578182fd5b50508035926020909101359150565b6000602082840312156104fc578081fd5b813567ffffffffffffffff811115610512578182fd5b61051e8482850161040d565b949350505050565b600060208284031215610537578081fd5b813567ffffffffffffffff8082111561054e578283fd5b81840160808187031215610560578384fd5b61056a6080610832565b925080358281111561057a578485fd5b610586878284016103a4565b84525060208101358281111561059a578485fd5b6105a6878284016103a4565b602085015250604081810135908401526060013590506105c581610859565b60608201529392505050565b6000602082840312156105e2578081fd5b813567ffffffffffffffff808211156105f9578283fd5b61020091840180860383131561060d578384fd5b61061683610832565b610620878361038d565b815260208201356020820152610639876040840161038d565b604082015260608201356060820152610655876080840161038d565b608082015260a082013560a08201526106718760c0840161038d565b60c082015260e0828101359082015261010080830135908201526101208083013590820152610140808301359082015261016093506106b28785840161038d565b8482015261018093506106c78785840161038d565b848201526101a0935083820135838111156106e0578586fd5b6106ec888285016103a4565b85830152506101c0935083820135848201526101e093508382013583811115610713578586fd5b61071f888285016103a4565b948201949094529695505050505050565b600060208284031215610741578081fd5b813567ffffffffffffffff80821115610758578283fd5b61016091840180860383131561076c578384fd5b61077583610832565b61077f878361038d565b81526020820135602082015260408201356040820152606082013560608201526080820135608082015260a082013560a08201526107c08760c0840161038d565b60c08201526107d28760e0840161038d565b60e082015261010093506107e88785840161038d565b848201526101209350838201358482015261014093508382013583811115610713578586fd5b61190160f01b81526002810192909252602282015260420190565b90815260200190565b60405181810167ffffffffffffffff8111828210171561085157600080fd5b604052919050565b6001600160a01b038116811461086e57600080fd5b5056fea264697066735822122043020709c7fa20201572fe080fedc069ea5d933a11d29b629ed136cc85ff07c464736f6c63430006060033",
  "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100b35760003560e01c806358b505861161007b57806358b505861461012257806365db1dbb146101355780636f84d2da1461013d5780639a6f72ee14610145578063c49f91d31461014d578063eca34ccf14610155576100b3565b806304951329146100b85780630813424e146100e1578063176eaa49146100f4578063207dbbfe146101075780632bd4c7341461010f575b600080fd5b6100cb6100c63660046104eb565b610168565b6040516100d89190610829565b60405180910390f35b6100cb6100ef3660046105d1565b61019b565b6100cb6101023660046104ca565b6101e4565b6100cb610218565b6100cb61011d3660046104eb565b61023c565b6100cb610130366004610730565b61026f565b6100cb6102a2565b6100cb6102c6565b6100cb6102ea565b6100cb61030e565b6100cb610163366004610526565b610332565b601f190180517f60815a0eeec47dddf1615fe53b31d016c31444e01b9d796db365443a6445d00882526101208220915290565b6101a08101805180516020820120601f1990930180517ff24e853034a3a450aba845a82914fbb564ad85accca6cf62be112a154520fae082529383526102008120939052905290565b600081836040516020016101f992919061080e565b6040516020818303038152906040528051906020012090505b92915050565b7f60815a0eeec47dddf1615fe53b31d016c31444e01b9d796db365443a6445d00881565b601f190180517f6cfc932a5a3d22c4359295b9f433edff52b60703fa47690a04a83e40933dd47c82526101208220915290565b601f190180517faa3429fb281b34691803133d3d978a75bb77c617ed6bc9aa162b9b30920022bb82526101608220915290565b7faa3429fb281b34691803133d3d978a75bb77c617ed6bc9aa162b9b30920022bb81565b7f6cfc932a5a3d22c4359295b9f433edff52b60703fa47690a04a83e40933dd47c81565b7ff24e853034a3a450aba845a82914fbb564ad85accca6cf62be112a154520fae081565b7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81565b805180516020808301919091208184018051805193810193909320601f19860180517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f825293875290825260a0812092905292909352905290565b80356001600160a01b038116811461021257600080fd5b600082601f8301126103b4578081fd5b813567ffffffffffffffff8111156103ca578182fd5b6103dd601f8201601f1916602001610832565b91508082528360208285010111156103f457600080fd5b8060208401602084013760009082016020015292915050565b6000610120808385031215610420578182fd5b61042981610832565b915050610436838361038d565b8152602082013560208201526040820135604082015260608201356060820152610463836080840161038d565b60808201526104758360a0840161038d565b60a08201526104878360c0840161038d565b60c082015260e082013560e08201526101008083013567ffffffffffffffff8111156104b257600080fd5b6104be858286016103a4565b82840152505092915050565b600080604083850312156104dc578182fd5b50508035926020909101359150565b6000602082840312156104fc578081fd5b813567ffffffffffffffff811115610512578182fd5b61051e8482850161040d565b949350505050565b600060208284031215610537578081fd5b813567ffffffffffffffff8082111561054e578283fd5b81840160808187031215610560578384fd5b61056a6080610832565b925080358281111561057a578485fd5b610586878284016103a4565b84525060208101358281111561059a578485fd5b6105a6878284016103a4565b602085015250604081810135908401526060013590506105c581610859565b60608201529392505050565b6000602082840312156105e2578081fd5b813567ffffffffffffffff808211156105f9578283fd5b61020091840180860383131561060d578384fd5b61061683610832565b610620878361038d565b815260208201356020820152610639876040840161038d565b604082015260608201356060820152610655876080840161038d565b608082015260a082013560a08201526106718760c0840161038d565b60c082015260e0828101359082015261010080830135908201526101208083013590820152610140808301359082015261016093506106b28785840161038d565b8482015261018093506106c78785840161038d565b848201526101a0935083820135838111156106e0578586fd5b6106ec888285016103a4565b85830152506101c0935083820135848201526101e093508382013583811115610713578586fd5b61071f888285016103a4565b948201949094529695505050505050565b600060208284031215610741578081fd5b813567ffffffffffffffff80821115610758578283fd5b61016091840180860383131561076c578384fd5b61077583610832565b61077f878361038d565b81526020820135602082015260408201356040820152606082013560608201526080820135608082015260a082013560a08201526107c08760c0840161038d565b60c08201526107d28760e0840161038d565b60e082015261010093506107e88785840161038d565b848201526101209350838201358482015261014093508382013583811115610713578586fd5b61190160f01b81526002810192909252602282015260420190565b90815260200190565b60405181810167ffffffffffffffff8111828210171561085157600080fd5b604052919050565b6001600160a01b038116811461086e57600080fd5b5056fea264697066735822122043020709c7fa20201572fe080fedc069ea5d933a11d29b629ed136cc85ff07c464736f6c63430006060033",
  "immutableReferences": {},
  "sourceMap": "66:8264:53:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24",
  "deployedSourceMap": "66:8264:53:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;4145:793:53;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;6802:1323;;;;;;;;;:::i;8128:200::-;;;;;;;;;:::i;1436:117::-;;;:::i;4940:869::-;;;;;;;;;:::i;5811:989::-;;;;;;;;;:::i;1676:117::-;;;:::i;1556:::-;;;:::i;1796:::-;;;:::i;1316:::-;;;:::i;3061:1082::-;;;;;;;;;:::i;4145:793::-;-1:-1:-1;;4682:20:53;4676:27;;1487:66;4743:38;;4847:5;4815:38;;4896:35;;4815:38;4630:305::o;6802:1323::-;7617:20;;;;;7601:38;;;;;;-1:-1:-1;;7704:25:53;;;7698:32;;1847:66;7819:43;;7866:45;;;7985:5;7949:42;;8034:40;;;8078;;7949:42;7652:470::o;8128:200::-;8222:23;8298:11;8311;8269:54;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;8269:54:53;;;8259:65;;;;;;8252:72;;8128:200;;;;;:::o;1436:117::-;1487:66;1436:117;:::o;4940:869::-;-1:-1:-1;;5533:24:53;5527:31;;1607:66;5598:42;;5714:5;5678:42;;5763:39;;5678:42;5481:325::o;5811:989::-;-1:-1:-1;;6509:27:53;6503:34;;1727:66;6577:45;;6702:5;6663:45;;6751:42;;6663:45;6457:340::o;1676:117::-;1727:66;1676:117;:::o;1556:::-;1607:66;1556:117;:::o;1796:::-;1847:66;1796:117;:::o;1316:::-;1367:66;1316:117;:::o;3061:1082::-;3508:12;;3492:30;;;;;;;;;;3564:15;;;;;3548:33;;;;;;;;;-1:-1:-1;;3646:18:53;;3640:25;;1367:66;3789:39;;3832;;;3875;;;3981:4;3951:35;;4029:33;;;4066;;;;4103;;3951:35;3594:546::o;5:130:-1:-;72:20;;-1:-1;;;;;15750:54;;16189:35;;16179:2;;16238:1;;16228:12;280:440;;381:3;374:4;366:6;362:17;358:27;348:2;;-1:-1;;389:12;348:2;436:6;423:20;14843:18;14835:6;14832:30;14829:2;;;-1:-1;;14865:12;14829:2;458:64;14938:9;14919:17;;-1:-1;;14915:33;15006:4;14996:15;458:64;;;449:73;;542:6;535:5;528:21;646:3;15006:4;637:6;570;628:16;;625:25;622:2;;;663:1;;653:12;622:2;15977:6;15006:4;570:6;566:17;15006:4;604:5;600:16;15954:30;16033:1;16015:16;;;15006:4;16015:16;16008:27;604:5;341:379;-1:-1;;341:379;1219:1624;;1334:6;;1322:9;1317:3;1313:19;1309:32;1306:2;;;-1:-1;;1344:12;1306:2;1372:22;1334:6;1372:22;;;1363:31;;;1475:49;1520:3;1496:22;1475:49;;;1457:16;1450:75;1590:2;1648:9;1644:22;10439:20;1590:2;1609:5;1605:16;1598:75;1736:2;1794:9;1790:22;10439:20;1736:2;1755:5;1751:16;1744:75;1879:2;1937:9;1933:22;209:20;1879:2;1898:5;1894:16;1887:75;2068:49;2113:3;2034;2093:9;2089:22;2068:49;;;2034:3;2054:5;2050:16;2043:75;2227:49;2272:3;2193;2252:9;2248:22;2227:49;;;2193:3;2213:5;2209:16;2202:75;2385:49;2430:3;2351;2410:9;2406:22;2385:49;;;2351:3;2371:5;2367:16;2360:75;2496:3;2555:9;2551:22;209:20;2496:3;2516:5;2512:16;2505:75;2669:3;;2658:9;2654:19;2641:33;2694:18;2686:6;2683:30;2680:2;;;1443:1;;2716:12;2680:2;2763:58;2817:3;2808:6;2797:9;2793:22;2763:58;;;2669:3;2747:5;2743:18;2736:86;;;1300:1543;;;;;10509:366;;;10630:2;10618:9;10609:7;10605:23;10601:32;10598:2;;;-1:-1;;10636:12;10598:2;-1:-1;;209:20;;;10788:2;10827:22;;;209:20;;-1:-1;10592:283;10882:379;;11012:2;11000:9;10991:7;10987:23;10983:32;10980:2;;;-1:-1;;11018:12;10980:2;11076:17;11063:31;11114:18;11106:6;11103:30;11100:2;;;-1:-1;;11136:12;11100:2;11166:79;11237:7;11228:6;11217:9;11213:22;11166:79;;;11156:89;10974:287;-1:-1;;;;10974:287;11662:387;;11796:2;11784:9;11775:7;11771:23;11767:32;11764:2;;;-1:-1;;11802:12;11764:2;11860:17;11847:31;11898:18;;11890:6;11887:30;11884:2;;;-1:-1;;11920:12;11884:2;12016:6;12005:9;12001:22;4696:4;4684:9;4679:3;4675:19;4671:30;4668:2;;;-1:-1;;4704:12;4668:2;4732:20;4696:4;4732:20;;;4723:29;;4815:17;4802:31;11898:18;4845:6;4842:30;4839:2;;;-1:-1;;4875:12;4839:2;4920:59;4975:3;4966:6;4955:9;4951:22;4920:59;;;4902:16;4895:85;;11796:2;5061:9;5057:18;5044:32;11898:18;5088:6;5085:30;5082:2;;;-1:-1;;5118:12;5082:2;5163:59;5218:3;5209:6;5198:9;5194:22;5163:59;;;11796:2;5145:16;;5138:85;-1:-1;5287:2;5341:22;;;10439:20;5302:16;;;5295:75;5444:2;5498:22;72:20;;-1:-1;97:33;72:20;97:33;;;5444:2;5459:16;;5452:75;5463:5;11758:291;-1:-1;;;11758:291;12056:387;;12190:2;12178:9;12169:7;12165:23;12161:32;12158:2;;;-1:-1;;12196:12;12158:2;12254:17;12241:31;12292:18;;12284:6;12281:30;12278:2;;;-1:-1;;12314:12;12278:2;5718:6;;12395:22;;5697:19;;;5693:32;-1:-1;5690:2;;;-1:-1;;5728:12;5690:2;5756:22;5718:6;5756:22;;;5859:49;5904:3;5880:22;5859:49;;;5841:16;5834:75;12190:2;6035:9;6031:22;10439:20;12190:2;5996:5;5992:16;5985:75;6157:49;6202:3;6124:2;6182:9;6178:22;6157:49;;;6124:2;6143:5;6139:16;6132:75;6279:2;6337:9;6333:22;10439:20;6279:2;6298:5;6294:16;6287:75;6463:49;6508:3;6429;6488:9;6484:22;6463:49;;;6429:3;6449:5;6445:16;6438:75;6588:3;6647:9;6643:22;10439:20;6588:3;6608:5;6604:16;6597:75;6772:49;6817:3;6738;6797:9;6793:22;6772:49;;;6738:3;6754:16;;6747:75;6885:3;6940:22;;;10439:20;6901:16;;;6894:75;7029:3;7086:22;;;209:20;7045:18;;;7038:77;7180:3;7237:22;;;10439:20;7196:18;;;7189:77;7328:3;7385:22;;;10439:20;7344:18;;;7337:77;7482:3;;-1:-1;7518:49;7563:3;7539:22;;;7518:49;;;7482:3;7502:5;7498:18;7491:77;7633:3;;;7669:49;7714:3;7633;7694:9;7690:22;7669:49;;;7633:3;7653:5;7649:18;7642:77;7810:3;;;;7799:9;7795:19;7782:33;12292:18;7827:6;7824:30;7821:2;;;-1:-1;;7857:12;7821:2;7904:59;7959:3;7950:6;7939:9;7935:22;7904:59;;;7810:3;7888:5;7884:18;7877:87;;8025:3;;;;8086:9;8082:22;209:20;8025:3;8045:5;8041:18;8034:77;8200:3;;;;8189:9;8185:19;8172:33;12292:18;8217:6;8214:30;8211:2;;;-1:-1;;8247:12;8211:2;8294:58;8348:3;8339:6;8328:9;8324:22;8294:58;;;8274:18;;;8267:86;;;;8278:5;12152:291;-1:-1;;;;;;12152:291;12450:393;;12587:2;12575:9;12566:7;12562:23;12558:32;12555:2;;;-1:-1;;12593:12;12555:2;12651:17;12638:31;12689:18;;12681:6;12678:30;12675:2;;;-1:-1;;12711:12;12675:2;8550:6;;12795:22;;8529:19;;;8525:32;-1:-1;8522:2;;;-1:-1;;8560:12;8522:2;8588:22;8550:6;8588:22;;;8698:49;8743:3;8719:22;8698:49;;;8680:16;8673:75;12587:2;8878:9;8874:22;10439:20;12587:2;8839:5;8835:16;8828:75;8966:2;9024:9;9020:22;10439:20;8966:2;8985:5;8981:16;8974:75;9109:2;9167:9;9163:22;209:20;9109:2;9128:5;9124:16;9117:75;9257:3;9316:9;9312:22;10439:20;9257:3;9277:5;9273:16;9266:75;9403:3;9462:9;9458:22;10439:20;9403:3;9423:5;9419:16;9412:75;9589:49;9634:3;9555;9614:9;9610:22;9589:49;;;9555:3;9575:5;9571:16;9564:75;9745:49;9790:3;9711;9770:9;9766:22;9745:49;;;9711:3;9731:5;9727:16;9720:75;9869:3;;;9905:49;9950:3;9869;9930:9;9926:22;9905:49;;;9869:3;9889:5;9885:18;9878:77;10016:3;;;;10077:9;10073:22;209:20;10016:3;10036:5;10032:18;10025:77;10191:3;;;;10180:9;10176:19;10163:33;12689:18;10208:6;10205:30;10202:2;;;-1:-1;;10238:12;13544:650;-1:-1;;;13413:87;;13398:1;13519:11;;12929:37;;;;14046:12;;;12929:37;14157:12;;;13780:414;14201:229;12929:37;;;14327:2;14312:18;;14298:132;14437:256;14499:2;14493:9;14525:17;;;14600:18;14585:34;;14621:22;;;14582:62;14579:2;;;14657:1;;14647:12;14579:2;14499;14666:22;14477:216;;-1:-1;14477:216;16130:117;-1:-1;;;;;15750:54;;16189:35;;16179:2;;16238:1;;16228:12;16179:2;16173:74;",
  "source": "pragma solidity >0.5.0 <0.7.0;\npragma experimental ABIEncoderV2;\n\nlibrary IexecODBLibOrders\n{\n\t// bytes32 public constant    EIP712DOMAIN_TYPEHASH = keccak256(\"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\");\n\t// bytes32 public constant        APPORDER_TYPEHASH = keccak256(\"AppOrder(address app,uint256 appprice,uint256 volume,bytes32 tag,address datasetrestrict,address workerpoolrestrict,address requesterrestrict,bytes32 salt)\");\n\t// bytes32 public constant    DATASETORDER_TYPEHASH = keccak256(\"DatasetOrder(address dataset,uint256 datasetprice,uint256 volume,bytes32 tag,address apprestrict,address workerpoolrestrict,address requesterrestrict,bytes32 salt)\");\n\t// bytes32 public constant WORKERPOOLORDER_TYPEHASH = keccak256(\"WorkerpoolOrder(address workerpool,uint256 workerpoolprice,uint256 volume,bytes32 tag,uint256 category,uint256 trust,address apprestrict,address datasetrestrict,address requesterrestrict,bytes32 salt)\");\n\t// bytes32 public constant    REQUESTORDER_TYPEHASH = keccak256(\"RequestOrder(address app,uint256 appmaxprice,address dataset,uint256 datasetmaxprice,address workerpool,uint256 workerpoolmaxprice,address requester,uint256 volume,bytes32 tag,uint256 category,uint256 trust,address beneficiary,address callback,string params,bytes32 salt)\");\n\tbytes32 public constant    EIP712DOMAIN_TYPEHASH = 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f;\n\tbytes32 public constant        APPORDER_TYPEHASH = 0x60815a0eeec47dddf1615fe53b31d016c31444e01b9d796db365443a6445d008;\n\tbytes32 public constant    DATASETORDER_TYPEHASH = 0x6cfc932a5a3d22c4359295b9f433edff52b60703fa47690a04a83e40933dd47c;\n\tbytes32 public constant WORKERPOOLORDER_TYPEHASH = 0xaa3429fb281b34691803133d3d978a75bb77c617ed6bc9aa162b9b30920022bb;\n\tbytes32 public constant    REQUESTORDER_TYPEHASH = 0xf24e853034a3a450aba845a82914fbb564ad85accca6cf62be112a154520fae0;\n\n\tstruct EIP712Domain\n\t{\n\t\tstring  name;\n\t\tstring  version;\n\t\tuint256 chainId;\n\t\taddress verifyingContract;\n\t}\n\tstruct AppOrder\n\t{\n\t\taddress app;\n\t\tuint256 appprice;\n\t\tuint256 volume;\n\t\tbytes32 tag;\n\t\taddress datasetrestrict;\n\t\taddress workerpoolrestrict;\n\t\taddress requesterrestrict;\n\t\tbytes32 salt;\n\t\tbytes   sign;\n\t}\n\tstruct DatasetOrder\n\t{\n\t\taddress dataset;\n\t\tuint256 datasetprice;\n\t\tuint256 volume;\n\t\tbytes32 tag;\n\t\taddress apprestrict;\n\t\taddress workerpoolrestrict;\n\t\taddress requesterrestrict;\n\t\tbytes32 salt;\n\t\tbytes   sign;\n\t}\n\tstruct WorkerpoolOrder\n\t{\n\t\taddress workerpool;\n\t\tuint256 workerpoolprice;\n\t\tuint256 volume;\n\t\tbytes32 tag;\n\t\tuint256 category;\n\t\tuint256 trust;\n\t\taddress apprestrict;\n\t\taddress datasetrestrict;\n\t\taddress requesterrestrict;\n\t\tbytes32 salt;\n\t\tbytes   sign;\n\t}\n\tstruct RequestOrder\n\t{\n\t\taddress app;\n\t\tuint256 appmaxprice;\n\t\taddress dataset;\n\t\tuint256 datasetmaxprice;\n\t\taddress workerpool;\n\t\tuint256 workerpoolmaxprice;\n\t\taddress requester;\n\t\tuint256 volume;\n\t\tbytes32 tag;\n\t\tuint256 category;\n\t\tuint256 trust;\n\t\taddress beneficiary;\n\t\taddress callback;\n\t\tstring  params;\n\t\tbytes32 salt;\n\t\tbytes   sign;\n\t}\n\n\tfunction hash(EIP712Domain memory _domain)\n\tpublic pure returns (bytes32 domainhash)\n\t{\n\t\t/**\n\t\t * Readeable but expensive\n\t\t */\n\t\t// return keccak256(abi.encode(\n\t\t// \tEIP712DOMAIN_TYPEHASH\n\t\t// , keccak256(bytes(_domain.name))\n\t\t// , keccak256(bytes(_domain.version))\n\t\t// , _domain.chainId\n\t\t// , _domain.verifyingContract\n\t\t// ));\n\n\t\t// Compute sub-hashes\n\t\tbytes32 typeHash    = EIP712DOMAIN_TYPEHASH;\n\t\tbytes32 nameHash    = keccak256(bytes(_domain.name));\n\t\tbytes32 versionHash = keccak256(bytes(_domain.version));\n\t\tassembly {\n\t\t\t// Back up select memory\n\t\t\tlet temp1 := mload(sub(_domain, 0x20))\n\t\t\tlet temp2 := mload(add(_domain, 0x00))\n\t\t\tlet temp3 := mload(add(_domain, 0x20))\n\t\t\t// Write typeHash and sub-hashes\n\t\t\tmstore(sub(_domain, 0x20),    typeHash)\n\t\t\tmstore(add(_domain, 0x00),    nameHash)\n\t\t\tmstore(add(_domain, 0x20), versionHash)\n\t\t\t// Compute hash\n\t\t\tdomainhash := keccak256(sub(_domain, 0x20), 0xA0) // 160 = 32 + 128\n\t\t\t// Restore memory\n\t\t\tmstore(sub(_domain, 0x20), temp1)\n\t\t\tmstore(add(_domain, 0x00), temp2)\n\t\t\tmstore(add(_domain, 0x20), temp3)\n\t\t}\n\t}\n\tfunction hash(AppOrder memory _apporder)\n\tpublic pure returns (bytes32 apphash)\n\t{\n\t\t/**\n\t\t * Readeable but expensive\n\t\t */\n\t\t// return keccak256(abi.encode(\n\t\t// \tAPPORDER_TYPEHASH\n\t\t// , _apporder.app\n\t\t// , _apporder.appprice\n\t\t// , _apporder.volume\n\t\t// , _apporder.tag\n\t\t// , _apporder.datasetrestrict\n\t\t// , _apporder.workerpoolrestrict\n\t\t// , _apporder.requesterrestrict\n\t\t// , _apporder.salt\n\t\t// ));\n\n\t\t// Compute sub-hashes\n\t\tbytes32 typeHash = APPORDER_TYPEHASH;\n\t\tassembly {\n\t\t\t// Back up select memory\n\t\t\tlet temp1 := mload(sub(_apporder, 0x20))\n\t\t\t// Write typeHash and sub-hashes\n\t\t\tmstore(sub(_apporder, 0x20), typeHash)\n\t\t\t// Compute hash\n\t\t\tapphash := keccak256(sub(_apporder, 0x20), 0x120) // 288 = 32 + 256\n\t\t\t// Restore memory\n\t\t\tmstore(sub(_apporder, 0x20), temp1)\n\t\t}\n\t}\n\tfunction hash(DatasetOrder memory _datasetorder)\n\tpublic pure returns (bytes32 datasethash)\n\t{\n\t\t/**\n\t\t * Readeable but expensive\n\t\t */\n\t\t// return keccak256(abi.encode(\n\t\t// \tDATASETORDER_TYPEHASH\n\t\t// , _datasetorder.dataset\n\t\t// , _datasetorder.datasetprice\n\t\t// , _datasetorder.volume\n\t\t// , _datasetorder.tag\n\t\t// , _datasetorder.apprestrict\n\t\t// , _datasetorder.workerpoolrestrict\n\t\t// , _datasetorder.requesterrestrict\n\t\t// , _datasetorder.salt\n\t\t// ));\n\n\t\t// Compute sub-hashes\n\t\tbytes32 typeHash = DATASETORDER_TYPEHASH;\n\t\tassembly {\n\t\t\t// Back up select memory\n\t\t\tlet temp1 := mload(sub(_datasetorder, 0x20))\n\t\t\t// Write typeHash and sub-hashes\n\t\t\tmstore(sub(_datasetorder, 0x20), typeHash)\n\t\t\t// Compute hash\n\t\t\tdatasethash := keccak256(sub(_datasetorder, 0x20), 0x120) // 288 = 32 + 256\n\t\t\t// Restore memory\n\t\t\tmstore(sub(_datasetorder, 0x20), temp1)\n\t\t}\n\t}\n\tfunction hash(WorkerpoolOrder memory _workerpoolorder)\n\tpublic pure returns (bytes32 workerpoolhash)\n\t{\n\t\t/**\n\t\t * Readeable but expensive\n\t\t */\n\t\t// return keccak256(abi.encode(\n\t\t// \tWORKERPOOLORDER_TYPEHASH\n\t\t// , _workerpoolorder.workerpool\n\t\t// , _workerpoolorder.workerpoolprice\n\t\t// , _workerpoolorder.volume\n\t\t// , _workerpoolorder.tag\n\t\t// , _workerpoolorder.category\n\t\t// , _workerpoolorder.trust\n\t\t// , _workerpoolorder.apprestrict\n\t\t// , _workerpoolorder.datasetrestrict\n\t\t// , _workerpoolorder.requesterrestrict\n\t\t// , _workerpoolorder.salt\n\t\t// ));\n\n\t\t// Compute sub-hashes\n\t\tbytes32 typeHash = WORKERPOOLORDER_TYPEHASH;\n\t\tassembly {\n\t\t\t// Back up select memory\n\t\t\tlet temp1 := mload(sub(_workerpoolorder, 0x20))\n\t\t\t// Write typeHash and sub-hashes\n\t\t\tmstore(sub(_workerpoolorder, 0x20), typeHash)\n\t\t\t// Compute hash\n\t\t\tworkerpoolhash := keccak256(sub(_workerpoolorder, 0x20), 0x160) // 352 = 32 + 320\n\t\t\t// Restore memory\n\t\t\tmstore(sub(_workerpoolorder, 0x20), temp1)\n\t\t}\n\t}\n\tfunction hash(RequestOrder memory _requestorder)\n\tpublic pure returns (bytes32 requesthash)\n\t{\n\t\t/**\n\t\t * Readeable but expensive\n\t\t */\n\t\t//return keccak256(abi.encodePacked(\n\t\t//\tabi.encode(\n\t\t//\t\tREQUESTORDER_TYPEHASH\n\t\t//\t, _requestorder.app\n\t\t//\t, _requestorder.appmaxprice\n\t\t//\t, _requestorder.dataset\n\t\t//\t, _requestorder.datasetmaxprice\n\t\t//\t, _requestorder.workerpool\n\t\t//\t, _requestorder.workerpoolmaxprice\n\t\t//\t, _requestorder.requester\n\t\t//\t, _requestorder.volume\n\t\t//\t, _requestorder.tag\n\t\t//\t, _requestorder.category\n\t\t//\t, _requestorder.trust\n\t\t//\t, _requestorder.beneficiary\n\t\t//\t, _requestorder.callback\n\t\t//\t, keccak256(bytes(_requestorder.params))\n\t\t//\t, _requestorder.salt\n\t\t//\t)\n\t\t//));\n\n\t\t// Compute sub-hashes\n\t\tbytes32 typeHash = REQUESTORDER_TYPEHASH;\n\t\tbytes32 paramsHash = keccak256(bytes(_requestorder.params));\n\t\tassembly {\n\t\t\t// Back up select memory\n\t\t\tlet temp1 := mload(sub(_requestorder, 0x020))\n\t\t\tlet temp2 := mload(add(_requestorder, 0x1A0))\n\t\t\t// Write typeHash and sub-hashes\n\t\t\tmstore(sub(_requestorder, 0x020), typeHash)\n\t\t\tmstore(add(_requestorder, 0x1A0), paramsHash)\n\t\t\t// Compute hash\n\t\t\trequesthash := keccak256(sub(_requestorder, 0x20), 0x200) // 512 = 32 + 480\n\t\t\t// Restore memory\n\t\t\tmstore(sub(_requestorder, 0x020), temp1)\n\t\t\tmstore(add(_requestorder, 0x1A0), temp2)\n\t\t}\n\t}\n\n\tfunction toEthTypedStructHash(bytes32 _structHash, bytes32 _domainHash)\n\tpublic pure returns (bytes32 typedStructHash)\n\t{\n\t\treturn keccak256(abi.encodePacked(\"\\x19\\x01\", _domainHash, _structHash));\n\t}\n}\n",
  "sourcePath": "@iexec/interface/contracts/libs/IexecODBLibOrders.sol",
  "ast": {
    "absolutePath": "@iexec/interface/contracts/libs/IexecODBLibOrders.sol",
    "exportedSymbols": {
      "IexecODBLibOrders": [
        10070
      ]
    },
    "id": 10071,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 9836,
        "literals": [
          "solidity",
          ">",
          "0.5",
          ".0",
          "<",
          "0.7",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:30:53"
      },
      {
        "id": 9837,
        "literals": [
          "experimental",
          "ABIEncoderV2"
        ],
        "nodeType": "PragmaDirective",
        "src": "31:33:53"
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "library",
        "documentation": null,
        "fullyImplemented": true,
        "id": 10070,
        "linearizedBaseContracts": [
          10070
        ],
        "name": "IexecODBLibOrders",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": true,
            "functionSelector": "c49f91d3",
            "id": 9840,
            "mutability": "constant",
            "name": "EIP712DOMAIN_TYPEHASH",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 10070,
            "src": "1316:117:53",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 9838,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "1316:7:53",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "307838623733633363363962623866653364353132656363346366373539636337393233396637623137396230666661636161396137356435323262333934303066",
              "id": 9839,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1367:66:53",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_63076024560530113402979550242307453568063438748328787417531900361828837441551_by_1",
                "typeString": "int_const 6307...(69 digits omitted)...1551"
              },
              "value": "0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "207dbbfe",
            "id": 9843,
            "mutability": "constant",
            "name": "APPORDER_TYPEHASH",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 10070,
            "src": "1436:117:53",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 9841,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "1436:7:53",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "307836303831356130656565633437646464663136313566653533623331643031366333313434346530316239643739366462333635343433613634343564303038",
              "id": 9842,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1487:66:53",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_43650578295105606754044185872167596760177065654633489567262380834068554436616_by_1",
                "typeString": "int_const 4365...(69 digits omitted)...6616"
              },
              "value": "0x60815a0eeec47dddf1615fe53b31d016c31444e01b9d796db365443a6445d008"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "6f84d2da",
            "id": 9846,
            "mutability": "constant",
            "name": "DATASETORDER_TYPEHASH",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 10070,
            "src": "1556:117:53",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 9844,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "1556:7:53",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "307836636663393332613561336432326334333539323935623966343333656466663532623630373033666134373639306130346138336534303933336464343763",
              "id": 9845,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1607:66:53",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_49296048805850917090765960952023182941721207539109048881877448770624132338812_by_1",
                "typeString": "int_const 4929...(69 digits omitted)...8812"
              },
              "value": "0x6cfc932a5a3d22c4359295b9f433edff52b60703fa47690a04a83e40933dd47c"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "65db1dbb",
            "id": 9849,
            "mutability": "constant",
            "name": "WORKERPOOLORDER_TYPEHASH",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 10070,
            "src": "1676:117:53",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 9847,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "1676:7:53",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "307861613334323966623238316233343639313830333133336433643937386137356262373763363137656436626339616131363262396233303932303032326262",
              "id": 9848,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1727:66:53",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_76985350049294276919496274109432266747292083504708634510021467980890602742459_by_1",
                "typeString": "int_const 7698...(69 digits omitted)...2459"
              },
              "value": "0xaa3429fb281b34691803133d3d978a75bb77c617ed6bc9aa162b9b30920022bb"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "9a6f72ee",
            "id": 9852,
            "mutability": "constant",
            "name": "REQUESTORDER_TYPEHASH",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 10070,
            "src": "1796:117:53",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 9850,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "1796:7:53",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "307866323465383533303334613361343530616261383435613832393134666262353634616438356163636361366366363262653131326131353435323066616530",
              "id": 9851,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1847:66:53",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_109598442660088300653958618162198742178051133390042090218504207231673715194592_by_1",
                "typeString": "int_const 1095...(70 digits omitted)...4592"
              },
              "value": "0xf24e853034a3a450aba845a82914fbb564ad85accca6cf62be112a154520fae0"
            },
            "visibility": "public"
          },
          {
            "canonicalName": "IexecODBLibOrders.EIP712Domain",
            "id": 9861,
            "members": [
              {
                "constant": false,
                "id": 9854,
                "mutability": "mutable",
                "name": "name",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9861,
                "src": "1942:12:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                },
                "typeName": {
                  "id": 9853,
                  "name": "string",
                  "nodeType": "ElementaryTypeName",
                  "src": "1942:6:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_storage_ptr",
                    "typeString": "string"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9856,
                "mutability": "mutable",
                "name": "version",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9861,
                "src": "1958:15:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                },
                "typeName": {
                  "id": 9855,
                  "name": "string",
                  "nodeType": "ElementaryTypeName",
                  "src": "1958:6:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_storage_ptr",
                    "typeString": "string"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9858,
                "mutability": "mutable",
                "name": "chainId",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9861,
                "src": "1977:15:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 9857,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "1977:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9860,
                "mutability": "mutable",
                "name": "verifyingContract",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9861,
                "src": "1996:25:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 9859,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "1996:7:53",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "EIP712Domain",
            "nodeType": "StructDefinition",
            "scope": 10070,
            "src": "1917:108:53",
            "visibility": "public"
          },
          {
            "canonicalName": "IexecODBLibOrders.AppOrder",
            "id": 9880,
            "members": [
              {
                "constant": false,
                "id": 9863,
                "mutability": "mutable",
                "name": "app",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9880,
                "src": "2048:11:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 9862,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2048:7:53",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9865,
                "mutability": "mutable",
                "name": "appprice",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9880,
                "src": "2063:16:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 9864,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2063:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9867,
                "mutability": "mutable",
                "name": "volume",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9880,
                "src": "2083:14:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 9866,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2083:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9869,
                "mutability": "mutable",
                "name": "tag",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9880,
                "src": "2101:11:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 9868,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2101:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9871,
                "mutability": "mutable",
                "name": "datasetrestrict",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9880,
                "src": "2116:23:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 9870,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2116:7:53",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9873,
                "mutability": "mutable",
                "name": "workerpoolrestrict",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9880,
                "src": "2143:26:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 9872,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2143:7:53",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9875,
                "mutability": "mutable",
                "name": "requesterrestrict",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9880,
                "src": "2173:25:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 9874,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2173:7:53",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9877,
                "mutability": "mutable",
                "name": "salt",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9880,
                "src": "2202:12:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 9876,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2202:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9879,
                "mutability": "mutable",
                "name": "sign",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9880,
                "src": "2218:12:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes_storage_ptr",
                  "typeString": "bytes"
                },
                "typeName": {
                  "id": 9878,
                  "name": "bytes",
                  "nodeType": "ElementaryTypeName",
                  "src": "2218:5:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_storage_ptr",
                    "typeString": "bytes"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "AppOrder",
            "nodeType": "StructDefinition",
            "scope": 10070,
            "src": "2027:207:53",
            "visibility": "public"
          },
          {
            "canonicalName": "IexecODBLibOrders.DatasetOrder",
            "id": 9899,
            "members": [
              {
                "constant": false,
                "id": 9882,
                "mutability": "mutable",
                "name": "dataset",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9899,
                "src": "2261:15:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 9881,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2261:7:53",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9884,
                "mutability": "mutable",
                "name": "datasetprice",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9899,
                "src": "2280:20:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 9883,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2280:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9886,
                "mutability": "mutable",
                "name": "volume",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9899,
                "src": "2304:14:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 9885,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2304:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9888,
                "mutability": "mutable",
                "name": "tag",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9899,
                "src": "2322:11:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 9887,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2322:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9890,
                "mutability": "mutable",
                "name": "apprestrict",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9899,
                "src": "2337:19:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 9889,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2337:7:53",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9892,
                "mutability": "mutable",
                "name": "workerpoolrestrict",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9899,
                "src": "2360:26:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 9891,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2360:7:53",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9894,
                "mutability": "mutable",
                "name": "requesterrestrict",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9899,
                "src": "2390:25:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 9893,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2390:7:53",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9896,
                "mutability": "mutable",
                "name": "salt",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9899,
                "src": "2419:12:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 9895,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2419:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9898,
                "mutability": "mutable",
                "name": "sign",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9899,
                "src": "2435:12:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes_storage_ptr",
                  "typeString": "bytes"
                },
                "typeName": {
                  "id": 9897,
                  "name": "bytes",
                  "nodeType": "ElementaryTypeName",
                  "src": "2435:5:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_storage_ptr",
                    "typeString": "bytes"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "DatasetOrder",
            "nodeType": "StructDefinition",
            "scope": 10070,
            "src": "2236:215:53",
            "visibility": "public"
          },
          {
            "canonicalName": "IexecODBLibOrders.WorkerpoolOrder",
            "id": 9922,
            "members": [
              {
                "constant": false,
                "id": 9901,
                "mutability": "mutable",
                "name": "workerpool",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9922,
                "src": "2481:18:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 9900,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2481:7:53",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9903,
                "mutability": "mutable",
                "name": "workerpoolprice",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9922,
                "src": "2503:23:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 9902,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2503:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9905,
                "mutability": "mutable",
                "name": "volume",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9922,
                "src": "2530:14:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 9904,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2530:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9907,
                "mutability": "mutable",
                "name": "tag",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9922,
                "src": "2548:11:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 9906,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2548:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9909,
                "mutability": "mutable",
                "name": "category",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9922,
                "src": "2563:16:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 9908,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2563:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9911,
                "mutability": "mutable",
                "name": "trust",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9922,
                "src": "2583:13:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 9910,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2583:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9913,
                "mutability": "mutable",
                "name": "apprestrict",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9922,
                "src": "2600:19:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 9912,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2600:7:53",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9915,
                "mutability": "mutable",
                "name": "datasetrestrict",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9922,
                "src": "2623:23:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 9914,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2623:7:53",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9917,
                "mutability": "mutable",
                "name": "requesterrestrict",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9922,
                "src": "2650:25:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 9916,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2650:7:53",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9919,
                "mutability": "mutable",
                "name": "salt",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9922,
                "src": "2679:12:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 9918,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2679:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9921,
                "mutability": "mutable",
                "name": "sign",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9922,
                "src": "2695:12:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes_storage_ptr",
                  "typeString": "bytes"
                },
                "typeName": {
                  "id": 9920,
                  "name": "bytes",
                  "nodeType": "ElementaryTypeName",
                  "src": "2695:5:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_storage_ptr",
                    "typeString": "bytes"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "WorkerpoolOrder",
            "nodeType": "StructDefinition",
            "scope": 10070,
            "src": "2453:258:53",
            "visibility": "public"
          },
          {
            "canonicalName": "IexecODBLibOrders.RequestOrder",
            "id": 9955,
            "members": [
              {
                "constant": false,
                "id": 9924,
                "mutability": "mutable",
                "name": "app",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9955,
                "src": "2738:11:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 9923,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2738:7:53",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9926,
                "mutability": "mutable",
                "name": "appmaxprice",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9955,
                "src": "2753:19:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 9925,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2753:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9928,
                "mutability": "mutable",
                "name": "dataset",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9955,
                "src": "2776:15:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 9927,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2776:7:53",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9930,
                "mutability": "mutable",
                "name": "datasetmaxprice",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9955,
                "src": "2795:23:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 9929,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2795:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9932,
                "mutability": "mutable",
                "name": "workerpool",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9955,
                "src": "2822:18:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 9931,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2822:7:53",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9934,
                "mutability": "mutable",
                "name": "workerpoolmaxprice",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9955,
                "src": "2844:26:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 9933,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2844:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9936,
                "mutability": "mutable",
                "name": "requester",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9955,
                "src": "2874:17:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 9935,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2874:7:53",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9938,
                "mutability": "mutable",
                "name": "volume",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9955,
                "src": "2895:14:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 9937,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2895:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9940,
                "mutability": "mutable",
                "name": "tag",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9955,
                "src": "2913:11:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 9939,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2913:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9942,
                "mutability": "mutable",
                "name": "category",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9955,
                "src": "2928:16:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 9941,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2928:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9944,
                "mutability": "mutable",
                "name": "trust",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9955,
                "src": "2948:13:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 9943,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2948:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9946,
                "mutability": "mutable",
                "name": "beneficiary",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9955,
                "src": "2965:19:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 9945,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2965:7:53",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9948,
                "mutability": "mutable",
                "name": "callback",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9955,
                "src": "2988:16:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 9947,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2988:7:53",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9950,
                "mutability": "mutable",
                "name": "params",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9955,
                "src": "3008:14:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                },
                "typeName": {
                  "id": 9949,
                  "name": "string",
                  "nodeType": "ElementaryTypeName",
                  "src": "3008:6:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_storage_ptr",
                    "typeString": "string"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9952,
                "mutability": "mutable",
                "name": "salt",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9955,
                "src": "3026:12:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 9951,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "3026:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9954,
                "mutability": "mutable",
                "name": "sign",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9955,
                "src": "3042:12:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes_storage_ptr",
                  "typeString": "bytes"
                },
                "typeName": {
                  "id": 9953,
                  "name": "bytes",
                  "nodeType": "ElementaryTypeName",
                  "src": "3042:5:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_storage_ptr",
                    "typeString": "bytes"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "RequestOrder",
            "nodeType": "StructDefinition",
            "scope": 10070,
            "src": "2713:345:53",
            "visibility": "public"
          },
          {
            "body": {
              "id": 9987,
              "nodeType": "Block",
              "src": "3147:996:53",
              "statements": [
                {
                  "assignments": [
                    9963
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 9963,
                      "mutability": "mutable",
                      "name": "typeHash",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 9987,
                      "src": "3423:16:53",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 9962,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "3423:7:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 9965,
                  "initialValue": {
                    "argumentTypes": null,
                    "id": 9964,
                    "name": "EIP712DOMAIN_TYPEHASH",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 9840,
                    "src": "3445:21:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3423:43:53"
                },
                {
                  "assignments": [
                    9967
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 9967,
                      "mutability": "mutable",
                      "name": "nameHash",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 9987,
                      "src": "3470:16:53",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 9966,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "3470:7:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 9975,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 9971,
                              "name": "_domain",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9957,
                              "src": "3508:7:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_EIP712Domain_$9861_memory_ptr",
                                "typeString": "struct IexecODBLibOrders.EIP712Domain memory"
                              }
                            },
                            "id": 9972,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "name",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 9854,
                            "src": "3508:12:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          ],
                          "id": 9970,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "3502:5:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                            "typeString": "type(bytes storage pointer)"
                          },
                          "typeName": {
                            "id": 9969,
                            "name": "bytes",
                            "nodeType": "ElementaryTypeName",
                            "src": "3502:5:53",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 9973,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3502:19:53",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 9968,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": -8,
                      "src": "3492:9:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 9974,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3492:30:53",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3470:52:53"
                },
                {
                  "assignments": [
                    9977
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 9977,
                      "mutability": "mutable",
                      "name": "versionHash",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 9987,
                      "src": "3526:19:53",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 9976,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "3526:7:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 9985,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 9981,
                              "name": "_domain",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9957,
                              "src": "3564:7:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_EIP712Domain_$9861_memory_ptr",
                                "typeString": "struct IexecODBLibOrders.EIP712Domain memory"
                              }
                            },
                            "id": 9982,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "version",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 9856,
                            "src": "3564:15:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          ],
                          "id": 9980,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "3558:5:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                            "typeString": "type(bytes storage pointer)"
                          },
                          "typeName": {
                            "id": 9979,
                            "name": "bytes",
                            "nodeType": "ElementaryTypeName",
                            "src": "3558:5:53",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 9983,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3558:22:53",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 9978,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": -8,
                      "src": "3548:9:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 9984,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3548:33:53",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3526:55:53"
                },
                {
                  "AST": {
                    "nodeType": "YulBlock",
                    "src": "3594:546:53",
                    "statements": [
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "3627:38:53",
                        "value": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_domain",
                                  "nodeType": "YulIdentifier",
                                  "src": "3650:7:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "3659:4:53",
                                  "type": "",
                                  "value": "0x20"
                                }
                              ],
                              "functionName": {
                                "name": "sub",
                                "nodeType": "YulIdentifier",
                                "src": "3646:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "3646:18:53"
                            }
                          ],
                          "functionName": {
                            "name": "mload",
                            "nodeType": "YulIdentifier",
                            "src": "3640:5:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3640:25:53"
                        },
                        "variables": [
                          {
                            "name": "temp1",
                            "nodeType": "YulTypedName",
                            "src": "3631:5:53",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "3669:38:53",
                        "value": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_domain",
                                  "nodeType": "YulIdentifier",
                                  "src": "3692:7:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "3701:4:53",
                                  "type": "",
                                  "value": "0x00"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "3688:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "3688:18:53"
                            }
                          ],
                          "functionName": {
                            "name": "mload",
                            "nodeType": "YulIdentifier",
                            "src": "3682:5:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3682:25:53"
                        },
                        "variables": [
                          {
                            "name": "temp2",
                            "nodeType": "YulTypedName",
                            "src": "3673:5:53",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "3711:38:53",
                        "value": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_domain",
                                  "nodeType": "YulIdentifier",
                                  "src": "3734:7:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "3743:4:53",
                                  "type": "",
                                  "value": "0x20"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "3730:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "3730:18:53"
                            }
                          ],
                          "functionName": {
                            "name": "mload",
                            "nodeType": "YulIdentifier",
                            "src": "3724:5:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3724:25:53"
                        },
                        "variables": [
                          {
                            "name": "temp3",
                            "nodeType": "YulTypedName",
                            "src": "3715:5:53",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_domain",
                                  "nodeType": "YulIdentifier",
                                  "src": "3800:7:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "3809:4:53",
                                  "type": "",
                                  "value": "0x20"
                                }
                              ],
                              "functionName": {
                                "name": "sub",
                                "nodeType": "YulIdentifier",
                                "src": "3796:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "3796:18:53"
                            },
                            {
                              "name": "typeHash",
                              "nodeType": "YulIdentifier",
                              "src": "3819:8:53"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "3789:6:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3789:39:53"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3789:39:53"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_domain",
                                  "nodeType": "YulIdentifier",
                                  "src": "3843:7:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "3852:4:53",
                                  "type": "",
                                  "value": "0x00"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "3839:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "3839:18:53"
                            },
                            {
                              "name": "nameHash",
                              "nodeType": "YulIdentifier",
                              "src": "3862:8:53"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "3832:6:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3832:39:53"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3832:39:53"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_domain",
                                  "nodeType": "YulIdentifier",
                                  "src": "3886:7:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "3895:4:53",
                                  "type": "",
                                  "value": "0x20"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "3882:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "3882:18:53"
                            },
                            {
                              "name": "versionHash",
                              "nodeType": "YulIdentifier",
                              "src": "3902:11:53"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "3875:6:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3875:39:53"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3875:39:53"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "3937:49:53",
                        "value": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_domain",
                                  "nodeType": "YulIdentifier",
                                  "src": "3965:7:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "3974:4:53",
                                  "type": "",
                                  "value": "0x20"
                                }
                              ],
                              "functionName": {
                                "name": "sub",
                                "nodeType": "YulIdentifier",
                                "src": "3961:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "3961:18:53"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3981:4:53",
                              "type": "",
                              "value": "0xA0"
                            }
                          ],
                          "functionName": {
                            "name": "keccak256",
                            "nodeType": "YulIdentifier",
                            "src": "3951:9:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3951:35:53"
                        },
                        "variableNames": [
                          {
                            "name": "domainhash",
                            "nodeType": "YulIdentifier",
                            "src": "3937:10:53"
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_domain",
                                  "nodeType": "YulIdentifier",
                                  "src": "4040:7:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "4049:4:53",
                                  "type": "",
                                  "value": "0x20"
                                }
                              ],
                              "functionName": {
                                "name": "sub",
                                "nodeType": "YulIdentifier",
                                "src": "4036:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "4036:18:53"
                            },
                            {
                              "name": "temp1",
                              "nodeType": "YulIdentifier",
                              "src": "4056:5:53"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "4029:6:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4029:33:53"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4029:33:53"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_domain",
                                  "nodeType": "YulIdentifier",
                                  "src": "4077:7:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "4086:4:53",
                                  "type": "",
                                  "value": "0x00"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "4073:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "4073:18:53"
                            },
                            {
                              "name": "temp2",
                              "nodeType": "YulIdentifier",
                              "src": "4093:5:53"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "4066:6:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4066:33:53"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4066:33:53"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_domain",
                                  "nodeType": "YulIdentifier",
                                  "src": "4114:7:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "4123:4:53",
                                  "type": "",
                                  "value": "0x20"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "4110:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "4110:18:53"
                            },
                            {
                              "name": "temp3",
                              "nodeType": "YulIdentifier",
                              "src": "4130:5:53"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "4103:6:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4103:33:53"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4103:33:53"
                      }
                    ]
                  },
                  "evmVersion": "istanbul",
                  "externalReferences": [
                    {
                      "declaration": 9957,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "3650:7:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 9957,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "3692:7:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 9957,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "3734:7:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 9957,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "3800:7:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 9957,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "3843:7:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 9957,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "3886:7:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 9957,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "3965:7:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 9957,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "4040:7:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 9957,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "4077:7:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 9957,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "4114:7:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 9960,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "3937:10:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 9967,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "3862:8:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 9963,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "3819:8:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 9977,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "3902:11:53",
                      "valueSize": 1
                    }
                  ],
                  "id": 9986,
                  "nodeType": "InlineAssembly",
                  "src": "3585:555:53"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "eca34ccf",
            "id": 9988,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "hash",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 9958,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9957,
                  "mutability": "mutable",
                  "name": "_domain",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 9988,
                  "src": "3075:27:53",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_EIP712Domain_$9861_memory_ptr",
                    "typeString": "struct IexecODBLibOrders.EIP712Domain"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 9956,
                    "name": "EIP712Domain",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 9861,
                    "src": "3075:12:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_EIP712Domain_$9861_storage_ptr",
                      "typeString": "struct IexecODBLibOrders.EIP712Domain"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3074:29:53"
            },
            "returnParameters": {
              "id": 9961,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9960,
                  "mutability": "mutable",
                  "name": "domainhash",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 9988,
                  "src": "3126:18:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 9959,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3126:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3125:20:53"
            },
            "scope": 10070,
            "src": "3061:1082:53",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10000,
              "nodeType": "Block",
              "src": "4226:712:53",
              "statements": [
                {
                  "assignments": [
                    9996
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 9996,
                      "mutability": "mutable",
                      "name": "typeHash",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 10000,
                      "src": "4581:16:53",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 9995,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4581:7:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 9998,
                  "initialValue": {
                    "argumentTypes": null,
                    "id": 9997,
                    "name": "APPORDER_TYPEHASH",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 9843,
                    "src": "4600:17:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4581:36:53"
                },
                {
                  "AST": {
                    "nodeType": "YulBlock",
                    "src": "4630:305:53",
                    "statements": [
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "4663:40:53",
                        "value": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_apporder",
                                  "nodeType": "YulIdentifier",
                                  "src": "4686:9:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "4697:4:53",
                                  "type": "",
                                  "value": "0x20"
                                }
                              ],
                              "functionName": {
                                "name": "sub",
                                "nodeType": "YulIdentifier",
                                "src": "4682:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "4682:20:53"
                            }
                          ],
                          "functionName": {
                            "name": "mload",
                            "nodeType": "YulIdentifier",
                            "src": "4676:5:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4676:27:53"
                        },
                        "variables": [
                          {
                            "name": "temp1",
                            "nodeType": "YulTypedName",
                            "src": "4667:5:53",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_apporder",
                                  "nodeType": "YulIdentifier",
                                  "src": "4754:9:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "4765:4:53",
                                  "type": "",
                                  "value": "0x20"
                                }
                              ],
                              "functionName": {
                                "name": "sub",
                                "nodeType": "YulIdentifier",
                                "src": "4750:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "4750:20:53"
                            },
                            {
                              "name": "typeHash",
                              "nodeType": "YulIdentifier",
                              "src": "4772:8:53"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "4743:6:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4743:38:53"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4743:38:53"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "4804:49:53",
                        "value": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_apporder",
                                  "nodeType": "YulIdentifier",
                                  "src": "4829:9:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "4840:4:53",
                                  "type": "",
                                  "value": "0x20"
                                }
                              ],
                              "functionName": {
                                "name": "sub",
                                "nodeType": "YulIdentifier",
                                "src": "4825:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "4825:20:53"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4847:5:53",
                              "type": "",
                              "value": "0x120"
                            }
                          ],
                          "functionName": {
                            "name": "keccak256",
                            "nodeType": "YulIdentifier",
                            "src": "4815:9:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4815:38:53"
                        },
                        "variableNames": [
                          {
                            "name": "apphash",
                            "nodeType": "YulIdentifier",
                            "src": "4804:7:53"
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_apporder",
                                  "nodeType": "YulIdentifier",
                                  "src": "4907:9:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "4918:4:53",
                                  "type": "",
                                  "value": "0x20"
                                }
                              ],
                              "functionName": {
                                "name": "sub",
                                "nodeType": "YulIdentifier",
                                "src": "4903:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "4903:20:53"
                            },
                            {
                              "name": "temp1",
                              "nodeType": "YulIdentifier",
                              "src": "4925:5:53"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "4896:6:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4896:35:53"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4896:35:53"
                      }
                    ]
                  },
                  "evmVersion": "istanbul",
                  "externalReferences": [
                    {
                      "declaration": 9990,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "4686:9:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 9990,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "4754:9:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 9990,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "4829:9:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 9990,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "4907:9:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 9993,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "4804:7:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 9996,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "4772:8:53",
                      "valueSize": 1
                    }
                  ],
                  "id": 9999,
                  "nodeType": "InlineAssembly",
                  "src": "4621:314:53"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "04951329",
            "id": 10001,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "hash",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 9991,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9990,
                  "mutability": "mutable",
                  "name": "_apporder",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10001,
                  "src": "4159:25:53",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_AppOrder_$9880_memory_ptr",
                    "typeString": "struct IexecODBLibOrders.AppOrder"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 9989,
                    "name": "AppOrder",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 9880,
                    "src": "4159:8:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_AppOrder_$9880_storage_ptr",
                      "typeString": "struct IexecODBLibOrders.AppOrder"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4158:27:53"
            },
            "returnParameters": {
              "id": 9994,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9993,
                  "mutability": "mutable",
                  "name": "apphash",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10001,
                  "src": "4208:15:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 9992,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4208:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4207:17:53"
            },
            "scope": 10070,
            "src": "4145:793:53",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10013,
              "nodeType": "Block",
              "src": "5033:776:53",
              "statements": [
                {
                  "assignments": [
                    10009
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 10009,
                      "mutability": "mutable",
                      "name": "typeHash",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 10013,
                      "src": "5428:16:53",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 10008,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "5428:7:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 10011,
                  "initialValue": {
                    "argumentTypes": null,
                    "id": 10010,
                    "name": "DATASETORDER_TYPEHASH",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 9846,
                    "src": "5447:21:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5428:40:53"
                },
                {
                  "AST": {
                    "nodeType": "YulBlock",
                    "src": "5481:325:53",
                    "statements": [
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "5514:44:53",
                        "value": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_datasetorder",
                                  "nodeType": "YulIdentifier",
                                  "src": "5537:13:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "5552:4:53",
                                  "type": "",
                                  "value": "0x20"
                                }
                              ],
                              "functionName": {
                                "name": "sub",
                                "nodeType": "YulIdentifier",
                                "src": "5533:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "5533:24:53"
                            }
                          ],
                          "functionName": {
                            "name": "mload",
                            "nodeType": "YulIdentifier",
                            "src": "5527:5:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5527:31:53"
                        },
                        "variables": [
                          {
                            "name": "temp1",
                            "nodeType": "YulTypedName",
                            "src": "5518:5:53",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_datasetorder",
                                  "nodeType": "YulIdentifier",
                                  "src": "5609:13:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "5624:4:53",
                                  "type": "",
                                  "value": "0x20"
                                }
                              ],
                              "functionName": {
                                "name": "sub",
                                "nodeType": "YulIdentifier",
                                "src": "5605:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "5605:24:53"
                            },
                            {
                              "name": "typeHash",
                              "nodeType": "YulIdentifier",
                              "src": "5631:8:53"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "5598:6:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5598:42:53"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "5598:42:53"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "5663:57:53",
                        "value": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_datasetorder",
                                  "nodeType": "YulIdentifier",
                                  "src": "5692:13:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "5707:4:53",
                                  "type": "",
                                  "value": "0x20"
                                }
                              ],
                              "functionName": {
                                "name": "sub",
                                "nodeType": "YulIdentifier",
                                "src": "5688:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "5688:24:53"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5714:5:53",
                              "type": "",
                              "value": "0x120"
                            }
                          ],
                          "functionName": {
                            "name": "keccak256",
                            "nodeType": "YulIdentifier",
                            "src": "5678:9:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5678:42:53"
                        },
                        "variableNames": [
                          {
                            "name": "datasethash",
                            "nodeType": "YulIdentifier",
                            "src": "5663:11:53"
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_datasetorder",
                                  "nodeType": "YulIdentifier",
                                  "src": "5774:13:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "5789:4:53",
                                  "type": "",
                                  "value": "0x20"
                                }
                              ],
                              "functionName": {
                                "name": "sub",
                                "nodeType": "YulIdentifier",
                                "src": "5770:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "5770:24:53"
                            },
                            {
                              "name": "temp1",
                              "nodeType": "YulIdentifier",
                              "src": "5796:5:53"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "5763:6:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5763:39:53"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "5763:39:53"
                      }
                    ]
                  },
                  "evmVersion": "istanbul",
                  "externalReferences": [
                    {
                      "declaration": 10003,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5537:13:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 10003,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5609:13:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 10003,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5692:13:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 10003,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5774:13:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 10006,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5663:11:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 10009,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5631:8:53",
                      "valueSize": 1
                    }
                  ],
                  "id": 10012,
                  "nodeType": "InlineAssembly",
                  "src": "5472:334:53"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "2bd4c734",
            "id": 10014,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "hash",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 10004,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10003,
                  "mutability": "mutable",
                  "name": "_datasetorder",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10014,
                  "src": "4954:33:53",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DatasetOrder_$9899_memory_ptr",
                    "typeString": "struct IexecODBLibOrders.DatasetOrder"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 10002,
                    "name": "DatasetOrder",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 9899,
                    "src": "4954:12:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DatasetOrder_$9899_storage_ptr",
                      "typeString": "struct IexecODBLibOrders.DatasetOrder"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4953:35:53"
            },
            "returnParameters": {
              "id": 10007,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10006,
                  "mutability": "mutable",
                  "name": "datasethash",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10014,
                  "src": "5011:19:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 10005,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5011:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5010:21:53"
            },
            "scope": 10070,
            "src": "4940:869:53",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10026,
              "nodeType": "Block",
              "src": "5913:887:53",
              "statements": [
                {
                  "assignments": [
                    10022
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 10022,
                      "mutability": "mutable",
                      "name": "typeHash",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 10026,
                      "src": "6401:16:53",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 10021,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "6401:7:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 10024,
                  "initialValue": {
                    "argumentTypes": null,
                    "id": 10023,
                    "name": "WORKERPOOLORDER_TYPEHASH",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 9849,
                    "src": "6420:24:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6401:43:53"
                },
                {
                  "AST": {
                    "nodeType": "YulBlock",
                    "src": "6457:340:53",
                    "statements": [
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "6490:47:53",
                        "value": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_workerpoolorder",
                                  "nodeType": "YulIdentifier",
                                  "src": "6513:16:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "6531:4:53",
                                  "type": "",
                                  "value": "0x20"
                                }
                              ],
                              "functionName": {
                                "name": "sub",
                                "nodeType": "YulIdentifier",
                                "src": "6509:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "6509:27:53"
                            }
                          ],
                          "functionName": {
                            "name": "mload",
                            "nodeType": "YulIdentifier",
                            "src": "6503:5:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6503:34:53"
                        },
                        "variables": [
                          {
                            "name": "temp1",
                            "nodeType": "YulTypedName",
                            "src": "6494:5:53",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_workerpoolorder",
                                  "nodeType": "YulIdentifier",
                                  "src": "6588:16:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "6606:4:53",
                                  "type": "",
                                  "value": "0x20"
                                }
                              ],
                              "functionName": {
                                "name": "sub",
                                "nodeType": "YulIdentifier",
                                "src": "6584:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "6584:27:53"
                            },
                            {
                              "name": "typeHash",
                              "nodeType": "YulIdentifier",
                              "src": "6613:8:53"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "6577:6:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6577:45:53"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "6577:45:53"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "6645:63:53",
                        "value": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_workerpoolorder",
                                  "nodeType": "YulIdentifier",
                                  "src": "6677:16:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "6695:4:53",
                                  "type": "",
                                  "value": "0x20"
                                }
                              ],
                              "functionName": {
                                "name": "sub",
                                "nodeType": "YulIdentifier",
                                "src": "6673:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "6673:27:53"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6702:5:53",
                              "type": "",
                              "value": "0x160"
                            }
                          ],
                          "functionName": {
                            "name": "keccak256",
                            "nodeType": "YulIdentifier",
                            "src": "6663:9:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6663:45:53"
                        },
                        "variableNames": [
                          {
                            "name": "workerpoolhash",
                            "nodeType": "YulIdentifier",
                            "src": "6645:14:53"
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_workerpoolorder",
                                  "nodeType": "YulIdentifier",
                                  "src": "6762:16:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "6780:4:53",
                                  "type": "",
                                  "value": "0x20"
                                }
                              ],
                              "functionName": {
                                "name": "sub",
                                "nodeType": "YulIdentifier",
                                "src": "6758:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "6758:27:53"
                            },
                            {
                              "name": "temp1",
                              "nodeType": "YulIdentifier",
                              "src": "6787:5:53"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "6751:6:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6751:42:53"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "6751:42:53"
                      }
                    ]
                  },
                  "evmVersion": "istanbul",
                  "externalReferences": [
                    {
                      "declaration": 10016,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6513:16:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 10016,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6588:16:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 10016,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6677:16:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 10016,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6762:16:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 10022,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6613:8:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 10019,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6645:14:53",
                      "valueSize": 1
                    }
                  ],
                  "id": 10025,
                  "nodeType": "InlineAssembly",
                  "src": "6448:349:53"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "58b50586",
            "id": 10027,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "hash",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 10017,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10016,
                  "mutability": "mutable",
                  "name": "_workerpoolorder",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10027,
                  "src": "5825:39:53",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_WorkerpoolOrder_$9922_memory_ptr",
                    "typeString": "struct IexecODBLibOrders.WorkerpoolOrder"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 10015,
                    "name": "WorkerpoolOrder",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 9922,
                    "src": "5825:15:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_WorkerpoolOrder_$9922_storage_ptr",
                      "typeString": "struct IexecODBLibOrders.WorkerpoolOrder"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5824:41:53"
            },
            "returnParameters": {
              "id": 10020,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10019,
                  "mutability": "mutable",
                  "name": "workerpoolhash",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10027,
                  "src": "5888:22:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 10018,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5888:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5887:24:53"
            },
            "scope": 10070,
            "src": "5811:989:53",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10049,
              "nodeType": "Block",
              "src": "6895:1230:53",
              "statements": [
                {
                  "assignments": [
                    10035
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 10035,
                      "mutability": "mutable",
                      "name": "typeHash",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 10049,
                      "src": "7536:16:53",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 10034,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "7536:7:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 10037,
                  "initialValue": {
                    "argumentTypes": null,
                    "id": 10036,
                    "name": "REQUESTORDER_TYPEHASH",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 9852,
                    "src": "7555:21:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7536:40:53"
                },
                {
                  "assignments": [
                    10039
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 10039,
                      "mutability": "mutable",
                      "name": "paramsHash",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 10049,
                      "src": "7580:18:53",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 10038,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "7580:7:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 10047,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 10043,
                              "name": "_requestorder",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10029,
                              "src": "7617:13:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_RequestOrder_$9955_memory_ptr",
                                "typeString": "struct IexecODBLibOrders.RequestOrder memory"
                              }
                            },
                            "id": 10044,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "params",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 9950,
                            "src": "7617:20:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          ],
                          "id": 10042,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7611:5:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                            "typeString": "type(bytes storage pointer)"
                          },
                          "typeName": {
                            "id": 10041,
                            "name": "bytes",
                            "nodeType": "ElementaryTypeName",
                            "src": "7611:5:53",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 10045,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7611:27:53",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 10040,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": -8,
                      "src": "7601:9:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 10046,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7601:38:53",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7580:59:53"
                },
                {
                  "AST": {
                    "nodeType": "YulBlock",
                    "src": "7652:470:53",
                    "statements": [
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "7685:45:53",
                        "value": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_requestorder",
                                  "nodeType": "YulIdentifier",
                                  "src": "7708:13:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "7723:5:53",
                                  "type": "",
                                  "value": "0x020"
                                }
                              ],
                              "functionName": {
                                "name": "sub",
                                "nodeType": "YulIdentifier",
                                "src": "7704:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "7704:25:53"
                            }
                          ],
                          "functionName": {
                            "name": "mload",
                            "nodeType": "YulIdentifier",
                            "src": "7698:5:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7698:32:53"
                        },
                        "variables": [
                          {
                            "name": "temp1",
                            "nodeType": "YulTypedName",
                            "src": "7689:5:53",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "7734:45:53",
                        "value": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_requestorder",
                                  "nodeType": "YulIdentifier",
                                  "src": "7757:13:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "7772:5:53",
                                  "type": "",
                                  "value": "0x1A0"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "7753:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "7753:25:53"
                            }
                          ],
                          "functionName": {
                            "name": "mload",
                            "nodeType": "YulIdentifier",
                            "src": "7747:5:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7747:32:53"
                        },
                        "variables": [
                          {
                            "name": "temp2",
                            "nodeType": "YulTypedName",
                            "src": "7738:5:53",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_requestorder",
                                  "nodeType": "YulIdentifier",
                                  "src": "7830:13:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "7845:5:53",
                                  "type": "",
                                  "value": "0x020"
                                }
                              ],
                              "functionName": {
                                "name": "sub",
                                "nodeType": "YulIdentifier",
                                "src": "7826:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "7826:25:53"
                            },
                            {
                              "name": "typeHash",
                              "nodeType": "YulIdentifier",
                              "src": "7853:8:53"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "7819:6:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7819:43:53"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "7819:43:53"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_requestorder",
                                  "nodeType": "YulIdentifier",
                                  "src": "7877:13:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "7892:5:53",
                                  "type": "",
                                  "value": "0x1A0"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "7873:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "7873:25:53"
                            },
                            {
                              "name": "paramsHash",
                              "nodeType": "YulIdentifier",
                              "src": "7900:10:53"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "7866:6:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7866:45:53"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "7866:45:53"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "7934:57:53",
                        "value": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_requestorder",
                                  "nodeType": "YulIdentifier",
                                  "src": "7963:13:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "7978:4:53",
                                  "type": "",
                                  "value": "0x20"
                                }
                              ],
                              "functionName": {
                                "name": "sub",
                                "nodeType": "YulIdentifier",
                                "src": "7959:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "7959:24:53"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7985:5:53",
                              "type": "",
                              "value": "0x200"
                            }
                          ],
                          "functionName": {
                            "name": "keccak256",
                            "nodeType": "YulIdentifier",
                            "src": "7949:9:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7949:42:53"
                        },
                        "variableNames": [
                          {
                            "name": "requesthash",
                            "nodeType": "YulIdentifier",
                            "src": "7934:11:53"
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_requestorder",
                                  "nodeType": "YulIdentifier",
                                  "src": "8045:13:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "8060:5:53",
                                  "type": "",
                                  "value": "0x020"
                                }
                              ],
                              "functionName": {
                                "name": "sub",
                                "nodeType": "YulIdentifier",
                                "src": "8041:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "8041:25:53"
                            },
                            {
                              "name": "temp1",
                              "nodeType": "YulIdentifier",
                              "src": "8068:5:53"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "8034:6:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "8034:40:53"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "8034:40:53"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_requestorder",
                                  "nodeType": "YulIdentifier",
                                  "src": "8089:13:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "8104:5:53",
                                  "type": "",
                                  "value": "0x1A0"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "8085:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "8085:25:53"
                            },
                            {
                              "name": "temp2",
                              "nodeType": "YulIdentifier",
                              "src": "8112:5:53"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "8078:6:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "8078:40:53"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "8078:40:53"
                      }
                    ]
                  },
                  "evmVersion": "istanbul",
                  "externalReferences": [
                    {
                      "declaration": 10029,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7708:13:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 10029,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7757:13:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 10029,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7830:13:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 10029,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7877:13:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 10029,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7963:13:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 10029,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "8045:13:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 10029,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "8089:13:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 10039,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7900:10:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 10032,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7934:11:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 10035,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7853:8:53",
                      "valueSize": 1
                    }
                  ],
                  "id": 10048,
                  "nodeType": "InlineAssembly",
                  "src": "7643:479:53"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "0813424e",
            "id": 10050,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "hash",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 10030,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10029,
                  "mutability": "mutable",
                  "name": "_requestorder",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10050,
                  "src": "6816:33:53",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_RequestOrder_$9955_memory_ptr",
                    "typeString": "struct IexecODBLibOrders.RequestOrder"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 10028,
                    "name": "RequestOrder",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 9955,
                    "src": "6816:12:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RequestOrder_$9955_storage_ptr",
                      "typeString": "struct IexecODBLibOrders.RequestOrder"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6815:35:53"
            },
            "returnParameters": {
              "id": 10033,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10032,
                  "mutability": "mutable",
                  "name": "requesthash",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10050,
                  "src": "6873:19:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 10031,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6873:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6872:21:53"
            },
            "scope": 10070,
            "src": "6802:1323:53",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10068,
              "nodeType": "Block",
              "src": "8248:80:53",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "1901",
                            "id": 10062,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "8286:10:53",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541",
                              "typeString": "literal_string \"\u0019\u0001\""
                            },
                            "value": "\u0019\u0001"
                          },
                          {
                            "argumentTypes": null,
                            "id": 10063,
                            "name": "_domainHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10054,
                            "src": "8298:11:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 10064,
                            "name": "_structHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10052,
                            "src": "8311:11:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541",
                              "typeString": "literal_string \"\u0019\u0001\""
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 10060,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "8269:3:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 10061,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "8269:16:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 10065,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8269:54:53",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 10059,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": -8,
                      "src": "8259:9:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 10066,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8259:65:53",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 10058,
                  "id": 10067,
                  "nodeType": "Return",
                  "src": "8252:72:53"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "176eaa49",
            "id": 10069,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "toEthTypedStructHash",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 10055,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10052,
                  "mutability": "mutable",
                  "name": "_structHash",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10069,
                  "src": "8158:19:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 10051,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8158:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10054,
                  "mutability": "mutable",
                  "name": "_domainHash",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10069,
                  "src": "8179:19:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 10053,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8179:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8157:42:53"
            },
            "returnParameters": {
              "id": 10058,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10057,
                  "mutability": "mutable",
                  "name": "typedStructHash",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10069,
                  "src": "8222:23:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 10056,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8222:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8221:25:53"
            },
            "scope": 10070,
            "src": "8128:200:53",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "public"
          }
        ],
        "scope": 10071,
        "src": "66:8264:53"
      }
    ],
    "src": "0:8331:53"
  },
  "legacyAST": {
    "absolutePath": "@iexec/interface/contracts/libs/IexecODBLibOrders.sol",
    "exportedSymbols": {
      "IexecODBLibOrders": [
        10070
      ]
    },
    "id": 10071,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 9836,
        "literals": [
          "solidity",
          ">",
          "0.5",
          ".0",
          "<",
          "0.7",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:30:53"
      },
      {
        "id": 9837,
        "literals": [
          "experimental",
          "ABIEncoderV2"
        ],
        "nodeType": "PragmaDirective",
        "src": "31:33:53"
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "library",
        "documentation": null,
        "fullyImplemented": true,
        "id": 10070,
        "linearizedBaseContracts": [
          10070
        ],
        "name": "IexecODBLibOrders",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": true,
            "functionSelector": "c49f91d3",
            "id": 9840,
            "mutability": "constant",
            "name": "EIP712DOMAIN_TYPEHASH",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 10070,
            "src": "1316:117:53",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 9838,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "1316:7:53",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "307838623733633363363962623866653364353132656363346366373539636337393233396637623137396230666661636161396137356435323262333934303066",
              "id": 9839,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1367:66:53",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_63076024560530113402979550242307453568063438748328787417531900361828837441551_by_1",
                "typeString": "int_const 6307...(69 digits omitted)...1551"
              },
              "value": "0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "207dbbfe",
            "id": 9843,
            "mutability": "constant",
            "name": "APPORDER_TYPEHASH",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 10070,
            "src": "1436:117:53",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 9841,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "1436:7:53",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "307836303831356130656565633437646464663136313566653533623331643031366333313434346530316239643739366462333635343433613634343564303038",
              "id": 9842,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1487:66:53",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_43650578295105606754044185872167596760177065654633489567262380834068554436616_by_1",
                "typeString": "int_const 4365...(69 digits omitted)...6616"
              },
              "value": "0x60815a0eeec47dddf1615fe53b31d016c31444e01b9d796db365443a6445d008"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "6f84d2da",
            "id": 9846,
            "mutability": "constant",
            "name": "DATASETORDER_TYPEHASH",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 10070,
            "src": "1556:117:53",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 9844,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "1556:7:53",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "307836636663393332613561336432326334333539323935623966343333656466663532623630373033666134373639306130346138336534303933336464343763",
              "id": 9845,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1607:66:53",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_49296048805850917090765960952023182941721207539109048881877448770624132338812_by_1",
                "typeString": "int_const 4929...(69 digits omitted)...8812"
              },
              "value": "0x6cfc932a5a3d22c4359295b9f433edff52b60703fa47690a04a83e40933dd47c"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "65db1dbb",
            "id": 9849,
            "mutability": "constant",
            "name": "WORKERPOOLORDER_TYPEHASH",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 10070,
            "src": "1676:117:53",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 9847,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "1676:7:53",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "307861613334323966623238316233343639313830333133336433643937386137356262373763363137656436626339616131363262396233303932303032326262",
              "id": 9848,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1727:66:53",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_76985350049294276919496274109432266747292083504708634510021467980890602742459_by_1",
                "typeString": "int_const 7698...(69 digits omitted)...2459"
              },
              "value": "0xaa3429fb281b34691803133d3d978a75bb77c617ed6bc9aa162b9b30920022bb"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "9a6f72ee",
            "id": 9852,
            "mutability": "constant",
            "name": "REQUESTORDER_TYPEHASH",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 10070,
            "src": "1796:117:53",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 9850,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "1796:7:53",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "307866323465383533303334613361343530616261383435613832393134666262353634616438356163636361366366363262653131326131353435323066616530",
              "id": 9851,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1847:66:53",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_109598442660088300653958618162198742178051133390042090218504207231673715194592_by_1",
                "typeString": "int_const 1095...(70 digits omitted)...4592"
              },
              "value": "0xf24e853034a3a450aba845a82914fbb564ad85accca6cf62be112a154520fae0"
            },
            "visibility": "public"
          },
          {
            "canonicalName": "IexecODBLibOrders.EIP712Domain",
            "id": 9861,
            "members": [
              {
                "constant": false,
                "id": 9854,
                "mutability": "mutable",
                "name": "name",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9861,
                "src": "1942:12:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                },
                "typeName": {
                  "id": 9853,
                  "name": "string",
                  "nodeType": "ElementaryTypeName",
                  "src": "1942:6:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_storage_ptr",
                    "typeString": "string"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9856,
                "mutability": "mutable",
                "name": "version",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9861,
                "src": "1958:15:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                },
                "typeName": {
                  "id": 9855,
                  "name": "string",
                  "nodeType": "ElementaryTypeName",
                  "src": "1958:6:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_storage_ptr",
                    "typeString": "string"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9858,
                "mutability": "mutable",
                "name": "chainId",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9861,
                "src": "1977:15:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 9857,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "1977:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9860,
                "mutability": "mutable",
                "name": "verifyingContract",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9861,
                "src": "1996:25:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 9859,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "1996:7:53",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "EIP712Domain",
            "nodeType": "StructDefinition",
            "scope": 10070,
            "src": "1917:108:53",
            "visibility": "public"
          },
          {
            "canonicalName": "IexecODBLibOrders.AppOrder",
            "id": 9880,
            "members": [
              {
                "constant": false,
                "id": 9863,
                "mutability": "mutable",
                "name": "app",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9880,
                "src": "2048:11:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 9862,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2048:7:53",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9865,
                "mutability": "mutable",
                "name": "appprice",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9880,
                "src": "2063:16:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 9864,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2063:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9867,
                "mutability": "mutable",
                "name": "volume",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9880,
                "src": "2083:14:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 9866,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2083:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9869,
                "mutability": "mutable",
                "name": "tag",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9880,
                "src": "2101:11:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 9868,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2101:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9871,
                "mutability": "mutable",
                "name": "datasetrestrict",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9880,
                "src": "2116:23:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 9870,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2116:7:53",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9873,
                "mutability": "mutable",
                "name": "workerpoolrestrict",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9880,
                "src": "2143:26:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 9872,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2143:7:53",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9875,
                "mutability": "mutable",
                "name": "requesterrestrict",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9880,
                "src": "2173:25:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 9874,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2173:7:53",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9877,
                "mutability": "mutable",
                "name": "salt",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9880,
                "src": "2202:12:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 9876,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2202:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9879,
                "mutability": "mutable",
                "name": "sign",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9880,
                "src": "2218:12:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes_storage_ptr",
                  "typeString": "bytes"
                },
                "typeName": {
                  "id": 9878,
                  "name": "bytes",
                  "nodeType": "ElementaryTypeName",
                  "src": "2218:5:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_storage_ptr",
                    "typeString": "bytes"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "AppOrder",
            "nodeType": "StructDefinition",
            "scope": 10070,
            "src": "2027:207:53",
            "visibility": "public"
          },
          {
            "canonicalName": "IexecODBLibOrders.DatasetOrder",
            "id": 9899,
            "members": [
              {
                "constant": false,
                "id": 9882,
                "mutability": "mutable",
                "name": "dataset",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9899,
                "src": "2261:15:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 9881,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2261:7:53",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9884,
                "mutability": "mutable",
                "name": "datasetprice",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9899,
                "src": "2280:20:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 9883,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2280:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9886,
                "mutability": "mutable",
                "name": "volume",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9899,
                "src": "2304:14:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 9885,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2304:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9888,
                "mutability": "mutable",
                "name": "tag",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9899,
                "src": "2322:11:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 9887,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2322:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9890,
                "mutability": "mutable",
                "name": "apprestrict",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9899,
                "src": "2337:19:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 9889,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2337:7:53",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9892,
                "mutability": "mutable",
                "name": "workerpoolrestrict",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9899,
                "src": "2360:26:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 9891,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2360:7:53",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9894,
                "mutability": "mutable",
                "name": "requesterrestrict",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9899,
                "src": "2390:25:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 9893,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2390:7:53",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9896,
                "mutability": "mutable",
                "name": "salt",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9899,
                "src": "2419:12:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 9895,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2419:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9898,
                "mutability": "mutable",
                "name": "sign",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9899,
                "src": "2435:12:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes_storage_ptr",
                  "typeString": "bytes"
                },
                "typeName": {
                  "id": 9897,
                  "name": "bytes",
                  "nodeType": "ElementaryTypeName",
                  "src": "2435:5:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_storage_ptr",
                    "typeString": "bytes"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "DatasetOrder",
            "nodeType": "StructDefinition",
            "scope": 10070,
            "src": "2236:215:53",
            "visibility": "public"
          },
          {
            "canonicalName": "IexecODBLibOrders.WorkerpoolOrder",
            "id": 9922,
            "members": [
              {
                "constant": false,
                "id": 9901,
                "mutability": "mutable",
                "name": "workerpool",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9922,
                "src": "2481:18:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 9900,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2481:7:53",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9903,
                "mutability": "mutable",
                "name": "workerpoolprice",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9922,
                "src": "2503:23:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 9902,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2503:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9905,
                "mutability": "mutable",
                "name": "volume",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9922,
                "src": "2530:14:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 9904,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2530:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9907,
                "mutability": "mutable",
                "name": "tag",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9922,
                "src": "2548:11:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 9906,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2548:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9909,
                "mutability": "mutable",
                "name": "category",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9922,
                "src": "2563:16:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 9908,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2563:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9911,
                "mutability": "mutable",
                "name": "trust",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9922,
                "src": "2583:13:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 9910,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2583:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9913,
                "mutability": "mutable",
                "name": "apprestrict",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9922,
                "src": "2600:19:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 9912,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2600:7:53",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9915,
                "mutability": "mutable",
                "name": "datasetrestrict",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9922,
                "src": "2623:23:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 9914,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2623:7:53",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9917,
                "mutability": "mutable",
                "name": "requesterrestrict",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9922,
                "src": "2650:25:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 9916,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2650:7:53",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9919,
                "mutability": "mutable",
                "name": "salt",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9922,
                "src": "2679:12:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 9918,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2679:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9921,
                "mutability": "mutable",
                "name": "sign",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9922,
                "src": "2695:12:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes_storage_ptr",
                  "typeString": "bytes"
                },
                "typeName": {
                  "id": 9920,
                  "name": "bytes",
                  "nodeType": "ElementaryTypeName",
                  "src": "2695:5:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_storage_ptr",
                    "typeString": "bytes"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "WorkerpoolOrder",
            "nodeType": "StructDefinition",
            "scope": 10070,
            "src": "2453:258:53",
            "visibility": "public"
          },
          {
            "canonicalName": "IexecODBLibOrders.RequestOrder",
            "id": 9955,
            "members": [
              {
                "constant": false,
                "id": 9924,
                "mutability": "mutable",
                "name": "app",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9955,
                "src": "2738:11:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 9923,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2738:7:53",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9926,
                "mutability": "mutable",
                "name": "appmaxprice",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9955,
                "src": "2753:19:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 9925,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2753:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9928,
                "mutability": "mutable",
                "name": "dataset",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9955,
                "src": "2776:15:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 9927,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2776:7:53",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9930,
                "mutability": "mutable",
                "name": "datasetmaxprice",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9955,
                "src": "2795:23:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 9929,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2795:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9932,
                "mutability": "mutable",
                "name": "workerpool",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9955,
                "src": "2822:18:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 9931,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2822:7:53",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9934,
                "mutability": "mutable",
                "name": "workerpoolmaxprice",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9955,
                "src": "2844:26:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 9933,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2844:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9936,
                "mutability": "mutable",
                "name": "requester",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9955,
                "src": "2874:17:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 9935,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2874:7:53",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9938,
                "mutability": "mutable",
                "name": "volume",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9955,
                "src": "2895:14:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 9937,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2895:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9940,
                "mutability": "mutable",
                "name": "tag",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9955,
                "src": "2913:11:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 9939,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2913:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9942,
                "mutability": "mutable",
                "name": "category",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9955,
                "src": "2928:16:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 9941,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2928:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9944,
                "mutability": "mutable",
                "name": "trust",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9955,
                "src": "2948:13:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 9943,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2948:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9946,
                "mutability": "mutable",
                "name": "beneficiary",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9955,
                "src": "2965:19:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 9945,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2965:7:53",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9948,
                "mutability": "mutable",
                "name": "callback",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9955,
                "src": "2988:16:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 9947,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2988:7:53",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9950,
                "mutability": "mutable",
                "name": "params",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9955,
                "src": "3008:14:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                },
                "typeName": {
                  "id": 9949,
                  "name": "string",
                  "nodeType": "ElementaryTypeName",
                  "src": "3008:6:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_storage_ptr",
                    "typeString": "string"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9952,
                "mutability": "mutable",
                "name": "salt",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9955,
                "src": "3026:12:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 9951,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "3026:7:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 9954,
                "mutability": "mutable",
                "name": "sign",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 9955,
                "src": "3042:12:53",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes_storage_ptr",
                  "typeString": "bytes"
                },
                "typeName": {
                  "id": 9953,
                  "name": "bytes",
                  "nodeType": "ElementaryTypeName",
                  "src": "3042:5:53",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_storage_ptr",
                    "typeString": "bytes"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "RequestOrder",
            "nodeType": "StructDefinition",
            "scope": 10070,
            "src": "2713:345:53",
            "visibility": "public"
          },
          {
            "body": {
              "id": 9987,
              "nodeType": "Block",
              "src": "3147:996:53",
              "statements": [
                {
                  "assignments": [
                    9963
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 9963,
                      "mutability": "mutable",
                      "name": "typeHash",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 9987,
                      "src": "3423:16:53",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 9962,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "3423:7:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 9965,
                  "initialValue": {
                    "argumentTypes": null,
                    "id": 9964,
                    "name": "EIP712DOMAIN_TYPEHASH",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 9840,
                    "src": "3445:21:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3423:43:53"
                },
                {
                  "assignments": [
                    9967
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 9967,
                      "mutability": "mutable",
                      "name": "nameHash",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 9987,
                      "src": "3470:16:53",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 9966,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "3470:7:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 9975,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 9971,
                              "name": "_domain",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9957,
                              "src": "3508:7:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_EIP712Domain_$9861_memory_ptr",
                                "typeString": "struct IexecODBLibOrders.EIP712Domain memory"
                              }
                            },
                            "id": 9972,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "name",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 9854,
                            "src": "3508:12:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          ],
                          "id": 9970,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "3502:5:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                            "typeString": "type(bytes storage pointer)"
                          },
                          "typeName": {
                            "id": 9969,
                            "name": "bytes",
                            "nodeType": "ElementaryTypeName",
                            "src": "3502:5:53",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 9973,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3502:19:53",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 9968,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": -8,
                      "src": "3492:9:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 9974,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3492:30:53",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3470:52:53"
                },
                {
                  "assignments": [
                    9977
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 9977,
                      "mutability": "mutable",
                      "name": "versionHash",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 9987,
                      "src": "3526:19:53",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 9976,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "3526:7:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 9985,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 9981,
                              "name": "_domain",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9957,
                              "src": "3564:7:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_EIP712Domain_$9861_memory_ptr",
                                "typeString": "struct IexecODBLibOrders.EIP712Domain memory"
                              }
                            },
                            "id": 9982,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "version",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 9856,
                            "src": "3564:15:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          ],
                          "id": 9980,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "3558:5:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                            "typeString": "type(bytes storage pointer)"
                          },
                          "typeName": {
                            "id": 9979,
                            "name": "bytes",
                            "nodeType": "ElementaryTypeName",
                            "src": "3558:5:53",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 9983,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3558:22:53",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 9978,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": -8,
                      "src": "3548:9:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 9984,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3548:33:53",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3526:55:53"
                },
                {
                  "AST": {
                    "nodeType": "YulBlock",
                    "src": "3594:546:53",
                    "statements": [
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "3627:38:53",
                        "value": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_domain",
                                  "nodeType": "YulIdentifier",
                                  "src": "3650:7:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "3659:4:53",
                                  "type": "",
                                  "value": "0x20"
                                }
                              ],
                              "functionName": {
                                "name": "sub",
                                "nodeType": "YulIdentifier",
                                "src": "3646:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "3646:18:53"
                            }
                          ],
                          "functionName": {
                            "name": "mload",
                            "nodeType": "YulIdentifier",
                            "src": "3640:5:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3640:25:53"
                        },
                        "variables": [
                          {
                            "name": "temp1",
                            "nodeType": "YulTypedName",
                            "src": "3631:5:53",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "3669:38:53",
                        "value": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_domain",
                                  "nodeType": "YulIdentifier",
                                  "src": "3692:7:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "3701:4:53",
                                  "type": "",
                                  "value": "0x00"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "3688:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "3688:18:53"
                            }
                          ],
                          "functionName": {
                            "name": "mload",
                            "nodeType": "YulIdentifier",
                            "src": "3682:5:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3682:25:53"
                        },
                        "variables": [
                          {
                            "name": "temp2",
                            "nodeType": "YulTypedName",
                            "src": "3673:5:53",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "3711:38:53",
                        "value": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_domain",
                                  "nodeType": "YulIdentifier",
                                  "src": "3734:7:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "3743:4:53",
                                  "type": "",
                                  "value": "0x20"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "3730:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "3730:18:53"
                            }
                          ],
                          "functionName": {
                            "name": "mload",
                            "nodeType": "YulIdentifier",
                            "src": "3724:5:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3724:25:53"
                        },
                        "variables": [
                          {
                            "name": "temp3",
                            "nodeType": "YulTypedName",
                            "src": "3715:5:53",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_domain",
                                  "nodeType": "YulIdentifier",
                                  "src": "3800:7:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "3809:4:53",
                                  "type": "",
                                  "value": "0x20"
                                }
                              ],
                              "functionName": {
                                "name": "sub",
                                "nodeType": "YulIdentifier",
                                "src": "3796:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "3796:18:53"
                            },
                            {
                              "name": "typeHash",
                              "nodeType": "YulIdentifier",
                              "src": "3819:8:53"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "3789:6:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3789:39:53"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3789:39:53"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_domain",
                                  "nodeType": "YulIdentifier",
                                  "src": "3843:7:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "3852:4:53",
                                  "type": "",
                                  "value": "0x00"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "3839:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "3839:18:53"
                            },
                            {
                              "name": "nameHash",
                              "nodeType": "YulIdentifier",
                              "src": "3862:8:53"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "3832:6:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3832:39:53"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3832:39:53"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_domain",
                                  "nodeType": "YulIdentifier",
                                  "src": "3886:7:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "3895:4:53",
                                  "type": "",
                                  "value": "0x20"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "3882:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "3882:18:53"
                            },
                            {
                              "name": "versionHash",
                              "nodeType": "YulIdentifier",
                              "src": "3902:11:53"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "3875:6:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3875:39:53"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3875:39:53"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "3937:49:53",
                        "value": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_domain",
                                  "nodeType": "YulIdentifier",
                                  "src": "3965:7:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "3974:4:53",
                                  "type": "",
                                  "value": "0x20"
                                }
                              ],
                              "functionName": {
                                "name": "sub",
                                "nodeType": "YulIdentifier",
                                "src": "3961:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "3961:18:53"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3981:4:53",
                              "type": "",
                              "value": "0xA0"
                            }
                          ],
                          "functionName": {
                            "name": "keccak256",
                            "nodeType": "YulIdentifier",
                            "src": "3951:9:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3951:35:53"
                        },
                        "variableNames": [
                          {
                            "name": "domainhash",
                            "nodeType": "YulIdentifier",
                            "src": "3937:10:53"
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_domain",
                                  "nodeType": "YulIdentifier",
                                  "src": "4040:7:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "4049:4:53",
                                  "type": "",
                                  "value": "0x20"
                                }
                              ],
                              "functionName": {
                                "name": "sub",
                                "nodeType": "YulIdentifier",
                                "src": "4036:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "4036:18:53"
                            },
                            {
                              "name": "temp1",
                              "nodeType": "YulIdentifier",
                              "src": "4056:5:53"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "4029:6:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4029:33:53"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4029:33:53"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_domain",
                                  "nodeType": "YulIdentifier",
                                  "src": "4077:7:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "4086:4:53",
                                  "type": "",
                                  "value": "0x00"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "4073:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "4073:18:53"
                            },
                            {
                              "name": "temp2",
                              "nodeType": "YulIdentifier",
                              "src": "4093:5:53"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "4066:6:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4066:33:53"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4066:33:53"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_domain",
                                  "nodeType": "YulIdentifier",
                                  "src": "4114:7:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "4123:4:53",
                                  "type": "",
                                  "value": "0x20"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "4110:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "4110:18:53"
                            },
                            {
                              "name": "temp3",
                              "nodeType": "YulIdentifier",
                              "src": "4130:5:53"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "4103:6:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4103:33:53"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4103:33:53"
                      }
                    ]
                  },
                  "evmVersion": "istanbul",
                  "externalReferences": [
                    {
                      "declaration": 9957,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "3650:7:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 9957,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "3692:7:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 9957,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "3734:7:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 9957,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "3800:7:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 9957,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "3843:7:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 9957,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "3886:7:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 9957,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "3965:7:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 9957,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "4040:7:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 9957,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "4077:7:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 9957,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "4114:7:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 9960,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "3937:10:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 9967,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "3862:8:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 9963,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "3819:8:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 9977,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "3902:11:53",
                      "valueSize": 1
                    }
                  ],
                  "id": 9986,
                  "nodeType": "InlineAssembly",
                  "src": "3585:555:53"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "eca34ccf",
            "id": 9988,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "hash",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 9958,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9957,
                  "mutability": "mutable",
                  "name": "_domain",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 9988,
                  "src": "3075:27:53",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_EIP712Domain_$9861_memory_ptr",
                    "typeString": "struct IexecODBLibOrders.EIP712Domain"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 9956,
                    "name": "EIP712Domain",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 9861,
                    "src": "3075:12:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_EIP712Domain_$9861_storage_ptr",
                      "typeString": "struct IexecODBLibOrders.EIP712Domain"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3074:29:53"
            },
            "returnParameters": {
              "id": 9961,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9960,
                  "mutability": "mutable",
                  "name": "domainhash",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 9988,
                  "src": "3126:18:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 9959,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3126:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3125:20:53"
            },
            "scope": 10070,
            "src": "3061:1082:53",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10000,
              "nodeType": "Block",
              "src": "4226:712:53",
              "statements": [
                {
                  "assignments": [
                    9996
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 9996,
                      "mutability": "mutable",
                      "name": "typeHash",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 10000,
                      "src": "4581:16:53",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 9995,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4581:7:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 9998,
                  "initialValue": {
                    "argumentTypes": null,
                    "id": 9997,
                    "name": "APPORDER_TYPEHASH",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 9843,
                    "src": "4600:17:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4581:36:53"
                },
                {
                  "AST": {
                    "nodeType": "YulBlock",
                    "src": "4630:305:53",
                    "statements": [
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "4663:40:53",
                        "value": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_apporder",
                                  "nodeType": "YulIdentifier",
                                  "src": "4686:9:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "4697:4:53",
                                  "type": "",
                                  "value": "0x20"
                                }
                              ],
                              "functionName": {
                                "name": "sub",
                                "nodeType": "YulIdentifier",
                                "src": "4682:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "4682:20:53"
                            }
                          ],
                          "functionName": {
                            "name": "mload",
                            "nodeType": "YulIdentifier",
                            "src": "4676:5:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4676:27:53"
                        },
                        "variables": [
                          {
                            "name": "temp1",
                            "nodeType": "YulTypedName",
                            "src": "4667:5:53",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_apporder",
                                  "nodeType": "YulIdentifier",
                                  "src": "4754:9:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "4765:4:53",
                                  "type": "",
                                  "value": "0x20"
                                }
                              ],
                              "functionName": {
                                "name": "sub",
                                "nodeType": "YulIdentifier",
                                "src": "4750:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "4750:20:53"
                            },
                            {
                              "name": "typeHash",
                              "nodeType": "YulIdentifier",
                              "src": "4772:8:53"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "4743:6:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4743:38:53"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4743:38:53"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "4804:49:53",
                        "value": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_apporder",
                                  "nodeType": "YulIdentifier",
                                  "src": "4829:9:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "4840:4:53",
                                  "type": "",
                                  "value": "0x20"
                                }
                              ],
                              "functionName": {
                                "name": "sub",
                                "nodeType": "YulIdentifier",
                                "src": "4825:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "4825:20:53"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4847:5:53",
                              "type": "",
                              "value": "0x120"
                            }
                          ],
                          "functionName": {
                            "name": "keccak256",
                            "nodeType": "YulIdentifier",
                            "src": "4815:9:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4815:38:53"
                        },
                        "variableNames": [
                          {
                            "name": "apphash",
                            "nodeType": "YulIdentifier",
                            "src": "4804:7:53"
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_apporder",
                                  "nodeType": "YulIdentifier",
                                  "src": "4907:9:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "4918:4:53",
                                  "type": "",
                                  "value": "0x20"
                                }
                              ],
                              "functionName": {
                                "name": "sub",
                                "nodeType": "YulIdentifier",
                                "src": "4903:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "4903:20:53"
                            },
                            {
                              "name": "temp1",
                              "nodeType": "YulIdentifier",
                              "src": "4925:5:53"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "4896:6:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4896:35:53"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4896:35:53"
                      }
                    ]
                  },
                  "evmVersion": "istanbul",
                  "externalReferences": [
                    {
                      "declaration": 9990,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "4686:9:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 9990,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "4754:9:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 9990,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "4829:9:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 9990,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "4907:9:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 9993,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "4804:7:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 9996,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "4772:8:53",
                      "valueSize": 1
                    }
                  ],
                  "id": 9999,
                  "nodeType": "InlineAssembly",
                  "src": "4621:314:53"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "04951329",
            "id": 10001,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "hash",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 9991,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9990,
                  "mutability": "mutable",
                  "name": "_apporder",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10001,
                  "src": "4159:25:53",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_AppOrder_$9880_memory_ptr",
                    "typeString": "struct IexecODBLibOrders.AppOrder"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 9989,
                    "name": "AppOrder",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 9880,
                    "src": "4159:8:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_AppOrder_$9880_storage_ptr",
                      "typeString": "struct IexecODBLibOrders.AppOrder"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4158:27:53"
            },
            "returnParameters": {
              "id": 9994,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9993,
                  "mutability": "mutable",
                  "name": "apphash",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10001,
                  "src": "4208:15:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 9992,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4208:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4207:17:53"
            },
            "scope": 10070,
            "src": "4145:793:53",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10013,
              "nodeType": "Block",
              "src": "5033:776:53",
              "statements": [
                {
                  "assignments": [
                    10009
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 10009,
                      "mutability": "mutable",
                      "name": "typeHash",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 10013,
                      "src": "5428:16:53",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 10008,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "5428:7:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 10011,
                  "initialValue": {
                    "argumentTypes": null,
                    "id": 10010,
                    "name": "DATASETORDER_TYPEHASH",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 9846,
                    "src": "5447:21:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5428:40:53"
                },
                {
                  "AST": {
                    "nodeType": "YulBlock",
                    "src": "5481:325:53",
                    "statements": [
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "5514:44:53",
                        "value": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_datasetorder",
                                  "nodeType": "YulIdentifier",
                                  "src": "5537:13:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "5552:4:53",
                                  "type": "",
                                  "value": "0x20"
                                }
                              ],
                              "functionName": {
                                "name": "sub",
                                "nodeType": "YulIdentifier",
                                "src": "5533:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "5533:24:53"
                            }
                          ],
                          "functionName": {
                            "name": "mload",
                            "nodeType": "YulIdentifier",
                            "src": "5527:5:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5527:31:53"
                        },
                        "variables": [
                          {
                            "name": "temp1",
                            "nodeType": "YulTypedName",
                            "src": "5518:5:53",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_datasetorder",
                                  "nodeType": "YulIdentifier",
                                  "src": "5609:13:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "5624:4:53",
                                  "type": "",
                                  "value": "0x20"
                                }
                              ],
                              "functionName": {
                                "name": "sub",
                                "nodeType": "YulIdentifier",
                                "src": "5605:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "5605:24:53"
                            },
                            {
                              "name": "typeHash",
                              "nodeType": "YulIdentifier",
                              "src": "5631:8:53"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "5598:6:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5598:42:53"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "5598:42:53"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "5663:57:53",
                        "value": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_datasetorder",
                                  "nodeType": "YulIdentifier",
                                  "src": "5692:13:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "5707:4:53",
                                  "type": "",
                                  "value": "0x20"
                                }
                              ],
                              "functionName": {
                                "name": "sub",
                                "nodeType": "YulIdentifier",
                                "src": "5688:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "5688:24:53"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5714:5:53",
                              "type": "",
                              "value": "0x120"
                            }
                          ],
                          "functionName": {
                            "name": "keccak256",
                            "nodeType": "YulIdentifier",
                            "src": "5678:9:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5678:42:53"
                        },
                        "variableNames": [
                          {
                            "name": "datasethash",
                            "nodeType": "YulIdentifier",
                            "src": "5663:11:53"
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_datasetorder",
                                  "nodeType": "YulIdentifier",
                                  "src": "5774:13:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "5789:4:53",
                                  "type": "",
                                  "value": "0x20"
                                }
                              ],
                              "functionName": {
                                "name": "sub",
                                "nodeType": "YulIdentifier",
                                "src": "5770:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "5770:24:53"
                            },
                            {
                              "name": "temp1",
                              "nodeType": "YulIdentifier",
                              "src": "5796:5:53"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "5763:6:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5763:39:53"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "5763:39:53"
                      }
                    ]
                  },
                  "evmVersion": "istanbul",
                  "externalReferences": [
                    {
                      "declaration": 10003,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5537:13:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 10003,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5609:13:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 10003,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5692:13:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 10003,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5774:13:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 10006,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5663:11:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 10009,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5631:8:53",
                      "valueSize": 1
                    }
                  ],
                  "id": 10012,
                  "nodeType": "InlineAssembly",
                  "src": "5472:334:53"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "2bd4c734",
            "id": 10014,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "hash",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 10004,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10003,
                  "mutability": "mutable",
                  "name": "_datasetorder",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10014,
                  "src": "4954:33:53",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DatasetOrder_$9899_memory_ptr",
                    "typeString": "struct IexecODBLibOrders.DatasetOrder"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 10002,
                    "name": "DatasetOrder",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 9899,
                    "src": "4954:12:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DatasetOrder_$9899_storage_ptr",
                      "typeString": "struct IexecODBLibOrders.DatasetOrder"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4953:35:53"
            },
            "returnParameters": {
              "id": 10007,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10006,
                  "mutability": "mutable",
                  "name": "datasethash",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10014,
                  "src": "5011:19:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 10005,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5011:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5010:21:53"
            },
            "scope": 10070,
            "src": "4940:869:53",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10026,
              "nodeType": "Block",
              "src": "5913:887:53",
              "statements": [
                {
                  "assignments": [
                    10022
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 10022,
                      "mutability": "mutable",
                      "name": "typeHash",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 10026,
                      "src": "6401:16:53",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 10021,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "6401:7:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 10024,
                  "initialValue": {
                    "argumentTypes": null,
                    "id": 10023,
                    "name": "WORKERPOOLORDER_TYPEHASH",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 9849,
                    "src": "6420:24:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6401:43:53"
                },
                {
                  "AST": {
                    "nodeType": "YulBlock",
                    "src": "6457:340:53",
                    "statements": [
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "6490:47:53",
                        "value": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_workerpoolorder",
                                  "nodeType": "YulIdentifier",
                                  "src": "6513:16:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "6531:4:53",
                                  "type": "",
                                  "value": "0x20"
                                }
                              ],
                              "functionName": {
                                "name": "sub",
                                "nodeType": "YulIdentifier",
                                "src": "6509:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "6509:27:53"
                            }
                          ],
                          "functionName": {
                            "name": "mload",
                            "nodeType": "YulIdentifier",
                            "src": "6503:5:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6503:34:53"
                        },
                        "variables": [
                          {
                            "name": "temp1",
                            "nodeType": "YulTypedName",
                            "src": "6494:5:53",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_workerpoolorder",
                                  "nodeType": "YulIdentifier",
                                  "src": "6588:16:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "6606:4:53",
                                  "type": "",
                                  "value": "0x20"
                                }
                              ],
                              "functionName": {
                                "name": "sub",
                                "nodeType": "YulIdentifier",
                                "src": "6584:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "6584:27:53"
                            },
                            {
                              "name": "typeHash",
                              "nodeType": "YulIdentifier",
                              "src": "6613:8:53"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "6577:6:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6577:45:53"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "6577:45:53"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "6645:63:53",
                        "value": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_workerpoolorder",
                                  "nodeType": "YulIdentifier",
                                  "src": "6677:16:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "6695:4:53",
                                  "type": "",
                                  "value": "0x20"
                                }
                              ],
                              "functionName": {
                                "name": "sub",
                                "nodeType": "YulIdentifier",
                                "src": "6673:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "6673:27:53"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6702:5:53",
                              "type": "",
                              "value": "0x160"
                            }
                          ],
                          "functionName": {
                            "name": "keccak256",
                            "nodeType": "YulIdentifier",
                            "src": "6663:9:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6663:45:53"
                        },
                        "variableNames": [
                          {
                            "name": "workerpoolhash",
                            "nodeType": "YulIdentifier",
                            "src": "6645:14:53"
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_workerpoolorder",
                                  "nodeType": "YulIdentifier",
                                  "src": "6762:16:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "6780:4:53",
                                  "type": "",
                                  "value": "0x20"
                                }
                              ],
                              "functionName": {
                                "name": "sub",
                                "nodeType": "YulIdentifier",
                                "src": "6758:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "6758:27:53"
                            },
                            {
                              "name": "temp1",
                              "nodeType": "YulIdentifier",
                              "src": "6787:5:53"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "6751:6:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6751:42:53"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "6751:42:53"
                      }
                    ]
                  },
                  "evmVersion": "istanbul",
                  "externalReferences": [
                    {
                      "declaration": 10016,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6513:16:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 10016,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6588:16:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 10016,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6677:16:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 10016,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6762:16:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 10022,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6613:8:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 10019,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6645:14:53",
                      "valueSize": 1
                    }
                  ],
                  "id": 10025,
                  "nodeType": "InlineAssembly",
                  "src": "6448:349:53"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "58b50586",
            "id": 10027,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "hash",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 10017,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10016,
                  "mutability": "mutable",
                  "name": "_workerpoolorder",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10027,
                  "src": "5825:39:53",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_WorkerpoolOrder_$9922_memory_ptr",
                    "typeString": "struct IexecODBLibOrders.WorkerpoolOrder"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 10015,
                    "name": "WorkerpoolOrder",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 9922,
                    "src": "5825:15:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_WorkerpoolOrder_$9922_storage_ptr",
                      "typeString": "struct IexecODBLibOrders.WorkerpoolOrder"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5824:41:53"
            },
            "returnParameters": {
              "id": 10020,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10019,
                  "mutability": "mutable",
                  "name": "workerpoolhash",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10027,
                  "src": "5888:22:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 10018,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5888:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5887:24:53"
            },
            "scope": 10070,
            "src": "5811:989:53",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10049,
              "nodeType": "Block",
              "src": "6895:1230:53",
              "statements": [
                {
                  "assignments": [
                    10035
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 10035,
                      "mutability": "mutable",
                      "name": "typeHash",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 10049,
                      "src": "7536:16:53",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 10034,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "7536:7:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 10037,
                  "initialValue": {
                    "argumentTypes": null,
                    "id": 10036,
                    "name": "REQUESTORDER_TYPEHASH",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 9852,
                    "src": "7555:21:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7536:40:53"
                },
                {
                  "assignments": [
                    10039
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 10039,
                      "mutability": "mutable",
                      "name": "paramsHash",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 10049,
                      "src": "7580:18:53",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 10038,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "7580:7:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 10047,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 10043,
                              "name": "_requestorder",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10029,
                              "src": "7617:13:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_RequestOrder_$9955_memory_ptr",
                                "typeString": "struct IexecODBLibOrders.RequestOrder memory"
                              }
                            },
                            "id": 10044,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "params",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 9950,
                            "src": "7617:20:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          ],
                          "id": 10042,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7611:5:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                            "typeString": "type(bytes storage pointer)"
                          },
                          "typeName": {
                            "id": 10041,
                            "name": "bytes",
                            "nodeType": "ElementaryTypeName",
                            "src": "7611:5:53",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 10045,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7611:27:53",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 10040,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": -8,
                      "src": "7601:9:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 10046,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7601:38:53",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7580:59:53"
                },
                {
                  "AST": {
                    "nodeType": "YulBlock",
                    "src": "7652:470:53",
                    "statements": [
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "7685:45:53",
                        "value": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_requestorder",
                                  "nodeType": "YulIdentifier",
                                  "src": "7708:13:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "7723:5:53",
                                  "type": "",
                                  "value": "0x020"
                                }
                              ],
                              "functionName": {
                                "name": "sub",
                                "nodeType": "YulIdentifier",
                                "src": "7704:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "7704:25:53"
                            }
                          ],
                          "functionName": {
                            "name": "mload",
                            "nodeType": "YulIdentifier",
                            "src": "7698:5:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7698:32:53"
                        },
                        "variables": [
                          {
                            "name": "temp1",
                            "nodeType": "YulTypedName",
                            "src": "7689:5:53",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "7734:45:53",
                        "value": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_requestorder",
                                  "nodeType": "YulIdentifier",
                                  "src": "7757:13:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "7772:5:53",
                                  "type": "",
                                  "value": "0x1A0"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "7753:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "7753:25:53"
                            }
                          ],
                          "functionName": {
                            "name": "mload",
                            "nodeType": "YulIdentifier",
                            "src": "7747:5:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7747:32:53"
                        },
                        "variables": [
                          {
                            "name": "temp2",
                            "nodeType": "YulTypedName",
                            "src": "7738:5:53",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_requestorder",
                                  "nodeType": "YulIdentifier",
                                  "src": "7830:13:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "7845:5:53",
                                  "type": "",
                                  "value": "0x020"
                                }
                              ],
                              "functionName": {
                                "name": "sub",
                                "nodeType": "YulIdentifier",
                                "src": "7826:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "7826:25:53"
                            },
                            {
                              "name": "typeHash",
                              "nodeType": "YulIdentifier",
                              "src": "7853:8:53"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "7819:6:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7819:43:53"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "7819:43:53"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_requestorder",
                                  "nodeType": "YulIdentifier",
                                  "src": "7877:13:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "7892:5:53",
                                  "type": "",
                                  "value": "0x1A0"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "7873:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "7873:25:53"
                            },
                            {
                              "name": "paramsHash",
                              "nodeType": "YulIdentifier",
                              "src": "7900:10:53"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "7866:6:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7866:45:53"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "7866:45:53"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "7934:57:53",
                        "value": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_requestorder",
                                  "nodeType": "YulIdentifier",
                                  "src": "7963:13:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "7978:4:53",
                                  "type": "",
                                  "value": "0x20"
                                }
                              ],
                              "functionName": {
                                "name": "sub",
                                "nodeType": "YulIdentifier",
                                "src": "7959:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "7959:24:53"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7985:5:53",
                              "type": "",
                              "value": "0x200"
                            }
                          ],
                          "functionName": {
                            "name": "keccak256",
                            "nodeType": "YulIdentifier",
                            "src": "7949:9:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7949:42:53"
                        },
                        "variableNames": [
                          {
                            "name": "requesthash",
                            "nodeType": "YulIdentifier",
                            "src": "7934:11:53"
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_requestorder",
                                  "nodeType": "YulIdentifier",
                                  "src": "8045:13:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "8060:5:53",
                                  "type": "",
                                  "value": "0x020"
                                }
                              ],
                              "functionName": {
                                "name": "sub",
                                "nodeType": "YulIdentifier",
                                "src": "8041:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "8041:25:53"
                            },
                            {
                              "name": "temp1",
                              "nodeType": "YulIdentifier",
                              "src": "8068:5:53"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "8034:6:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "8034:40:53"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "8034:40:53"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_requestorder",
                                  "nodeType": "YulIdentifier",
                                  "src": "8089:13:53"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "8104:5:53",
                                  "type": "",
                                  "value": "0x1A0"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "8085:3:53"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "8085:25:53"
                            },
                            {
                              "name": "temp2",
                              "nodeType": "YulIdentifier",
                              "src": "8112:5:53"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "8078:6:53"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "8078:40:53"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "8078:40:53"
                      }
                    ]
                  },
                  "evmVersion": "istanbul",
                  "externalReferences": [
                    {
                      "declaration": 10029,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7708:13:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 10029,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7757:13:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 10029,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7830:13:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 10029,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7877:13:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 10029,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7963:13:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 10029,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "8045:13:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 10029,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "8089:13:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 10039,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7900:10:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 10032,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7934:11:53",
                      "valueSize": 1
                    },
                    {
                      "declaration": 10035,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7853:8:53",
                      "valueSize": 1
                    }
                  ],
                  "id": 10048,
                  "nodeType": "InlineAssembly",
                  "src": "7643:479:53"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "0813424e",
            "id": 10050,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "hash",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 10030,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10029,
                  "mutability": "mutable",
                  "name": "_requestorder",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10050,
                  "src": "6816:33:53",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_RequestOrder_$9955_memory_ptr",
                    "typeString": "struct IexecODBLibOrders.RequestOrder"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 10028,
                    "name": "RequestOrder",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 9955,
                    "src": "6816:12:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RequestOrder_$9955_storage_ptr",
                      "typeString": "struct IexecODBLibOrders.RequestOrder"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6815:35:53"
            },
            "returnParameters": {
              "id": 10033,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10032,
                  "mutability": "mutable",
                  "name": "requesthash",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10050,
                  "src": "6873:19:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 10031,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6873:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6872:21:53"
            },
            "scope": 10070,
            "src": "6802:1323:53",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10068,
              "nodeType": "Block",
              "src": "8248:80:53",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "1901",
                            "id": 10062,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "8286:10:53",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541",
                              "typeString": "literal_string \"\u0019\u0001\""
                            },
                            "value": "\u0019\u0001"
                          },
                          {
                            "argumentTypes": null,
                            "id": 10063,
                            "name": "_domainHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10054,
                            "src": "8298:11:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 10064,
                            "name": "_structHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10052,
                            "src": "8311:11:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541",
                              "typeString": "literal_string \"\u0019\u0001\""
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 10060,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "8269:3:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 10061,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "8269:16:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 10065,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8269:54:53",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 10059,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": -8,
                      "src": "8259:9:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 10066,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8259:65:53",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 10058,
                  "id": 10067,
                  "nodeType": "Return",
                  "src": "8252:72:53"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "176eaa49",
            "id": 10069,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "toEthTypedStructHash",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 10055,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10052,
                  "mutability": "mutable",
                  "name": "_structHash",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10069,
                  "src": "8158:19:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 10051,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8158:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10054,
                  "mutability": "mutable",
                  "name": "_domainHash",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10069,
                  "src": "8179:19:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 10053,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8179:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8157:42:53"
            },
            "returnParameters": {
              "id": 10058,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10057,
                  "mutability": "mutable",
                  "name": "typedStructHash",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10069,
                  "src": "8222:23:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 10056,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8222:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8221:25:53"
            },
            "scope": 10070,
            "src": "8128:200:53",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "public"
          }
        ],
        "scope": 10071,
        "src": "66:8264:53"
      }
    ],
    "src": "0:8331:53"
  },
  "compiler": {
    "name": "solc",
    "version": "0.6.6+commit.6c089d02.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.1.0",
  "updatedAt": "2020-04-21T18:10:34.956Z",
  "devdoc": {
    "methods": {}
  },
  "userdoc": {
    "methods": {}
  }
}