Socket
Socket
Sign inDemoInstall

@gnosis.pm/conditional-tokens-contracts

Package Overview
Dependencies
Maintainers
11
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@gnosis.pm/conditional-tokens-contracts - npm Package Compare versions

Comparing version 0.4.1 to 0.5.0

gnosis.pm-conditional-tokens-contracts-0.5.0.tgz

126

build/contracts/Address.json

@@ -15,10 +15,10 @@ {

"Address": [
2016
2517
]
},
"id": 2017,
"id": 2518,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1999,
"id": 2500,
"literals": [

@@ -39,5 +39,5 @@ "solidity",

"fullyImplemented": true,
"id": 2016,
"id": 2517,
"linearizedBaseContracts": [
2016
2517
],

@@ -49,3 +49,3 @@ "name": "Address",

"body": {
"id": 2014,
"id": 2515,
"nodeType": "Block",

@@ -56,3 +56,3 @@ "src": "608:347:10",

"assignments": [
2007
2508
],

@@ -62,6 +62,6 @@ "declarations": [

"constant": false,
"id": 2007,
"id": 2508,
"name": "size",
"nodeType": "VariableDeclaration",
"scope": 2014,
"scope": 2515,
"src": "805:12:10",

@@ -75,3 +75,3 @@ "stateVariable": false,

"typeName": {
"id": 2006,
"id": 2507,
"name": "uint256",

@@ -89,3 +89,3 @@ "nodeType": "ElementaryTypeName",

],
"id": 2008,
"id": 2509,
"initialValue": null,

@@ -99,3 +99,3 @@ "nodeType": "VariableDeclarationStatement",

"size": {
"declaration": 2007,
"declaration": 2508,
"isOffset": false,

@@ -109,3 +109,3 @@ "isSlot": false,

"account": {
"declaration": 2001,
"declaration": 2502,
"isOffset": false,

@@ -118,3 +118,3 @@ "isSlot": false,

],
"id": 2009,
"id": 2510,
"nodeType": "InlineAssembly",

@@ -131,3 +131,3 @@ "operations": "{ size := extcodesize(account) }",

},
"id": 2012,
"id": 2513,
"isConstant": false,

@@ -139,7 +139,7 @@ "isLValue": false,

"argumentTypes": null,
"id": 2010,
"id": 2511,
"name": "size",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2007,
"referencedDeclaration": 2508,
"src": "940:4:10",

@@ -156,3 +156,3 @@ "typeDescriptions": {

"hexValue": "30",
"id": 2011,
"id": 2512,
"isConstant": false,

@@ -178,4 +178,4 @@ "isLValue": false,

},
"functionReturnParameters": 2005,
"id": 2013,
"functionReturnParameters": 2506,
"id": 2514,
"nodeType": "Return",

@@ -187,3 +187,3 @@ "src": "933:15:10"

"documentation": "@dev Returns true if `account` is a contract.\n * This test is non-exhaustive, and there may be false-negatives: during the\nexecution of a contract's constructor, its address will be reported as\nnot containing a contract.\n * > It is unsafe to assume that an address for which this function returns\nfalse is an externally-owned account (EOA) and not a contract.",
"id": 2015,
"id": 2516,
"implemented": true,

@@ -195,3 +195,3 @@ "kind": "function",

"parameters": {
"id": 2002,
"id": 2503,
"nodeType": "ParameterList",

@@ -201,6 +201,6 @@ "parameters": [

"constant": false,
"id": 2001,
"id": 2502,
"name": "account",
"nodeType": "VariableDeclaration",
"scope": 2015,
"scope": 2516,
"src": "562:15:10",

@@ -214,3 +214,3 @@ "stateVariable": false,

"typeName": {
"id": 2000,
"id": 2501,
"name": "address",

@@ -232,3 +232,3 @@ "nodeType": "ElementaryTypeName",

"returnParameters": {
"id": 2005,
"id": 2506,
"nodeType": "ParameterList",

@@ -238,6 +238,6 @@ "parameters": [

"constant": false,
"id": 2004,
"id": 2505,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 2015,
"scope": 2516,
"src": "602:4:10",

@@ -251,3 +251,3 @@ "stateVariable": false,

"typeName": {
"id": 2003,
"id": 2504,
"name": "bool",

@@ -267,3 +267,3 @@ "nodeType": "ElementaryTypeName",

},
"scope": 2016,
"scope": 2517,
"src": "542:413:10",

@@ -275,3 +275,3 @@ "stateMutability": "view",

],
"scope": 2017,
"scope": 2518,
"src": "94:863:10"

@@ -286,10 +286,10 @@ }

"Address": [
2016
2517
]
},
"id": 2017,
"id": 2518,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1999,
"id": 2500,
"literals": [

@@ -310,5 +310,5 @@ "solidity",

"fullyImplemented": true,
"id": 2016,
"id": 2517,
"linearizedBaseContracts": [
2016
2517
],

@@ -320,3 +320,3 @@ "name": "Address",

"body": {
"id": 2014,
"id": 2515,
"nodeType": "Block",

@@ -327,3 +327,3 @@ "src": "608:347:10",

"assignments": [
2007
2508
],

@@ -333,6 +333,6 @@ "declarations": [

"constant": false,
"id": 2007,
"id": 2508,
"name": "size",
"nodeType": "VariableDeclaration",
"scope": 2014,
"scope": 2515,
"src": "805:12:10",

@@ -346,3 +346,3 @@ "stateVariable": false,

"typeName": {
"id": 2006,
"id": 2507,
"name": "uint256",

@@ -360,3 +360,3 @@ "nodeType": "ElementaryTypeName",

],
"id": 2008,
"id": 2509,
"initialValue": null,

@@ -370,3 +370,3 @@ "nodeType": "VariableDeclarationStatement",

"size": {
"declaration": 2007,
"declaration": 2508,
"isOffset": false,

@@ -380,3 +380,3 @@ "isSlot": false,

"account": {
"declaration": 2001,
"declaration": 2502,
"isOffset": false,

@@ -389,3 +389,3 @@ "isSlot": false,

],
"id": 2009,
"id": 2510,
"nodeType": "InlineAssembly",

@@ -402,3 +402,3 @@ "operations": "{ size := extcodesize(account) }",

},
"id": 2012,
"id": 2513,
"isConstant": false,

@@ -410,7 +410,7 @@ "isLValue": false,

"argumentTypes": null,
"id": 2010,
"id": 2511,
"name": "size",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2007,
"referencedDeclaration": 2508,
"src": "940:4:10",

@@ -427,3 +427,3 @@ "typeDescriptions": {

"hexValue": "30",
"id": 2011,
"id": 2512,
"isConstant": false,

@@ -449,4 +449,4 @@ "isLValue": false,

},
"functionReturnParameters": 2005,
"id": 2013,
"functionReturnParameters": 2506,
"id": 2514,
"nodeType": "Return",

@@ -458,3 +458,3 @@ "src": "933:15:10"

"documentation": "@dev Returns true if `account` is a contract.\n * This test is non-exhaustive, and there may be false-negatives: during the\nexecution of a contract's constructor, its address will be reported as\nnot containing a contract.\n * > It is unsafe to assume that an address for which this function returns\nfalse is an externally-owned account (EOA) and not a contract.",
"id": 2015,
"id": 2516,
"implemented": true,

@@ -466,3 +466,3 @@ "kind": "function",

"parameters": {
"id": 2002,
"id": 2503,
"nodeType": "ParameterList",

@@ -472,6 +472,6 @@ "parameters": [

"constant": false,
"id": 2001,
"id": 2502,
"name": "account",
"nodeType": "VariableDeclaration",
"scope": 2015,
"scope": 2516,
"src": "562:15:10",

@@ -485,3 +485,3 @@ "stateVariable": false,

"typeName": {
"id": 2000,
"id": 2501,
"name": "address",

@@ -503,3 +503,3 @@ "nodeType": "ElementaryTypeName",

"returnParameters": {
"id": 2005,
"id": 2506,
"nodeType": "ParameterList",

@@ -509,6 +509,6 @@ "parameters": [

"constant": false,
"id": 2004,
"id": 2505,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 2015,
"scope": 2516,
"src": "602:4:10",

@@ -522,3 +522,3 @@ "stateVariable": false,

"typeName": {
"id": 2003,
"id": 2504,
"name": "bool",

@@ -538,3 +538,3 @@ "nodeType": "ElementaryTypeName",

},
"scope": 2016,
"scope": 2517,
"src": "542:413:10",

@@ -546,3 +546,3 @@ "stateMutability": "view",

],
"scope": 2017,
"scope": 2518,
"src": "94:863:10"

@@ -559,3 +559,3 @@ }

"schemaVersion": "3.0.11",
"updatedAt": "2019-08-07T20:12:19.691Z",
"updatedAt": "2019-08-28T13:18:59.255Z",
"devdoc": {

@@ -562,0 +562,0 @@ "details": "Collection of functions related to the address type,",

@@ -100,3 +100,3 @@ {

],
"metadata": "{\"compiler\":{\"version\":\"0.5.10+commit.5a6ea5b1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"operator\",\"type\":\"address\"},{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"ids\",\"type\":\"uint256[]\"},{\"name\":\"values\",\"type\":\"uint256[]\"},{\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes4\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"operator\",\"type\":\"address\"},{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"id\",\"type\":\"uint256\"},{\"name\":\"value\",\"type\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes4\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}],\"devdoc\":{\"methods\":{\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"Handles the receipt of a multiple ERC1155 token types. This function is called at the end of a `safeBatchTransferFrom` after the balances have been updated. To accept the transfer(s), this must return `bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` (i.e. 0xbc197c81, or its own function selector).\",\"params\":{\"data\":\"Additional data with no specified format\",\"from\":\"The address which previously owned the token\",\"ids\":\"An array containing ids of each token being transferred (order and length must match values array)\",\"operator\":\"The address which initiated the batch transfer (i.e. msg.sender)\",\"values\":\"An array containing amounts of each token being transferred (order and length must match ids array)\"},\"return\":\"`bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` if transfer is allowed\"},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"Handles the receipt of a single ERC1155 token type. This function is called at the end of a `safeTransferFrom` after the balance has been updated. To accept the transfer, this must return `bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` (i.e. 0xf23a6e61, or its own function selector).\",\"params\":{\"data\":\"Additional data with no specified format\",\"from\":\"The address which previously owned the token\",\"id\":\"The ID of the token being transferred\",\"operator\":\"The address which initiated the transfer (i.e. msg.sender)\",\"value\":\"The amount of tokens being transferred\"},\"return\":\"`bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` if transfer is allowed\"},\"supportsInterface(bytes4)\":{\"details\":\"See `IERC165.supportsInterface`. * Time complexity O(1), guaranteed to always use less than 30 000 gas.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/alan/src/github.com/gnosis/hg-contracts/contracts/ERC1155/ERC1155TokenReceiver.sol\":\"ERC1155TokenReceiver\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/alan/src/github.com/gnosis/hg-contracts/contracts/ERC1155/ERC1155TokenReceiver.sol\":{\"keccak256\":\"0x5d1e709c759b9bd72865c8608582d66fc338fde3a77f41abb04ae943915a5695\",\"urls\":[\"bzzr://55e5a597486430ad437bb8c8f0c93cf573b833fa84ccf64a25afaa01c761b839\",\"dweb:/ipfs/QmQ727N1676jG9F5iwakSG2RNeV82TVBGJHgHPmHxib8ah\"]},\"/home/alan/src/github.com/gnosis/hg-contracts/contracts/ERC1155/IERC1155TokenReceiver.sol\":{\"keccak256\":\"0xca815b5ca57df8f1056b962c2728d6a1e56fc7d9a7869ccee8f5a1ac6075b75d\",\"urls\":[\"bzzr://61df3e61bf24c80714e326ffdc274aaefc342241de3e72374131f613cddbd042\",\"dweb:/ipfs/QmPnF3rGuY2H3Gifvha4dW7fJPptP7wJerHzjz4dpzfTJW\"]},\"openzeppelin-solidity/contracts/introspection/ERC165.sol\":{\"keccak256\":\"0xac2eacd7e7762e275442f28f21d821544df5aae2ed7698af13be8c41b7005e2e\",\"urls\":[\"bzzr://43e901f6f210568ebc1d3591da3ce6a9d10796b854767a9c6e3da10305a8a332\",\"dweb:/ipfs/QmQhfx2Ufr8a2gFXm3KogL66xGgAuAWMwcamkWFKGG6Vya\"]},\"openzeppelin-solidity/contracts/introspection/IERC165.sol\":{\"keccak256\":\"0x661553e43d7c4fbb2de504e5999fd5c104d367488350ed5bf023031bd1ba5ac5\",\"urls\":[\"bzzr://fc2ba15143ce3a00268ecd15fc98eb2469b18bfe27a64bbab0ac6446f161c739\",\"dweb:/ipfs/QmV7wjtRf11ibUHh4g8JjuhMpy68pPhV95L2y46UBoRfsZ\"]}},\"version\":1}",
"metadata": "{\"compiler\":{\"version\":\"0.5.10+commit.5a6ea5b1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"operator\",\"type\":\"address\"},{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"ids\",\"type\":\"uint256[]\"},{\"name\":\"values\",\"type\":\"uint256[]\"},{\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes4\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"operator\",\"type\":\"address\"},{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"id\",\"type\":\"uint256\"},{\"name\":\"value\",\"type\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes4\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}],\"devdoc\":{\"methods\":{\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"Handles the receipt of a multiple ERC1155 token types. This function is called at the end of a `safeBatchTransferFrom` after the balances have been updated. To accept the transfer(s), this must return `bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` (i.e. 0xbc197c81, or its own function selector).\",\"params\":{\"data\":\"Additional data with no specified format\",\"from\":\"The address which previously owned the token\",\"ids\":\"An array containing ids of each token being transferred (order and length must match values array)\",\"operator\":\"The address which initiated the batch transfer (i.e. msg.sender)\",\"values\":\"An array containing amounts of each token being transferred (order and length must match ids array)\"},\"return\":\"`bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` if transfer is allowed\"},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"Handles the receipt of a single ERC1155 token type. This function is called at the end of a `safeTransferFrom` after the balance has been updated. To accept the transfer, this must return `bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` (i.e. 0xf23a6e61, or its own function selector).\",\"params\":{\"data\":\"Additional data with no specified format\",\"from\":\"The address which previously owned the token\",\"id\":\"The ID of the token being transferred\",\"operator\":\"The address which initiated the transfer (i.e. msg.sender)\",\"value\":\"The amount of tokens being transferred\"},\"return\":\"`bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` if transfer is allowed\"},\"supportsInterface(bytes4)\":{\"details\":\"See `IERC165.supportsInterface`. * Time complexity O(1), guaranteed to always use less than 30 000 gas.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/alan/src/github.com/gnosis/conditional-tokens-contracts/contracts/ERC1155/ERC1155TokenReceiver.sol\":\"ERC1155TokenReceiver\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/alan/src/github.com/gnosis/conditional-tokens-contracts/contracts/ERC1155/ERC1155TokenReceiver.sol\":{\"keccak256\":\"0x5d1e709c759b9bd72865c8608582d66fc338fde3a77f41abb04ae943915a5695\",\"urls\":[\"bzzr://55e5a597486430ad437bb8c8f0c93cf573b833fa84ccf64a25afaa01c761b839\",\"dweb:/ipfs/QmQ727N1676jG9F5iwakSG2RNeV82TVBGJHgHPmHxib8ah\"]},\"/home/alan/src/github.com/gnosis/conditional-tokens-contracts/contracts/ERC1155/IERC1155TokenReceiver.sol\":{\"keccak256\":\"0xca815b5ca57df8f1056b962c2728d6a1e56fc7d9a7869ccee8f5a1ac6075b75d\",\"urls\":[\"bzzr://61df3e61bf24c80714e326ffdc274aaefc342241de3e72374131f613cddbd042\",\"dweb:/ipfs/QmPnF3rGuY2H3Gifvha4dW7fJPptP7wJerHzjz4dpzfTJW\"]},\"openzeppelin-solidity/contracts/introspection/ERC165.sol\":{\"keccak256\":\"0xac2eacd7e7762e275442f28f21d821544df5aae2ed7698af13be8c41b7005e2e\",\"urls\":[\"bzzr://43e901f6f210568ebc1d3591da3ce6a9d10796b854767a9c6e3da10305a8a332\",\"dweb:/ipfs/QmQhfx2Ufr8a2gFXm3KogL66xGgAuAWMwcamkWFKGG6Vya\"]},\"openzeppelin-solidity/contracts/introspection/IERC165.sol\":{\"keccak256\":\"0x661553e43d7c4fbb2de504e5999fd5c104d367488350ed5bf023031bd1ba5ac5\",\"urls\":[\"bzzr://fc2ba15143ce3a00268ecd15fc98eb2469b18bfe27a64bbab0ac6446f161c739\",\"dweb:/ipfs/QmV7wjtRf11ibUHh4g8JjuhMpy68pPhV95L2y46UBoRfsZ\"]}},\"version\":1}",
"bytecode": "0x",

@@ -107,15 +107,15 @@ "deployedBytecode": "0x",

"source": "pragma solidity ^0.5.0;\n\nimport \"./IERC1155TokenReceiver.sol\";\nimport \"openzeppelin-solidity/contracts/introspection/ERC165.sol\";\n\ncontract ERC1155TokenReceiver is ERC165, IERC1155TokenReceiver {\n constructor() public {\n _registerInterface(\n ERC1155TokenReceiver(0).onERC1155Received.selector ^\n ERC1155TokenReceiver(0).onERC1155BatchReceived.selector\n );\n }\n}\n",
"sourcePath": "/home/alan/src/github.com/gnosis/hg-contracts/contracts/ERC1155/ERC1155TokenReceiver.sol",
"sourcePath": "/home/alan/src/github.com/gnosis/conditional-tokens-contracts/contracts/ERC1155/ERC1155TokenReceiver.sol",
"ast": {
"absolutePath": "/home/alan/src/github.com/gnosis/hg-contracts/contracts/ERC1155/ERC1155TokenReceiver.sol",
"absolutePath": "/home/alan/src/github.com/gnosis/conditional-tokens-contracts/contracts/ERC1155/ERC1155TokenReceiver.sol",
"exportedSymbols": {
"ERC1155TokenReceiver": [
1527
2028
]
},
"id": 1528,
"id": 2029,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1502,
"id": 2003,
"literals": [

@@ -131,8 +131,8 @@ "solidity",

{
"absolutePath": "/home/alan/src/github.com/gnosis/hg-contracts/contracts/ERC1155/IERC1155TokenReceiver.sol",
"absolutePath": "/home/alan/src/github.com/gnosis/conditional-tokens-contracts/contracts/ERC1155/IERC1155TokenReceiver.sol",
"file": "./IERC1155TokenReceiver.sol",
"id": 1503,
"id": 2004,
"nodeType": "ImportDirective",
"scope": 1528,
"sourceUnit": 1677,
"scope": 2029,
"sourceUnit": 2178,
"src": "25:37:2",

@@ -145,6 +145,6 @@ "symbolAliases": [],

"file": "openzeppelin-solidity/contracts/introspection/ERC165.sol",
"id": 1504,
"id": 2005,
"nodeType": "ImportDirective",
"scope": 1528,
"sourceUnit": 1786,
"scope": 2029,
"sourceUnit": 2287,
"src": "63:66:2",

@@ -160,13 +160,13 @@ "symbolAliases": [],

"contractScope": null,
"id": 1505,
"id": 2006,
"name": "ERC165",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 1785,
"referencedDeclaration": 2286,
"src": "164:6:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_ERC165_$1785",
"typeIdentifier": "t_contract$_ERC165_$2286",
"typeString": "contract ERC165"
}
},
"id": 1506,
"id": 2007,
"nodeType": "InheritanceSpecifier",

@@ -179,13 +179,13 @@ "src": "164:6:2"

"contractScope": null,
"id": 1507,
"id": 2008,
"name": "IERC1155TokenReceiver",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 1676,
"referencedDeclaration": 2177,
"src": "172:21:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IERC1155TokenReceiver_$1676",
"typeIdentifier": "t_contract$_IERC1155TokenReceiver_$2177",
"typeString": "contract IERC1155TokenReceiver"
}
},
"id": 1508,
"id": 2009,
"nodeType": "InheritanceSpecifier",

@@ -196,5 +196,5 @@ "src": "172:21:2"

"contractDependencies": [
1676,
1785,
1795
2177,
2286,
2296
],

@@ -204,8 +204,8 @@ "contractKind": "contract",

"fullyImplemented": false,
"id": 1527,
"id": 2028,
"linearizedBaseContracts": [
1527,
1676,
1785,
1795
2028,
2177,
2286,
2296
],

@@ -217,3 +217,3 @@ "name": "ERC1155TokenReceiver",

"body": {
"id": 1525,
"id": 2026,
"nodeType": "Block",

@@ -232,3 +232,3 @@ "src": "221:179:2",

},
"id": 1522,
"id": 2023,
"isConstant": false,

@@ -248,3 +248,3 @@ "isLValue": false,

"hexValue": "30",
"id": 1513,
"id": 2014,
"isConstant": false,

@@ -272,14 +272,14 @@ "isLValue": false,

],
"id": 1512,
"id": 2013,
"name": "ERC1155TokenReceiver",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1527,
"referencedDeclaration": 2028,
"src": "263:20:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_ERC1155TokenReceiver_$1527_$",
"typeIdentifier": "t_type$_t_contract$_ERC1155TokenReceiver_$2028_$",
"typeString": "type(contract ERC1155TokenReceiver)"
}
},
"id": 1514,
"id": 2015,
"isConstant": false,

@@ -294,7 +294,7 @@ "isLValue": false,

"typeDescriptions": {
"typeIdentifier": "t_contract$_ERC1155TokenReceiver_$1527",
"typeIdentifier": "t_contract$_ERC1155TokenReceiver_$2028",
"typeString": "contract ERC1155TokenReceiver"
}
},
"id": 1515,
"id": 2016,
"isConstant": false,

@@ -306,3 +306,3 @@ "isLValue": false,

"nodeType": "MemberAccess",
"referencedDeclaration": 1658,
"referencedDeclaration": 2159,
"src": "263:41:2",

@@ -314,3 +314,3 @@ "typeDescriptions": {

},
"id": 1516,
"id": 2017,
"isConstant": false,

@@ -341,3 +341,3 @@ "isLValue": false,

"hexValue": "30",
"id": 1518,
"id": 2019,
"isConstant": false,

@@ -365,14 +365,14 @@ "isLValue": false,

],
"id": 1517,
"id": 2018,
"name": "ERC1155TokenReceiver",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1527,
"referencedDeclaration": 2028,
"src": "328:20:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_ERC1155TokenReceiver_$1527_$",
"typeIdentifier": "t_type$_t_contract$_ERC1155TokenReceiver_$2028_$",
"typeString": "type(contract ERC1155TokenReceiver)"
}
},
"id": 1519,
"id": 2020,
"isConstant": false,

@@ -387,7 +387,7 @@ "isLValue": false,

"typeDescriptions": {
"typeIdentifier": "t_contract$_ERC1155TokenReceiver_$1527",
"typeIdentifier": "t_contract$_ERC1155TokenReceiver_$2028",
"typeString": "contract ERC1155TokenReceiver"
}
},
"id": 1520,
"id": 2021,
"isConstant": false,

@@ -399,3 +399,3 @@ "isLValue": false,

"nodeType": "MemberAccess",
"referencedDeclaration": 1675,
"referencedDeclaration": 2176,
"src": "328:46:2",

@@ -407,3 +407,3 @@ "typeDescriptions": {

},
"id": 1521,
"id": 2022,
"isConstant": false,

@@ -436,7 +436,7 @@ "isLValue": false,

],
"id": 1511,
"id": 2012,
"name": "_registerInterface",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1784,
"referencedDeclaration": 2285,
"src": "231:18:2",

@@ -448,3 +448,3 @@ "typeDescriptions": {

},
"id": 1523,
"id": 2024,
"isConstant": false,

@@ -463,3 +463,3 @@ "isLValue": false,

},
"id": 1524,
"id": 2025,
"nodeType": "ExpressionStatement",

@@ -471,3 +471,3 @@ "src": "231:162:2"

"documentation": null,
"id": 1526,
"id": 2027,
"implemented": true,

@@ -479,3 +479,3 @@ "kind": "constructor",

"parameters": {
"id": 1509,
"id": 2010,
"nodeType": "ParameterList",

@@ -486,3 +486,3 @@ "parameters": [],

"returnParameters": {
"id": 1510,
"id": 2011,
"nodeType": "ParameterList",

@@ -492,3 +492,3 @@ "parameters": [],

},
"scope": 1527,
"scope": 2028,
"src": "200:200:2",

@@ -500,3 +500,3 @@ "stateMutability": "nonpayable",

],
"scope": 1528,
"scope": 2029,
"src": "131:271:2"

@@ -508,13 +508,13 @@ }

"legacyAST": {
"absolutePath": "/home/alan/src/github.com/gnosis/hg-contracts/contracts/ERC1155/ERC1155TokenReceiver.sol",
"absolutePath": "/home/alan/src/github.com/gnosis/conditional-tokens-contracts/contracts/ERC1155/ERC1155TokenReceiver.sol",
"exportedSymbols": {
"ERC1155TokenReceiver": [
1527
2028
]
},
"id": 1528,
"id": 2029,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1502,
"id": 2003,
"literals": [

@@ -530,8 +530,8 @@ "solidity",

{
"absolutePath": "/home/alan/src/github.com/gnosis/hg-contracts/contracts/ERC1155/IERC1155TokenReceiver.sol",
"absolutePath": "/home/alan/src/github.com/gnosis/conditional-tokens-contracts/contracts/ERC1155/IERC1155TokenReceiver.sol",
"file": "./IERC1155TokenReceiver.sol",
"id": 1503,
"id": 2004,
"nodeType": "ImportDirective",
"scope": 1528,
"sourceUnit": 1677,
"scope": 2029,
"sourceUnit": 2178,
"src": "25:37:2",

@@ -544,6 +544,6 @@ "symbolAliases": [],

"file": "openzeppelin-solidity/contracts/introspection/ERC165.sol",
"id": 1504,
"id": 2005,
"nodeType": "ImportDirective",
"scope": 1528,
"sourceUnit": 1786,
"scope": 2029,
"sourceUnit": 2287,
"src": "63:66:2",

@@ -559,13 +559,13 @@ "symbolAliases": [],

"contractScope": null,
"id": 1505,
"id": 2006,
"name": "ERC165",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 1785,
"referencedDeclaration": 2286,
"src": "164:6:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_ERC165_$1785",
"typeIdentifier": "t_contract$_ERC165_$2286",
"typeString": "contract ERC165"
}
},
"id": 1506,
"id": 2007,
"nodeType": "InheritanceSpecifier",

@@ -578,13 +578,13 @@ "src": "164:6:2"

"contractScope": null,
"id": 1507,
"id": 2008,
"name": "IERC1155TokenReceiver",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 1676,
"referencedDeclaration": 2177,
"src": "172:21:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IERC1155TokenReceiver_$1676",
"typeIdentifier": "t_contract$_IERC1155TokenReceiver_$2177",
"typeString": "contract IERC1155TokenReceiver"
}
},
"id": 1508,
"id": 2009,
"nodeType": "InheritanceSpecifier",

@@ -595,5 +595,5 @@ "src": "172:21:2"

"contractDependencies": [
1676,
1785,
1795
2177,
2286,
2296
],

@@ -603,8 +603,8 @@ "contractKind": "contract",

"fullyImplemented": false,
"id": 1527,
"id": 2028,
"linearizedBaseContracts": [
1527,
1676,
1785,
1795
2028,
2177,
2286,
2296
],

@@ -616,3 +616,3 @@ "name": "ERC1155TokenReceiver",

"body": {
"id": 1525,
"id": 2026,
"nodeType": "Block",

@@ -631,3 +631,3 @@ "src": "221:179:2",

},
"id": 1522,
"id": 2023,
"isConstant": false,

@@ -647,3 +647,3 @@ "isLValue": false,

"hexValue": "30",
"id": 1513,
"id": 2014,
"isConstant": false,

@@ -671,14 +671,14 @@ "isLValue": false,

],
"id": 1512,
"id": 2013,
"name": "ERC1155TokenReceiver",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1527,
"referencedDeclaration": 2028,
"src": "263:20:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_ERC1155TokenReceiver_$1527_$",
"typeIdentifier": "t_type$_t_contract$_ERC1155TokenReceiver_$2028_$",
"typeString": "type(contract ERC1155TokenReceiver)"
}
},
"id": 1514,
"id": 2015,
"isConstant": false,

@@ -693,7 +693,7 @@ "isLValue": false,

"typeDescriptions": {
"typeIdentifier": "t_contract$_ERC1155TokenReceiver_$1527",
"typeIdentifier": "t_contract$_ERC1155TokenReceiver_$2028",
"typeString": "contract ERC1155TokenReceiver"
}
},
"id": 1515,
"id": 2016,
"isConstant": false,

@@ -705,3 +705,3 @@ "isLValue": false,

"nodeType": "MemberAccess",
"referencedDeclaration": 1658,
"referencedDeclaration": 2159,
"src": "263:41:2",

@@ -713,3 +713,3 @@ "typeDescriptions": {

},
"id": 1516,
"id": 2017,
"isConstant": false,

@@ -740,3 +740,3 @@ "isLValue": false,

"hexValue": "30",
"id": 1518,
"id": 2019,
"isConstant": false,

@@ -764,14 +764,14 @@ "isLValue": false,

],
"id": 1517,
"id": 2018,
"name": "ERC1155TokenReceiver",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1527,
"referencedDeclaration": 2028,
"src": "328:20:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_ERC1155TokenReceiver_$1527_$",
"typeIdentifier": "t_type$_t_contract$_ERC1155TokenReceiver_$2028_$",
"typeString": "type(contract ERC1155TokenReceiver)"
}
},
"id": 1519,
"id": 2020,
"isConstant": false,

@@ -786,7 +786,7 @@ "isLValue": false,

"typeDescriptions": {
"typeIdentifier": "t_contract$_ERC1155TokenReceiver_$1527",
"typeIdentifier": "t_contract$_ERC1155TokenReceiver_$2028",
"typeString": "contract ERC1155TokenReceiver"
}
},
"id": 1520,
"id": 2021,
"isConstant": false,

@@ -798,3 +798,3 @@ "isLValue": false,

"nodeType": "MemberAccess",
"referencedDeclaration": 1675,
"referencedDeclaration": 2176,
"src": "328:46:2",

@@ -806,3 +806,3 @@ "typeDescriptions": {

},
"id": 1521,
"id": 2022,
"isConstant": false,

@@ -835,7 +835,7 @@ "isLValue": false,

],
"id": 1511,
"id": 2012,
"name": "_registerInterface",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1784,
"referencedDeclaration": 2285,
"src": "231:18:2",

@@ -847,3 +847,3 @@ "typeDescriptions": {

},
"id": 1523,
"id": 2024,
"isConstant": false,

@@ -862,3 +862,3 @@ "isLValue": false,

},
"id": 1524,
"id": 2025,
"nodeType": "ExpressionStatement",

@@ -870,3 +870,3 @@ "src": "231:162:2"

"documentation": null,
"id": 1526,
"id": 2027,
"implemented": true,

@@ -878,3 +878,3 @@ "kind": "constructor",

"parameters": {
"id": 1509,
"id": 2010,
"nodeType": "ParameterList",

@@ -885,3 +885,3 @@ "parameters": [],

"returnParameters": {
"id": 1510,
"id": 2011,
"nodeType": "ParameterList",

@@ -891,3 +891,3 @@ "parameters": [],

},
"scope": 1527,
"scope": 2028,
"src": "200:200:2",

@@ -899,3 +899,3 @@ "stateMutability": "nonpayable",

],
"scope": 1528,
"scope": 2029,
"src": "131:271:2"

@@ -912,3 +912,3 @@ }

"schemaVersion": "3.0.11",
"updatedAt": "2019-08-07T20:12:19.686Z",
"updatedAt": "2019-08-28T13:18:59.193Z",
"devdoc": {

@@ -915,0 +915,0 @@ "methods": {

@@ -41,10 +41,10 @@ {

"ERC165": [
1785
2286
]
},
"id": 1786,
"id": 2287,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1735,
"id": 2236,
"literals": [

@@ -62,6 +62,6 @@ "solidity",

"file": "./IERC165.sol",
"id": 1736,
"id": 2237,
"nodeType": "ImportDirective",
"scope": 1786,
"sourceUnit": 1796,
"scope": 2287,
"sourceUnit": 2297,
"src": "25:23:6",

@@ -77,13 +77,13 @@ "symbolAliases": [],

"contractScope": null,
"id": 1737,
"id": 2238,
"name": "IERC165",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 1795,
"referencedDeclaration": 2296,
"src": "241:7:6",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IERC165_$1795",
"typeIdentifier": "t_contract$_IERC165_$2296",
"typeString": "contract IERC165"
}
},
"id": 1738,
"id": 2239,
"nodeType": "InheritanceSpecifier",

@@ -94,3 +94,3 @@ "src": "241:7:6"

"contractDependencies": [
1795
2296
],

@@ -100,6 +100,6 @@ "contractKind": "contract",

"fullyImplemented": true,
"id": 1785,
"id": 2286,
"linearizedBaseContracts": [
1785,
1795
2286,
2296
],

@@ -111,6 +111,6 @@ "name": "ERC165",

"constant": true,
"id": 1741,
"id": 2242,
"name": "_INTERFACE_ID_ERC165",
"nodeType": "VariableDeclaration",
"scope": 1785,
"scope": 2286,
"src": "338:57:6",

@@ -124,3 +124,3 @@ "stateVariable": true,

"typeName": {
"id": 1739,
"id": 2240,
"name": "bytes4",

@@ -137,3 +137,3 @@ "nodeType": "ElementaryTypeName",

"hexValue": "30783031666663396137",
"id": 1740,
"id": 2241,
"isConstant": false,

@@ -157,6 +157,6 @@ "isLValue": false,

"constant": false,
"id": 1745,
"id": 2246,
"name": "_supportedInterfaces",
"nodeType": "VariableDeclaration",
"scope": 1785,
"scope": 2286,
"src": "489:52:6",

@@ -170,5 +170,5 @@ "stateVariable": true,

"typeName": {
"id": 1744,
"id": 2245,
"keyType": {
"id": 1742,
"id": 2243,
"name": "bytes4",

@@ -189,3 +189,3 @@ "nodeType": "ElementaryTypeName",

"valueType": {
"id": 1743,
"id": 2244,
"name": "bool",

@@ -205,3 +205,3 @@ "nodeType": "ElementaryTypeName",

"body": {
"id": 1752,
"id": 2253,
"nodeType": "Block",

@@ -216,7 +216,7 @@ "src": "572:193:6",

"argumentTypes": null,
"id": 1749,
"id": 2250,
"name": "_INTERFACE_ID_ERC165",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1741,
"referencedDeclaration": 2242,
"src": "737:20:6",

@@ -236,7 +236,7 @@ "typeDescriptions": {

],
"id": 1748,
"id": 2249,
"name": "_registerInterface",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1784,
"referencedDeclaration": 2285,
"src": "718:18:6",

@@ -248,3 +248,3 @@ "typeDescriptions": {

},
"id": 1750,
"id": 2251,
"isConstant": false,

@@ -263,3 +263,3 @@ "isLValue": false,

},
"id": 1751,
"id": 2252,
"nodeType": "ExpressionStatement",

@@ -271,3 +271,3 @@ "src": "718:40:6"

"documentation": null,
"id": 1753,
"id": 2254,
"implemented": true,

@@ -279,3 +279,3 @@ "kind": "constructor",

"parameters": {
"id": 1746,
"id": 2247,
"nodeType": "ParameterList",

@@ -286,3 +286,3 @@ "parameters": [],

"returnParameters": {
"id": 1747,
"id": 2248,
"nodeType": "ParameterList",

@@ -292,3 +292,3 @@ "parameters": [],

},
"scope": 1785,
"scope": 2286,
"src": "548:217:6",

@@ -301,3 +301,3 @@ "stateMutability": "nonpayable",

"body": {
"id": 1764,
"id": 2265,
"nodeType": "Block",

@@ -311,7 +311,7 @@ "src": "991:57:6",

"argumentTypes": null,
"id": 1760,
"id": 2261,
"name": "_supportedInterfaces",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1745,
"referencedDeclaration": 2246,
"src": "1008:20:6",

@@ -323,10 +323,10 @@ "typeDescriptions": {

},
"id": 1762,
"id": 2263,
"indexExpression": {
"argumentTypes": null,
"id": 1761,
"id": 2262,
"name": "interfaceId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1755,
"referencedDeclaration": 2256,
"src": "1029:11:6",

@@ -349,4 +349,4 @@ "typeDescriptions": {

},
"functionReturnParameters": 1759,
"id": 1763,
"functionReturnParameters": 2260,
"id": 2264,
"nodeType": "Return",

@@ -358,3 +358,3 @@ "src": "1001:40:6"

"documentation": "@dev See `IERC165.supportsInterface`.\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.",
"id": 1765,
"id": 2266,
"implemented": true,

@@ -366,3 +366,3 @@ "kind": "function",

"parameters": {
"id": 1756,
"id": 2257,
"nodeType": "ParameterList",

@@ -372,6 +372,6 @@ "parameters": [

"constant": false,
"id": 1755,
"id": 2256,
"name": "interfaceId",
"nodeType": "VariableDeclaration",
"scope": 1765,
"scope": 2266,
"src": "942:18:6",

@@ -385,3 +385,3 @@ "stateVariable": false,

"typeName": {
"id": 1754,
"id": 2255,
"name": "bytes4",

@@ -402,3 +402,3 @@ "nodeType": "ElementaryTypeName",

"returnParameters": {
"id": 1759,
"id": 2260,
"nodeType": "ParameterList",

@@ -408,6 +408,6 @@ "parameters": [

"constant": false,
"id": 1758,
"id": 2259,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 1765,
"scope": 2266,
"src": "985:4:6",

@@ -421,3 +421,3 @@ "stateVariable": false,

"typeName": {
"id": 1757,
"id": 2258,
"name": "bool",

@@ -437,6 +437,6 @@ "nodeType": "ElementaryTypeName",

},
"scope": 1785,
"scope": 2286,
"src": "915:133:6",
"stateMutability": "view",
"superFunction": 1794,
"superFunction": 2295,
"visibility": "external"

@@ -446,3 +446,3 @@ },

"body": {
"id": 1783,
"id": 2284,
"nodeType": "Block",

@@ -461,3 +461,3 @@ "src": "1499:133:6",

},
"id": 1773,
"id": 2274,
"isConstant": false,

@@ -469,7 +469,7 @@ "isLValue": false,

"argumentTypes": null,
"id": 1771,
"id": 2272,
"name": "interfaceId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1767,
"referencedDeclaration": 2268,
"src": "1517:11:6",

@@ -486,3 +486,3 @@ "typeDescriptions": {

"hexValue": "30786666666666666666",
"id": 1772,
"id": 2273,
"isConstant": false,

@@ -511,3 +511,3 @@ "isLValue": false,

"hexValue": "4552433136353a20696e76616c696420696e74657266616365206964",
"id": 1774,
"id": 2275,
"isConstant": false,

@@ -539,10 +539,10 @@ "isLValue": false,

],
"id": 1770,
"id": 2271,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
2034,
2035
2535,
2536
],
"referencedDeclaration": 2035,
"referencedDeclaration": 2536,
"src": "1509:7:6",

@@ -554,3 +554,3 @@ "typeDescriptions": {

},
"id": 1775,
"id": 2276,
"isConstant": false,

@@ -569,3 +569,3 @@ "isLValue": false,

},
"id": 1776,
"id": 2277,
"nodeType": "ExpressionStatement",

@@ -577,3 +577,3 @@ "src": "1509:66:6"

"argumentTypes": null,
"id": 1781,
"id": 2282,
"isConstant": false,

@@ -587,7 +587,7 @@ "isLValue": false,

"argumentTypes": null,
"id": 1777,
"id": 2278,
"name": "_supportedInterfaces",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1745,
"referencedDeclaration": 2246,
"src": "1585:20:6",

@@ -599,10 +599,10 @@ "typeDescriptions": {

},
"id": 1779,
"id": 2280,
"indexExpression": {
"argumentTypes": null,
"id": 1778,
"id": 2279,
"name": "interfaceId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1767,
"referencedDeclaration": 2268,
"src": "1606:11:6",

@@ -630,3 +630,3 @@ "typeDescriptions": {

"hexValue": "74727565",
"id": 1780,
"id": 2281,
"isConstant": false,

@@ -652,3 +652,3 @@ "isLValue": false,

},
"id": 1782,
"id": 2283,
"nodeType": "ExpressionStatement",

@@ -660,3 +660,3 @@ "src": "1585:40:6"

"documentation": "@dev Registers the contract as an implementer of the interface defined by\n`interfaceId`. Support of the actual ERC165 interface is automatic and\nregistering its interface id is not required.\n * See `IERC165.supportsInterface`.\n * Requirements:\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).",
"id": 1784,
"id": 2285,
"implemented": true,

@@ -668,3 +668,3 @@ "kind": "function",

"parameters": {
"id": 1768,
"id": 2269,
"nodeType": "ParameterList",

@@ -674,6 +674,6 @@ "parameters": [

"constant": false,
"id": 1767,
"id": 2268,
"name": "interfaceId",
"nodeType": "VariableDeclaration",
"scope": 1784,
"scope": 2285,
"src": "1470:18:6",

@@ -687,3 +687,3 @@ "stateVariable": false,

"typeName": {
"id": 1766,
"id": 2267,
"name": "bytes4",

@@ -704,3 +704,3 @@ "nodeType": "ElementaryTypeName",

"returnParameters": {
"id": 1769,
"id": 2270,
"nodeType": "ParameterList",

@@ -710,3 +710,3 @@ "parameters": [],

},
"scope": 1785,
"scope": 2286,
"src": "1442:190:6",

@@ -718,3 +718,3 @@ "stateMutability": "nonpayable",

],
"scope": 1786,
"scope": 2287,
"src": "222:1412:6"

@@ -729,10 +729,10 @@ }

"ERC165": [
1785
2286
]
},
"id": 1786,
"id": 2287,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1735,
"id": 2236,
"literals": [

@@ -750,6 +750,6 @@ "solidity",

"file": "./IERC165.sol",
"id": 1736,
"id": 2237,
"nodeType": "ImportDirective",
"scope": 1786,
"sourceUnit": 1796,
"scope": 2287,
"sourceUnit": 2297,
"src": "25:23:6",

@@ -765,13 +765,13 @@ "symbolAliases": [],

"contractScope": null,
"id": 1737,
"id": 2238,
"name": "IERC165",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 1795,
"referencedDeclaration": 2296,
"src": "241:7:6",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IERC165_$1795",
"typeIdentifier": "t_contract$_IERC165_$2296",
"typeString": "contract IERC165"
}
},
"id": 1738,
"id": 2239,
"nodeType": "InheritanceSpecifier",

@@ -782,3 +782,3 @@ "src": "241:7:6"

"contractDependencies": [
1795
2296
],

@@ -788,6 +788,6 @@ "contractKind": "contract",

"fullyImplemented": true,
"id": 1785,
"id": 2286,
"linearizedBaseContracts": [
1785,
1795
2286,
2296
],

@@ -799,6 +799,6 @@ "name": "ERC165",

"constant": true,
"id": 1741,
"id": 2242,
"name": "_INTERFACE_ID_ERC165",
"nodeType": "VariableDeclaration",
"scope": 1785,
"scope": 2286,
"src": "338:57:6",

@@ -812,3 +812,3 @@ "stateVariable": true,

"typeName": {
"id": 1739,
"id": 2240,
"name": "bytes4",

@@ -825,3 +825,3 @@ "nodeType": "ElementaryTypeName",

"hexValue": "30783031666663396137",
"id": 1740,
"id": 2241,
"isConstant": false,

@@ -845,6 +845,6 @@ "isLValue": false,

"constant": false,
"id": 1745,
"id": 2246,
"name": "_supportedInterfaces",
"nodeType": "VariableDeclaration",
"scope": 1785,
"scope": 2286,
"src": "489:52:6",

@@ -858,5 +858,5 @@ "stateVariable": true,

"typeName": {
"id": 1744,
"id": 2245,
"keyType": {
"id": 1742,
"id": 2243,
"name": "bytes4",

@@ -877,3 +877,3 @@ "nodeType": "ElementaryTypeName",

"valueType": {
"id": 1743,
"id": 2244,
"name": "bool",

@@ -893,3 +893,3 @@ "nodeType": "ElementaryTypeName",

"body": {
"id": 1752,
"id": 2253,
"nodeType": "Block",

@@ -904,7 +904,7 @@ "src": "572:193:6",

"argumentTypes": null,
"id": 1749,
"id": 2250,
"name": "_INTERFACE_ID_ERC165",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1741,
"referencedDeclaration": 2242,
"src": "737:20:6",

@@ -924,7 +924,7 @@ "typeDescriptions": {

],
"id": 1748,
"id": 2249,
"name": "_registerInterface",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1784,
"referencedDeclaration": 2285,
"src": "718:18:6",

@@ -936,3 +936,3 @@ "typeDescriptions": {

},
"id": 1750,
"id": 2251,
"isConstant": false,

@@ -951,3 +951,3 @@ "isLValue": false,

},
"id": 1751,
"id": 2252,
"nodeType": "ExpressionStatement",

@@ -959,3 +959,3 @@ "src": "718:40:6"

"documentation": null,
"id": 1753,
"id": 2254,
"implemented": true,

@@ -967,3 +967,3 @@ "kind": "constructor",

"parameters": {
"id": 1746,
"id": 2247,
"nodeType": "ParameterList",

@@ -974,3 +974,3 @@ "parameters": [],

"returnParameters": {
"id": 1747,
"id": 2248,
"nodeType": "ParameterList",

@@ -980,3 +980,3 @@ "parameters": [],

},
"scope": 1785,
"scope": 2286,
"src": "548:217:6",

@@ -989,3 +989,3 @@ "stateMutability": "nonpayable",

"body": {
"id": 1764,
"id": 2265,
"nodeType": "Block",

@@ -999,7 +999,7 @@ "src": "991:57:6",

"argumentTypes": null,
"id": 1760,
"id": 2261,
"name": "_supportedInterfaces",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1745,
"referencedDeclaration": 2246,
"src": "1008:20:6",

@@ -1011,10 +1011,10 @@ "typeDescriptions": {

},
"id": 1762,
"id": 2263,
"indexExpression": {
"argumentTypes": null,
"id": 1761,
"id": 2262,
"name": "interfaceId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1755,
"referencedDeclaration": 2256,
"src": "1029:11:6",

@@ -1037,4 +1037,4 @@ "typeDescriptions": {

},
"functionReturnParameters": 1759,
"id": 1763,
"functionReturnParameters": 2260,
"id": 2264,
"nodeType": "Return",

@@ -1046,3 +1046,3 @@ "src": "1001:40:6"

"documentation": "@dev See `IERC165.supportsInterface`.\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.",
"id": 1765,
"id": 2266,
"implemented": true,

@@ -1054,3 +1054,3 @@ "kind": "function",

"parameters": {
"id": 1756,
"id": 2257,
"nodeType": "ParameterList",

@@ -1060,6 +1060,6 @@ "parameters": [

"constant": false,
"id": 1755,
"id": 2256,
"name": "interfaceId",
"nodeType": "VariableDeclaration",
"scope": 1765,
"scope": 2266,
"src": "942:18:6",

@@ -1073,3 +1073,3 @@ "stateVariable": false,

"typeName": {
"id": 1754,
"id": 2255,
"name": "bytes4",

@@ -1090,3 +1090,3 @@ "nodeType": "ElementaryTypeName",

"returnParameters": {
"id": 1759,
"id": 2260,
"nodeType": "ParameterList",

@@ -1096,6 +1096,6 @@ "parameters": [

"constant": false,
"id": 1758,
"id": 2259,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 1765,
"scope": 2266,
"src": "985:4:6",

@@ -1109,3 +1109,3 @@ "stateVariable": false,

"typeName": {
"id": 1757,
"id": 2258,
"name": "bool",

@@ -1125,6 +1125,6 @@ "nodeType": "ElementaryTypeName",

},
"scope": 1785,
"scope": 2286,
"src": "915:133:6",
"stateMutability": "view",
"superFunction": 1794,
"superFunction": 2295,
"visibility": "external"

@@ -1134,3 +1134,3 @@ },

"body": {
"id": 1783,
"id": 2284,
"nodeType": "Block",

@@ -1149,3 +1149,3 @@ "src": "1499:133:6",

},
"id": 1773,
"id": 2274,
"isConstant": false,

@@ -1157,7 +1157,7 @@ "isLValue": false,

"argumentTypes": null,
"id": 1771,
"id": 2272,
"name": "interfaceId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1767,
"referencedDeclaration": 2268,
"src": "1517:11:6",

@@ -1174,3 +1174,3 @@ "typeDescriptions": {

"hexValue": "30786666666666666666",
"id": 1772,
"id": 2273,
"isConstant": false,

@@ -1199,3 +1199,3 @@ "isLValue": false,

"hexValue": "4552433136353a20696e76616c696420696e74657266616365206964",
"id": 1774,
"id": 2275,
"isConstant": false,

@@ -1227,10 +1227,10 @@ "isLValue": false,

],
"id": 1770,
"id": 2271,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
2034,
2035
2535,
2536
],
"referencedDeclaration": 2035,
"referencedDeclaration": 2536,
"src": "1509:7:6",

@@ -1242,3 +1242,3 @@ "typeDescriptions": {

},
"id": 1775,
"id": 2276,
"isConstant": false,

@@ -1257,3 +1257,3 @@ "isLValue": false,

},
"id": 1776,
"id": 2277,
"nodeType": "ExpressionStatement",

@@ -1265,3 +1265,3 @@ "src": "1509:66:6"

"argumentTypes": null,
"id": 1781,
"id": 2282,
"isConstant": false,

@@ -1275,7 +1275,7 @@ "isLValue": false,

"argumentTypes": null,
"id": 1777,
"id": 2278,
"name": "_supportedInterfaces",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1745,
"referencedDeclaration": 2246,
"src": "1585:20:6",

@@ -1287,10 +1287,10 @@ "typeDescriptions": {

},
"id": 1779,
"id": 2280,
"indexExpression": {
"argumentTypes": null,
"id": 1778,
"id": 2279,
"name": "interfaceId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1767,
"referencedDeclaration": 2268,
"src": "1606:11:6",

@@ -1318,3 +1318,3 @@ "typeDescriptions": {

"hexValue": "74727565",
"id": 1780,
"id": 2281,
"isConstant": false,

@@ -1340,3 +1340,3 @@ "isLValue": false,

},
"id": 1782,
"id": 2283,
"nodeType": "ExpressionStatement",

@@ -1348,3 +1348,3 @@ "src": "1585:40:6"

"documentation": "@dev Registers the contract as an implementer of the interface defined by\n`interfaceId`. Support of the actual ERC165 interface is automatic and\nregistering its interface id is not required.\n * See `IERC165.supportsInterface`.\n * Requirements:\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).",
"id": 1784,
"id": 2285,
"implemented": true,

@@ -1356,3 +1356,3 @@ "kind": "function",

"parameters": {
"id": 1768,
"id": 2269,
"nodeType": "ParameterList",

@@ -1362,6 +1362,6 @@ "parameters": [

"constant": false,
"id": 1767,
"id": 2268,
"name": "interfaceId",
"nodeType": "VariableDeclaration",
"scope": 1784,
"scope": 2285,
"src": "1470:18:6",

@@ -1375,3 +1375,3 @@ "stateVariable": false,

"typeName": {
"id": 1766,
"id": 2267,
"name": "bytes4",

@@ -1392,3 +1392,3 @@ "nodeType": "ElementaryTypeName",

"returnParameters": {
"id": 1769,
"id": 2270,
"nodeType": "ParameterList",

@@ -1398,3 +1398,3 @@ "parameters": [],

},
"scope": 1785,
"scope": 2286,
"src": "1442:190:6",

@@ -1406,3 +1406,3 @@ "stateMutability": "nonpayable",

],
"scope": 1786,
"scope": 2287,
"src": "222:1412:6"

@@ -1419,3 +1419,3 @@ }

"schemaVersion": "3.0.11",
"updatedAt": "2019-08-07T20:12:19.688Z",
"updatedAt": "2019-08-28T13:18:59.197Z",
"devdoc": {

@@ -1422,0 +1422,0 @@ "details": "Implementation of the `IERC165` interface. * Contracts may inherit from this and call `_registerInterface` to declare their support of an interface.",

@@ -94,3 +94,3 @@ {

],
"metadata": "{\"compiler\":{\"version\":\"0.5.10+commit.5a6ea5b1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"operator\",\"type\":\"address\"},{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"ids\",\"type\":\"uint256[]\"},{\"name\":\"values\",\"type\":\"uint256[]\"},{\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes4\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"operator\",\"type\":\"address\"},{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"id\",\"type\":\"uint256\"},{\"name\":\"value\",\"type\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes4\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-1155\",\"methods\":{\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"Handles the receipt of a multiple ERC1155 token types. This function is called at the end of a `safeBatchTransferFrom` after the balances have been updated. To accept the transfer(s), this must return `bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` (i.e. 0xbc197c81, or its own function selector).\",\"params\":{\"data\":\"Additional data with no specified format\",\"from\":\"The address which previously owned the token\",\"ids\":\"An array containing ids of each token being transferred (order and length must match values array)\",\"operator\":\"The address which initiated the batch transfer (i.e. msg.sender)\",\"values\":\"An array containing amounts of each token being transferred (order and length must match ids array)\"},\"return\":\"`bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` if transfer is allowed\"},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"Handles the receipt of a single ERC1155 token type. This function is called at the end of a `safeTransferFrom` after the balance has been updated. To accept the transfer, this must return `bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` (i.e. 0xf23a6e61, or its own function selector).\",\"params\":{\"data\":\"Additional data with no specified format\",\"from\":\"The address which previously owned the token\",\"id\":\"The ID of the token being transferred\",\"operator\":\"The address which initiated the transfer (i.e. msg.sender)\",\"value\":\"The amount of tokens being transferred\"},\"return\":\"`bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` if transfer is allowed\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding [EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified) to learn more about how these ids are created. * This function call must use less than 30 000 gas.\"}},\"title\":\"ERC-1155 Multi Token Receiver Interface\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/alan/src/github.com/gnosis/hg-contracts/contracts/ERC1155/IERC1155TokenReceiver.sol\":\"IERC1155TokenReceiver\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/alan/src/github.com/gnosis/hg-contracts/contracts/ERC1155/IERC1155TokenReceiver.sol\":{\"keccak256\":\"0xca815b5ca57df8f1056b962c2728d6a1e56fc7d9a7869ccee8f5a1ac6075b75d\",\"urls\":[\"bzzr://61df3e61bf24c80714e326ffdc274aaefc342241de3e72374131f613cddbd042\",\"dweb:/ipfs/QmPnF3rGuY2H3Gifvha4dW7fJPptP7wJerHzjz4dpzfTJW\"]},\"openzeppelin-solidity/contracts/introspection/IERC165.sol\":{\"keccak256\":\"0x661553e43d7c4fbb2de504e5999fd5c104d367488350ed5bf023031bd1ba5ac5\",\"urls\":[\"bzzr://fc2ba15143ce3a00268ecd15fc98eb2469b18bfe27a64bbab0ac6446f161c739\",\"dweb:/ipfs/QmV7wjtRf11ibUHh4g8JjuhMpy68pPhV95L2y46UBoRfsZ\"]}},\"version\":1}",
"metadata": "{\"compiler\":{\"version\":\"0.5.10+commit.5a6ea5b1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"operator\",\"type\":\"address\"},{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"ids\",\"type\":\"uint256[]\"},{\"name\":\"values\",\"type\":\"uint256[]\"},{\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes4\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"operator\",\"type\":\"address\"},{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"id\",\"type\":\"uint256\"},{\"name\":\"value\",\"type\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes4\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-1155\",\"methods\":{\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"Handles the receipt of a multiple ERC1155 token types. This function is called at the end of a `safeBatchTransferFrom` after the balances have been updated. To accept the transfer(s), this must return `bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` (i.e. 0xbc197c81, or its own function selector).\",\"params\":{\"data\":\"Additional data with no specified format\",\"from\":\"The address which previously owned the token\",\"ids\":\"An array containing ids of each token being transferred (order and length must match values array)\",\"operator\":\"The address which initiated the batch transfer (i.e. msg.sender)\",\"values\":\"An array containing amounts of each token being transferred (order and length must match ids array)\"},\"return\":\"`bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` if transfer is allowed\"},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"Handles the receipt of a single ERC1155 token type. This function is called at the end of a `safeTransferFrom` after the balance has been updated. To accept the transfer, this must return `bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` (i.e. 0xf23a6e61, or its own function selector).\",\"params\":{\"data\":\"Additional data with no specified format\",\"from\":\"The address which previously owned the token\",\"id\":\"The ID of the token being transferred\",\"operator\":\"The address which initiated the transfer (i.e. msg.sender)\",\"value\":\"The amount of tokens being transferred\"},\"return\":\"`bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` if transfer is allowed\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding [EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified) to learn more about how these ids are created. * This function call must use less than 30 000 gas.\"}},\"title\":\"ERC-1155 Multi Token Receiver Interface\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/alan/src/github.com/gnosis/conditional-tokens-contracts/contracts/ERC1155/IERC1155TokenReceiver.sol\":\"IERC1155TokenReceiver\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/alan/src/github.com/gnosis/conditional-tokens-contracts/contracts/ERC1155/IERC1155TokenReceiver.sol\":{\"keccak256\":\"0xca815b5ca57df8f1056b962c2728d6a1e56fc7d9a7869ccee8f5a1ac6075b75d\",\"urls\":[\"bzzr://61df3e61bf24c80714e326ffdc274aaefc342241de3e72374131f613cddbd042\",\"dweb:/ipfs/QmPnF3rGuY2H3Gifvha4dW7fJPptP7wJerHzjz4dpzfTJW\"]},\"openzeppelin-solidity/contracts/introspection/IERC165.sol\":{\"keccak256\":\"0x661553e43d7c4fbb2de504e5999fd5c104d367488350ed5bf023031bd1ba5ac5\",\"urls\":[\"bzzr://fc2ba15143ce3a00268ecd15fc98eb2469b18bfe27a64bbab0ac6446f161c739\",\"dweb:/ipfs/QmV7wjtRf11ibUHh4g8JjuhMpy68pPhV95L2y46UBoRfsZ\"]}},\"version\":1}",
"bytecode": "0x",

@@ -101,15 +101,15 @@ "deployedBytecode": "0x",

"source": "pragma solidity ^0.5.0;\n\nimport \"openzeppelin-solidity/contracts/introspection/IERC165.sol\";\n\n/**\n @title ERC-1155 Multi Token Receiver Interface\n @dev See https://eips.ethereum.org/EIPS/eip-1155\n*/\ncontract IERC1155TokenReceiver is IERC165 {\n\n /**\n @dev Handles the receipt of a single ERC1155 token type. This function is\n called at the end of a `safeTransferFrom` after the balance has been updated.\n To accept the transfer, this must return\n `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))`\n (i.e. 0xf23a6e61, or its own function selector).\n @param operator The address which initiated the transfer (i.e. msg.sender)\n @param from The address which previously owned the token\n @param id The ID of the token being transferred\n @param value The amount of tokens being transferred\n @param data Additional data with no specified format\n @return `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))` if transfer is allowed\n */\n function onERC1155Received(\n address operator,\n address from,\n uint256 id,\n uint256 value,\n bytes calldata data\n )\n external\n returns(bytes4);\n\n /**\n @dev Handles the receipt of a multiple ERC1155 token types. This function\n is called at the end of a `safeBatchTransferFrom` after the balances have\n been updated. To accept the transfer(s), this must return\n `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))`\n (i.e. 0xbc197c81, or its own function selector).\n @param operator The address which initiated the batch transfer (i.e. msg.sender)\n @param from The address which previously owned the token\n @param ids An array containing ids of each token being transferred (order and length must match values array)\n @param values An array containing amounts of each token being transferred (order and length must match ids array)\n @param data Additional data with no specified format\n @return `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))` if transfer is allowed\n */\n function onERC1155BatchReceived(\n address operator,\n address from,\n uint256[] calldata ids,\n uint256[] calldata values,\n bytes calldata data\n )\n external\n returns(bytes4);\n}\n",
"sourcePath": "/home/alan/src/github.com/gnosis/hg-contracts/contracts/ERC1155/IERC1155TokenReceiver.sol",
"sourcePath": "/home/alan/src/github.com/gnosis/conditional-tokens-contracts/contracts/ERC1155/IERC1155TokenReceiver.sol",
"ast": {
"absolutePath": "/home/alan/src/github.com/gnosis/hg-contracts/contracts/ERC1155/IERC1155TokenReceiver.sol",
"absolutePath": "/home/alan/src/github.com/gnosis/conditional-tokens-contracts/contracts/ERC1155/IERC1155TokenReceiver.sol",
"exportedSymbols": {
"IERC1155TokenReceiver": [
1676
2177
]
},
"id": 1677,
"id": 2178,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1640,
"id": 2141,
"literals": [

@@ -127,6 +127,6 @@ "solidity",

"file": "openzeppelin-solidity/contracts/introspection/IERC165.sol",
"id": 1641,
"id": 2142,
"nodeType": "ImportDirective",
"scope": 1677,
"sourceUnit": 1796,
"scope": 2178,
"sourceUnit": 2297,
"src": "25:67:4",

@@ -142,13 +142,13 @@ "symbolAliases": [],

"contractScope": null,
"id": 1642,
"id": 2143,
"name": "IERC165",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 1795,
"referencedDeclaration": 2296,
"src": "239:7:4",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IERC165_$1795",
"typeIdentifier": "t_contract$_IERC165_$2296",
"typeString": "contract IERC165"
}
},
"id": 1643,
"id": 2144,
"nodeType": "InheritanceSpecifier",

@@ -159,3 +159,3 @@ "src": "239:7:4"

"contractDependencies": [
1795
2296
],

@@ -165,6 +165,6 @@ "contractKind": "contract",

"fullyImplemented": false,
"id": 1676,
"id": 2177,
"linearizedBaseContracts": [
1676,
1795
2177,
2296
],

@@ -177,3 +177,3 @@ "name": "IERC1155TokenReceiver",

"documentation": "@dev Handles the receipt of a single ERC1155 token type. This function is\ncalled at the end of a `safeTransferFrom` after the balance has been updated.\nTo accept the transfer, this must return\n`bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))`\n(i.e. 0xf23a6e61, or its own function selector).\n@param operator The address which initiated the transfer (i.e. msg.sender)\n@param from The address which previously owned the token\n@param id The ID of the token being transferred\n@param value The amount of tokens being transferred\n@param data Additional data with no specified format\n@return `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))` if transfer is allowed",
"id": 1658,
"id": 2159,
"implemented": false,

@@ -185,3 +185,3 @@ "kind": "function",

"parameters": {
"id": 1654,
"id": 2155,
"nodeType": "ParameterList",

@@ -191,6 +191,6 @@ "parameters": [

"constant": false,
"id": 1645,
"id": 2146,
"name": "operator",
"nodeType": "VariableDeclaration",
"scope": 1658,
"scope": 2159,
"src": "1111:16:4",

@@ -204,3 +204,3 @@ "stateVariable": false,

"typeName": {
"id": 1644,
"id": 2145,
"name": "address",

@@ -220,6 +220,6 @@ "nodeType": "ElementaryTypeName",

"constant": false,
"id": 1647,
"id": 2148,
"name": "from",
"nodeType": "VariableDeclaration",
"scope": 1658,
"scope": 2159,
"src": "1137:12:4",

@@ -233,3 +233,3 @@ "stateVariable": false,

"typeName": {
"id": 1646,
"id": 2147,
"name": "address",

@@ -249,6 +249,6 @@ "nodeType": "ElementaryTypeName",

"constant": false,
"id": 1649,
"id": 2150,
"name": "id",
"nodeType": "VariableDeclaration",
"scope": 1658,
"scope": 2159,
"src": "1159:10:4",

@@ -262,3 +262,3 @@ "stateVariable": false,

"typeName": {
"id": 1648,
"id": 2149,
"name": "uint256",

@@ -277,6 +277,6 @@ "nodeType": "ElementaryTypeName",

"constant": false,
"id": 1651,
"id": 2152,
"name": "value",
"nodeType": "VariableDeclaration",
"scope": 1658,
"scope": 2159,
"src": "1179:13:4",

@@ -290,3 +290,3 @@ "stateVariable": false,

"typeName": {
"id": 1650,
"id": 2151,
"name": "uint256",

@@ -305,6 +305,6 @@ "nodeType": "ElementaryTypeName",

"constant": false,
"id": 1653,
"id": 2154,
"name": "data",
"nodeType": "VariableDeclaration",
"scope": 1658,
"scope": 2159,
"src": "1202:19:4",

@@ -318,3 +318,3 @@ "stateVariable": false,

"typeName": {
"id": 1652,
"id": 2153,
"name": "bytes",

@@ -335,3 +335,3 @@ "nodeType": "ElementaryTypeName",

"returnParameters": {
"id": 1657,
"id": 2158,
"nodeType": "ParameterList",

@@ -341,6 +341,6 @@ "parameters": [

"constant": false,
"id": 1656,
"id": 2157,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 1658,
"scope": 2159,
"src": "1261:6:4",

@@ -354,3 +354,3 @@ "stateVariable": false,

"typeName": {
"id": 1655,
"id": 2156,
"name": "bytes4",

@@ -370,3 +370,3 @@ "nodeType": "ElementaryTypeName",

},
"scope": 1676,
"scope": 2177,
"src": "1075:194:4",

@@ -380,3 +380,3 @@ "stateMutability": "nonpayable",

"documentation": "@dev Handles the receipt of a multiple ERC1155 token types. This function\nis called at the end of a `safeBatchTransferFrom` after the balances have\nbeen updated. To accept the transfer(s), this must return\n`bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))`\n(i.e. 0xbc197c81, or its own function selector).\n@param operator The address which initiated the batch transfer (i.e. msg.sender)\n@param from The address which previously owned the token\n@param ids An array containing ids of each token being transferred (order and length must match values array)\n@param values An array containing amounts of each token being transferred (order and length must match ids array)\n@param data Additional data with no specified format\n@return `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))` if transfer is allowed",
"id": 1675,
"id": 2176,
"implemented": false,

@@ -388,3 +388,3 @@ "kind": "function",

"parameters": {
"id": 1671,
"id": 2172,
"nodeType": "ParameterList",

@@ -394,6 +394,6 @@ "parameters": [

"constant": false,
"id": 1660,
"id": 2161,
"name": "operator",
"nodeType": "VariableDeclaration",
"scope": 1675,
"scope": 2176,
"src": "2298:16:4",

@@ -407,3 +407,3 @@ "stateVariable": false,

"typeName": {
"id": 1659,
"id": 2160,
"name": "address",

@@ -423,6 +423,6 @@ "nodeType": "ElementaryTypeName",

"constant": false,
"id": 1662,
"id": 2163,
"name": "from",
"nodeType": "VariableDeclaration",
"scope": 1675,
"scope": 2176,
"src": "2324:12:4",

@@ -436,3 +436,3 @@ "stateVariable": false,

"typeName": {
"id": 1661,
"id": 2162,
"name": "address",

@@ -452,6 +452,6 @@ "nodeType": "ElementaryTypeName",

"constant": false,
"id": 1665,
"id": 2166,
"name": "ids",
"nodeType": "VariableDeclaration",
"scope": 1675,
"scope": 2176,
"src": "2346:22:4",

@@ -466,3 +466,3 @@ "stateVariable": false,

"baseType": {
"id": 1663,
"id": 2164,
"name": "uint256",

@@ -476,3 +476,3 @@ "nodeType": "ElementaryTypeName",

},
"id": 1664,
"id": 2165,
"length": null,

@@ -491,6 +491,6 @@ "nodeType": "ArrayTypeName",

"constant": false,
"id": 1668,
"id": 2169,
"name": "values",
"nodeType": "VariableDeclaration",
"scope": 1675,
"scope": 2176,
"src": "2378:25:4",

@@ -505,3 +505,3 @@ "stateVariable": false,

"baseType": {
"id": 1666,
"id": 2167,
"name": "uint256",

@@ -515,3 +515,3 @@ "nodeType": "ElementaryTypeName",

},
"id": 1667,
"id": 2168,
"length": null,

@@ -530,6 +530,6 @@ "nodeType": "ArrayTypeName",

"constant": false,
"id": 1670,
"id": 2171,
"name": "data",
"nodeType": "VariableDeclaration",
"scope": 1675,
"scope": 2176,
"src": "2413:19:4",

@@ -543,3 +543,3 @@ "stateVariable": false,

"typeName": {
"id": 1669,
"id": 2170,
"name": "bytes",

@@ -560,3 +560,3 @@ "nodeType": "ElementaryTypeName",

"returnParameters": {
"id": 1674,
"id": 2175,
"nodeType": "ParameterList",

@@ -566,6 +566,6 @@ "parameters": [

"constant": false,
"id": 1673,
"id": 2174,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 1675,
"scope": 2176,
"src": "2472:6:4",

@@ -579,3 +579,3 @@ "stateVariable": false,

"typeName": {
"id": 1672,
"id": 2173,
"name": "bytes4",

@@ -595,3 +595,3 @@ "nodeType": "ElementaryTypeName",

},
"scope": 1676,
"scope": 2177,
"src": "2257:223:4",

@@ -603,3 +603,3 @@ "stateMutability": "nonpayable",

],
"scope": 1677,
"scope": 2178,
"src": "205:2277:4"

@@ -611,13 +611,13 @@ }

"legacyAST": {
"absolutePath": "/home/alan/src/github.com/gnosis/hg-contracts/contracts/ERC1155/IERC1155TokenReceiver.sol",
"absolutePath": "/home/alan/src/github.com/gnosis/conditional-tokens-contracts/contracts/ERC1155/IERC1155TokenReceiver.sol",
"exportedSymbols": {
"IERC1155TokenReceiver": [
1676
2177
]
},
"id": 1677,
"id": 2178,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1640,
"id": 2141,
"literals": [

@@ -635,6 +635,6 @@ "solidity",

"file": "openzeppelin-solidity/contracts/introspection/IERC165.sol",
"id": 1641,
"id": 2142,
"nodeType": "ImportDirective",
"scope": 1677,
"sourceUnit": 1796,
"scope": 2178,
"sourceUnit": 2297,
"src": "25:67:4",

@@ -650,13 +650,13 @@ "symbolAliases": [],

"contractScope": null,
"id": 1642,
"id": 2143,
"name": "IERC165",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 1795,
"referencedDeclaration": 2296,
"src": "239:7:4",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IERC165_$1795",
"typeIdentifier": "t_contract$_IERC165_$2296",
"typeString": "contract IERC165"
}
},
"id": 1643,
"id": 2144,
"nodeType": "InheritanceSpecifier",

@@ -667,3 +667,3 @@ "src": "239:7:4"

"contractDependencies": [
1795
2296
],

@@ -673,6 +673,6 @@ "contractKind": "contract",

"fullyImplemented": false,
"id": 1676,
"id": 2177,
"linearizedBaseContracts": [
1676,
1795
2177,
2296
],

@@ -685,3 +685,3 @@ "name": "IERC1155TokenReceiver",

"documentation": "@dev Handles the receipt of a single ERC1155 token type. This function is\ncalled at the end of a `safeTransferFrom` after the balance has been updated.\nTo accept the transfer, this must return\n`bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))`\n(i.e. 0xf23a6e61, or its own function selector).\n@param operator The address which initiated the transfer (i.e. msg.sender)\n@param from The address which previously owned the token\n@param id The ID of the token being transferred\n@param value The amount of tokens being transferred\n@param data Additional data with no specified format\n@return `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))` if transfer is allowed",
"id": 1658,
"id": 2159,
"implemented": false,

@@ -693,3 +693,3 @@ "kind": "function",

"parameters": {
"id": 1654,
"id": 2155,
"nodeType": "ParameterList",

@@ -699,6 +699,6 @@ "parameters": [

"constant": false,
"id": 1645,
"id": 2146,
"name": "operator",
"nodeType": "VariableDeclaration",
"scope": 1658,
"scope": 2159,
"src": "1111:16:4",

@@ -712,3 +712,3 @@ "stateVariable": false,

"typeName": {
"id": 1644,
"id": 2145,
"name": "address",

@@ -728,6 +728,6 @@ "nodeType": "ElementaryTypeName",

"constant": false,
"id": 1647,
"id": 2148,
"name": "from",
"nodeType": "VariableDeclaration",
"scope": 1658,
"scope": 2159,
"src": "1137:12:4",

@@ -741,3 +741,3 @@ "stateVariable": false,

"typeName": {
"id": 1646,
"id": 2147,
"name": "address",

@@ -757,6 +757,6 @@ "nodeType": "ElementaryTypeName",

"constant": false,
"id": 1649,
"id": 2150,
"name": "id",
"nodeType": "VariableDeclaration",
"scope": 1658,
"scope": 2159,
"src": "1159:10:4",

@@ -770,3 +770,3 @@ "stateVariable": false,

"typeName": {
"id": 1648,
"id": 2149,
"name": "uint256",

@@ -785,6 +785,6 @@ "nodeType": "ElementaryTypeName",

"constant": false,
"id": 1651,
"id": 2152,
"name": "value",
"nodeType": "VariableDeclaration",
"scope": 1658,
"scope": 2159,
"src": "1179:13:4",

@@ -798,3 +798,3 @@ "stateVariable": false,

"typeName": {
"id": 1650,
"id": 2151,
"name": "uint256",

@@ -813,6 +813,6 @@ "nodeType": "ElementaryTypeName",

"constant": false,
"id": 1653,
"id": 2154,
"name": "data",
"nodeType": "VariableDeclaration",
"scope": 1658,
"scope": 2159,
"src": "1202:19:4",

@@ -826,3 +826,3 @@ "stateVariable": false,

"typeName": {
"id": 1652,
"id": 2153,
"name": "bytes",

@@ -843,3 +843,3 @@ "nodeType": "ElementaryTypeName",

"returnParameters": {
"id": 1657,
"id": 2158,
"nodeType": "ParameterList",

@@ -849,6 +849,6 @@ "parameters": [

"constant": false,
"id": 1656,
"id": 2157,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 1658,
"scope": 2159,
"src": "1261:6:4",

@@ -862,3 +862,3 @@ "stateVariable": false,

"typeName": {
"id": 1655,
"id": 2156,
"name": "bytes4",

@@ -878,3 +878,3 @@ "nodeType": "ElementaryTypeName",

},
"scope": 1676,
"scope": 2177,
"src": "1075:194:4",

@@ -888,3 +888,3 @@ "stateMutability": "nonpayable",

"documentation": "@dev Handles the receipt of a multiple ERC1155 token types. This function\nis called at the end of a `safeBatchTransferFrom` after the balances have\nbeen updated. To accept the transfer(s), this must return\n`bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))`\n(i.e. 0xbc197c81, or its own function selector).\n@param operator The address which initiated the batch transfer (i.e. msg.sender)\n@param from The address which previously owned the token\n@param ids An array containing ids of each token being transferred (order and length must match values array)\n@param values An array containing amounts of each token being transferred (order and length must match ids array)\n@param data Additional data with no specified format\n@return `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))` if transfer is allowed",
"id": 1675,
"id": 2176,
"implemented": false,

@@ -896,3 +896,3 @@ "kind": "function",

"parameters": {
"id": 1671,
"id": 2172,
"nodeType": "ParameterList",

@@ -902,6 +902,6 @@ "parameters": [

"constant": false,
"id": 1660,
"id": 2161,
"name": "operator",
"nodeType": "VariableDeclaration",
"scope": 1675,
"scope": 2176,
"src": "2298:16:4",

@@ -915,3 +915,3 @@ "stateVariable": false,

"typeName": {
"id": 1659,
"id": 2160,
"name": "address",

@@ -931,6 +931,6 @@ "nodeType": "ElementaryTypeName",

"constant": false,
"id": 1662,
"id": 2163,
"name": "from",
"nodeType": "VariableDeclaration",
"scope": 1675,
"scope": 2176,
"src": "2324:12:4",

@@ -944,3 +944,3 @@ "stateVariable": false,

"typeName": {
"id": 1661,
"id": 2162,
"name": "address",

@@ -960,6 +960,6 @@ "nodeType": "ElementaryTypeName",

"constant": false,
"id": 1665,
"id": 2166,
"name": "ids",
"nodeType": "VariableDeclaration",
"scope": 1675,
"scope": 2176,
"src": "2346:22:4",

@@ -974,3 +974,3 @@ "stateVariable": false,

"baseType": {
"id": 1663,
"id": 2164,
"name": "uint256",

@@ -984,3 +984,3 @@ "nodeType": "ElementaryTypeName",

},
"id": 1664,
"id": 2165,
"length": null,

@@ -999,6 +999,6 @@ "nodeType": "ArrayTypeName",

"constant": false,
"id": 1668,
"id": 2169,
"name": "values",
"nodeType": "VariableDeclaration",
"scope": 1675,
"scope": 2176,
"src": "2378:25:4",

@@ -1013,3 +1013,3 @@ "stateVariable": false,

"baseType": {
"id": 1666,
"id": 2167,
"name": "uint256",

@@ -1023,3 +1023,3 @@ "nodeType": "ElementaryTypeName",

},
"id": 1667,
"id": 2168,
"length": null,

@@ -1038,6 +1038,6 @@ "nodeType": "ArrayTypeName",

"constant": false,
"id": 1670,
"id": 2171,
"name": "data",
"nodeType": "VariableDeclaration",
"scope": 1675,
"scope": 2176,
"src": "2413:19:4",

@@ -1051,3 +1051,3 @@ "stateVariable": false,

"typeName": {
"id": 1669,
"id": 2170,
"name": "bytes",

@@ -1068,3 +1068,3 @@ "nodeType": "ElementaryTypeName",

"returnParameters": {
"id": 1674,
"id": 2175,
"nodeType": "ParameterList",

@@ -1074,6 +1074,6 @@ "parameters": [

"constant": false,
"id": 1673,
"id": 2174,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 1675,
"scope": 2176,
"src": "2472:6:4",

@@ -1087,3 +1087,3 @@ "stateVariable": false,

"typeName": {
"id": 1672,
"id": 2173,
"name": "bytes4",

@@ -1103,3 +1103,3 @@ "nodeType": "ElementaryTypeName",

},
"scope": 1676,
"scope": 2177,
"src": "2257:223:4",

@@ -1111,3 +1111,3 @@ "stateMutability": "nonpayable",

],
"scope": 1677,
"scope": 2178,
"src": "205:2277:4"

@@ -1124,3 +1124,3 @@ }

"schemaVersion": "3.0.11",
"updatedAt": "2019-08-07T20:12:19.687Z",
"updatedAt": "2019-08-28T13:18:59.195Z",
"devdoc": {

@@ -1127,0 +1127,0 @@ "details": "See https://eips.ethereum.org/EIPS/eip-1155",

@@ -35,10 +35,10 @@ {

"IERC165": [
1795
2296
]
},
"id": 1796,
"id": 2297,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1787,
"id": 2288,
"literals": [

@@ -59,5 +59,5 @@ "solidity",

"fullyImplemented": false,
"id": 1795,
"id": 2296,
"linearizedBaseContracts": [
1795
2296
],

@@ -70,3 +70,3 @@ "name": "IERC165",

"documentation": "@dev Returns true if this contract implements the interface defined by\n`interfaceId`. See the corresponding\n[EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified)\nto learn more about how these ids are created.\n * This function call must use less than 30 000 gas.",
"id": 1794,
"id": 2295,
"implemented": false,

@@ -78,3 +78,3 @@ "kind": "function",

"parameters": {
"id": 1790,
"id": 2291,
"nodeType": "ParameterList",

@@ -84,6 +84,6 @@ "parameters": [

"constant": false,
"id": 1789,
"id": 2290,
"name": "interfaceId",
"nodeType": "VariableDeclaration",
"scope": 1794,
"scope": 2295,
"src": "705:18:7",

@@ -97,3 +97,3 @@ "stateVariable": false,

"typeName": {
"id": 1788,
"id": 2289,
"name": "bytes4",

@@ -114,3 +114,3 @@ "nodeType": "ElementaryTypeName",

"returnParameters": {
"id": 1793,
"id": 2294,
"nodeType": "ParameterList",

@@ -120,6 +120,6 @@ "parameters": [

"constant": false,
"id": 1792,
"id": 2293,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 1794,
"scope": 2295,
"src": "748:4:7",

@@ -133,3 +133,3 @@ "stateVariable": false,

"typeName": {
"id": 1791,
"id": 2292,
"name": "bool",

@@ -149,3 +149,3 @@ "nodeType": "ElementaryTypeName",

},
"scope": 1795,
"scope": 2296,
"src": "678:76:7",

@@ -157,3 +157,3 @@ "stateMutability": "view",

],
"scope": 1796,
"scope": 2297,
"src": "307:449:7"

@@ -168,10 +168,10 @@ }

"IERC165": [
1795
2296
]
},
"id": 1796,
"id": 2297,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1787,
"id": 2288,
"literals": [

@@ -192,5 +192,5 @@ "solidity",

"fullyImplemented": false,
"id": 1795,
"id": 2296,
"linearizedBaseContracts": [
1795
2296
],

@@ -203,3 +203,3 @@ "name": "IERC165",

"documentation": "@dev Returns true if this contract implements the interface defined by\n`interfaceId`. See the corresponding\n[EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified)\nto learn more about how these ids are created.\n * This function call must use less than 30 000 gas.",
"id": 1794,
"id": 2295,
"implemented": false,

@@ -211,3 +211,3 @@ "kind": "function",

"parameters": {
"id": 1790,
"id": 2291,
"nodeType": "ParameterList",

@@ -217,6 +217,6 @@ "parameters": [

"constant": false,
"id": 1789,
"id": 2290,
"name": "interfaceId",
"nodeType": "VariableDeclaration",
"scope": 1794,
"scope": 2295,
"src": "705:18:7",

@@ -230,3 +230,3 @@ "stateVariable": false,

"typeName": {
"id": 1788,
"id": 2289,
"name": "bytes4",

@@ -247,3 +247,3 @@ "nodeType": "ElementaryTypeName",

"returnParameters": {
"id": 1793,
"id": 2294,
"nodeType": "ParameterList",

@@ -253,6 +253,6 @@ "parameters": [

"constant": false,
"id": 1792,
"id": 2293,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 1794,
"scope": 2295,
"src": "748:4:7",

@@ -266,3 +266,3 @@ "stateVariable": false,

"typeName": {
"id": 1791,
"id": 2292,
"name": "bool",

@@ -282,3 +282,3 @@ "nodeType": "ElementaryTypeName",

},
"scope": 1795,
"scope": 2296,
"src": "678:76:7",

@@ -290,3 +290,3 @@ "stateMutability": "view",

],
"scope": 1796,
"scope": 2297,
"src": "307:449:7"

@@ -303,3 +303,3 @@ }

"schemaVersion": "3.0.11",
"updatedAt": "2019-08-07T20:12:19.689Z",
"updatedAt": "2019-08-28T13:18:59.247Z",
"devdoc": {

@@ -306,0 +306,0 @@ "details": "Interface of the ERC165 standard, as defined in the [EIP](https://eips.ethereum.org/EIPS/eip-165). * Implementers can declare support of contract interfaces, which can then be queried by others (`ERC165Checker`). * For an implementation, see `ERC165`.",

@@ -67,21 +67,21 @@ {

],
"metadata": "{\"compiler\":{\"version\":\"0.5.10+commit.5a6ea5b1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"upgrade\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lastCompletedMigration\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"completed\",\"type\":\"uint256\"}],\"name\":\"setCompleted\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/alan/src/github.com/gnosis/hg-contracts/contracts/Migrations.sol\":\"Migrations\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/alan/src/github.com/gnosis/hg-contracts/contracts/Migrations.sol\":{\"keccak256\":\"0x39666fa26b6e786234e01c48cdfdbbffe1a1af5dfe0fb74ec6b970daeb3f3bc3\",\"urls\":[\"bzzr://0c9536b8c4f627d916bf201ed9b72c99bddd268e16eaf4ed8d521ad6c9b27cab\",\"dweb:/ipfs/QmZVULUy8eqntGaErvJsuZN876vc6mNYwRVC9zC39QzjRx\"]}},\"version\":1}",
"bytecode": "0x608060405234801561001057600080fd5b50600080546001600160a01b031916331790556101b3806100326000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f010146100515780638da5cb5b14610079578063fbdbad3c1461009d578063fdacd576146100b7575b600080fd5b6100776004803603602081101561006757600080fd5b50356001600160a01b03166100d4565b005b610081610151565b604080516001600160a01b039092168252519081900360200190f35b6100a5610160565b60408051918252519081900360200190f35b610077600480360360208110156100cd57600080fd5b5035610166565b6000546001600160a01b031633141561014e576000819050806001600160a01b031663fdacd5766001546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561013457600080fd5b505af1158015610148573d6000803e3d6000fd5b50505050505b50565b6000546001600160a01b031681565b60015481565b6000546001600160a01b031633141561014e5760015556fea265627a7a723058206ec38eac2c39d2271284f10ac18f2076bda8deeeb87e9e5e6b5b20913b92196464736f6c634300050a0032",
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f010146100515780638da5cb5b14610079578063fbdbad3c1461009d578063fdacd576146100b7575b600080fd5b6100776004803603602081101561006757600080fd5b50356001600160a01b03166100d4565b005b610081610151565b604080516001600160a01b039092168252519081900360200190f35b6100a5610160565b60408051918252519081900360200190f35b610077600480360360208110156100cd57600080fd5b5035610166565b6000546001600160a01b031633141561014e576000819050806001600160a01b031663fdacd5766001546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561013457600080fd5b505af1158015610148573d6000803e3d6000fd5b50505050505b50565b6000546001600160a01b031681565b60015481565b6000546001600160a01b031633141561014e5760015556fea265627a7a723058206ec38eac2c39d2271284f10ac18f2076bda8deeeb87e9e5e6b5b20913b92196464736f6c634300050a0032",
"metadata": "{\"compiler\":{\"version\":\"0.5.10+commit.5a6ea5b1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"upgrade\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lastCompletedMigration\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"completed\",\"type\":\"uint256\"}],\"name\":\"setCompleted\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/alan/src/github.com/gnosis/conditional-tokens-contracts/contracts/Migrations.sol\":\"Migrations\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/alan/src/github.com/gnosis/conditional-tokens-contracts/contracts/Migrations.sol\":{\"keccak256\":\"0x39666fa26b6e786234e01c48cdfdbbffe1a1af5dfe0fb74ec6b970daeb3f3bc3\",\"urls\":[\"bzzr://0c9536b8c4f627d916bf201ed9b72c99bddd268e16eaf4ed8d521ad6c9b27cab\",\"dweb:/ipfs/QmZVULUy8eqntGaErvJsuZN876vc6mNYwRVC9zC39QzjRx\"]}},\"version\":1}",
"bytecode": "0x608060405234801561001057600080fd5b50600080546001600160a01b031916331790556101b3806100326000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f010146100515780638da5cb5b14610079578063fbdbad3c1461009d578063fdacd576146100b7575b600080fd5b6100776004803603602081101561006757600080fd5b50356001600160a01b03166100d4565b005b610081610151565b604080516001600160a01b039092168252519081900360200190f35b6100a5610160565b60408051918252519081900360200190f35b610077600480360360208110156100cd57600080fd5b5035610166565b6000546001600160a01b031633141561014e576000819050806001600160a01b031663fdacd5766001546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561013457600080fd5b505af1158015610148573d6000803e3d6000fd5b50505050505b50565b6000546001600160a01b031681565b60015481565b6000546001600160a01b031633141561014e5760015556fea265627a7a72305820c06760eb8f9c5d8a0cca3cbe078eb8b13f3b5162be86462d93078c7f1a1617dc64736f6c634300050a0032",
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f010146100515780638da5cb5b14610079578063fbdbad3c1461009d578063fdacd576146100b7575b600080fd5b6100776004803603602081101561006757600080fd5b50356001600160a01b03166100d4565b005b610081610151565b604080516001600160a01b039092168252519081900360200190f35b6100a5610160565b60408051918252519081900360200190f35b610077600480360360208110156100cd57600080fd5b5035610166565b6000546001600160a01b031633141561014e576000819050806001600160a01b031663fdacd5766001546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561013457600080fd5b505af1158015610148573d6000803e3d6000fd5b50505050505b50565b6000546001600160a01b031681565b60015481565b6000546001600160a01b031633141561014e5760015556fea265627a7a72305820c06760eb8f9c5d8a0cca3cbe078eb8b13f3b5162be86462d93078c7f1a1617dc64736f6c634300050a0032",
"sourceMap": "26:512:5:-;;;190:56;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;221:5:5;:18;;-1:-1:-1;;;;;;221:18:5;229:10;221:18;;;26:512;;;;;;",
"deployedSourceMap": "26:512:5:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26:512:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;365:171;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;365:171:5;-1:-1:-1;;;;;365:171:5;;:::i;:::-;;52:20;;;:::i;:::-;;;;-1:-1:-1;;;;;52:20:5;;;;;;;;;;;;;;78:34;;;:::i;:::-;;;;;;;;;;;;;;;;252:107;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;252:107:5;;:::i;365:171::-;169:5;;-1:-1:-1;;;;;169:5:5;155:10;:19;151:26;;;430:19;463:10;430:44;;484:8;-1:-1:-1;;;;;484:21:5;;506:22;;484:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;484:45:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;484:45:5;;;;176:1;151:26;365:171;:::o;52:20::-;;;-1:-1:-1;;;;;52:20:5;;:::o;78:34::-;;;;:::o;252:107::-;169:5;;-1:-1:-1;;;;;169:5:5;155:10;:19;151:26;;;318:22;:34;252:107::o",
"source": "pragma solidity ^0.5.1;\n\n\ncontract Migrations {\n address public owner;\n uint public lastCompletedMigration;\n\n modifier restricted() {\n if (msg.sender == owner) _;\n }\n\n constructor() public {\n owner = msg.sender;\n }\n\n function setCompleted(uint completed) public restricted {\n lastCompletedMigration = completed;\n }\n\n function upgrade(address newAddress) public restricted {\n Migrations upgraded = Migrations(newAddress);\n upgraded.setCompleted(lastCompletedMigration);\n }\n}\n",
"sourcePath": "/home/alan/src/github.com/gnosis/hg-contracts/contracts/Migrations.sol",
"sourcePath": "/home/alan/src/github.com/gnosis/conditional-tokens-contracts/contracts/Migrations.sol",
"ast": {
"absolutePath": "/home/alan/src/github.com/gnosis/hg-contracts/contracts/Migrations.sol",
"absolutePath": "/home/alan/src/github.com/gnosis/conditional-tokens-contracts/contracts/Migrations.sol",
"exportedSymbols": {
"Migrations": [
1733
2234
]
},
"id": 1734,
"id": 2235,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1678,
"id": 2179,
"literals": [

@@ -102,5 +102,5 @@ "solidity",

"fullyImplemented": true,
"id": 1733,
"id": 2234,
"linearizedBaseContracts": [
1733
2234
],

@@ -112,6 +112,6 @@ "name": "Migrations",

"constant": false,
"id": 1680,
"id": 2181,
"name": "owner",
"nodeType": "VariableDeclaration",
"scope": 1733,
"scope": 2234,
"src": "52:20:5",

@@ -125,3 +125,3 @@ "stateVariable": true,

"typeName": {
"id": 1679,
"id": 2180,
"name": "address",

@@ -141,6 +141,6 @@ "nodeType": "ElementaryTypeName",

"constant": false,
"id": 1682,
"id": 2183,
"name": "lastCompletedMigration",
"nodeType": "VariableDeclaration",
"scope": 1733,
"scope": 2234,
"src": "78:34:5",

@@ -154,3 +154,3 @@ "stateVariable": true,

"typeName": {
"id": 1681,
"id": 2182,
"name": "uint",

@@ -169,3 +169,3 @@ "nodeType": "ElementaryTypeName",

"body": {
"id": 1690,
"id": 2191,
"nodeType": "Block",

@@ -181,3 +181,3 @@ "src": "141:43:5",

},
"id": 1687,
"id": 2188,
"isConstant": false,

@@ -191,7 +191,7 @@ "isLValue": false,

"argumentTypes": null,
"id": 1684,
"id": 2185,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2031,
"referencedDeclaration": 2532,
"src": "155:3:5",

@@ -203,3 +203,3 @@ "typeDescriptions": {

},
"id": 1685,
"id": 2186,
"isConstant": false,

@@ -222,7 +222,7 @@ "isLValue": false,

"argumentTypes": null,
"id": 1686,
"id": 2187,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1680,
"referencedDeclaration": 2181,
"src": "169:5:5",

@@ -241,7 +241,7 @@ "typeDescriptions": {

"falseBody": null,
"id": 1689,
"id": 2190,
"nodeType": "IfStatement",
"src": "151:26:5",
"trueBody": {
"id": 1688,
"id": 2189,
"nodeType": "PlaceholderStatement",

@@ -254,7 +254,7 @@ "src": "176:1:5"

"documentation": null,
"id": 1691,
"id": 2192,
"name": "restricted",
"nodeType": "ModifierDefinition",
"parameters": {
"id": 1683,
"id": 2184,
"nodeType": "ParameterList",

@@ -269,3 +269,3 @@ "parameters": [],

"body": {
"id": 1699,
"id": 2200,
"nodeType": "Block",

@@ -277,3 +277,3 @@ "src": "211:35:5",

"argumentTypes": null,
"id": 1697,
"id": 2198,
"isConstant": false,

@@ -285,7 +285,7 @@ "isLValue": false,

"argumentTypes": null,
"id": 1694,
"id": 2195,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1680,
"referencedDeclaration": 2181,
"src": "221:5:5",

@@ -303,7 +303,7 @@ "typeDescriptions": {

"argumentTypes": null,
"id": 1695,
"id": 2196,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2031,
"referencedDeclaration": 2532,
"src": "229:3:5",

@@ -315,3 +315,3 @@ "typeDescriptions": {

},
"id": 1696,
"id": 2197,
"isConstant": false,

@@ -336,3 +336,3 @@ "isLValue": false,

},
"id": 1698,
"id": 2199,
"nodeType": "ExpressionStatement",

@@ -344,3 +344,3 @@ "src": "221:18:5"

"documentation": null,
"id": 1700,
"id": 2201,
"implemented": true,

@@ -352,3 +352,3 @@ "kind": "constructor",

"parameters": {
"id": 1692,
"id": 2193,
"nodeType": "ParameterList",

@@ -359,3 +359,3 @@ "parameters": [],

"returnParameters": {
"id": 1693,
"id": 2194,
"nodeType": "ParameterList",

@@ -365,3 +365,3 @@ "parameters": [],

},
"scope": 1733,
"scope": 2234,
"src": "190:56:5",

@@ -374,3 +374,3 @@ "stateMutability": "nonpayable",

"body": {
"id": 1711,
"id": 2212,
"nodeType": "Block",

@@ -382,3 +382,3 @@ "src": "308:51:5",

"argumentTypes": null,
"id": 1709,
"id": 2210,
"isConstant": false,

@@ -390,7 +390,7 @@ "isLValue": false,

"argumentTypes": null,
"id": 1707,
"id": 2208,
"name": "lastCompletedMigration",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1682,
"referencedDeclaration": 2183,
"src": "318:22:5",

@@ -406,7 +406,7 @@ "typeDescriptions": {

"argumentTypes": null,
"id": 1708,
"id": 2209,
"name": "completed",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1702,
"referencedDeclaration": 2203,
"src": "343:9:5",

@@ -424,3 +424,3 @@ "typeDescriptions": {

},
"id": 1710,
"id": 2211,
"nodeType": "ExpressionStatement",

@@ -432,3 +432,3 @@ "src": "318:34:5"

"documentation": null,
"id": 1712,
"id": 2213,
"implemented": true,

@@ -439,10 +439,10 @@ "kind": "function",

"arguments": null,
"id": 1705,
"id": 2206,
"modifierName": {
"argumentTypes": null,
"id": 1704,
"id": 2205,
"name": "restricted",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1691,
"referencedDeclaration": 2192,
"src": "297:10:5",

@@ -461,3 +461,3 @@ "typeDescriptions": {

"parameters": {
"id": 1703,
"id": 2204,
"nodeType": "ParameterList",

@@ -467,6 +467,6 @@ "parameters": [

"constant": false,
"id": 1702,
"id": 2203,
"name": "completed",
"nodeType": "VariableDeclaration",
"scope": 1712,
"scope": 2213,
"src": "274:14:5",

@@ -480,3 +480,3 @@ "stateVariable": false,

"typeName": {
"id": 1701,
"id": 2202,
"name": "uint",

@@ -497,3 +497,3 @@ "nodeType": "ElementaryTypeName",

"returnParameters": {
"id": 1706,
"id": 2207,
"nodeType": "ParameterList",

@@ -503,3 +503,3 @@ "parameters": [],

},
"scope": 1733,
"scope": 2234,
"src": "252:107:5",

@@ -512,3 +512,3 @@ "stateMutability": "nonpayable",

"body": {
"id": 1731,
"id": 2232,
"nodeType": "Block",

@@ -519,3 +519,3 @@ "src": "420:116:5",

"assignments": [
1720
2221
],

@@ -525,6 +525,6 @@ "declarations": [

"constant": false,
"id": 1720,
"id": 2221,
"name": "upgraded",
"nodeType": "VariableDeclaration",
"scope": 1731,
"scope": 2232,
"src": "430:19:5",

@@ -534,3 +534,3 @@ "stateVariable": false,

"typeDescriptions": {
"typeIdentifier": "t_contract$_Migrations_$1733",
"typeIdentifier": "t_contract$_Migrations_$2234",
"typeString": "contract Migrations"

@@ -540,9 +540,9 @@ },

"contractScope": null,
"id": 1719,
"id": 2220,
"name": "Migrations",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 1733,
"referencedDeclaration": 2234,
"src": "430:10:5",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Migrations_$1733",
"typeIdentifier": "t_contract$_Migrations_$2234",
"typeString": "contract Migrations"

@@ -555,3 +555,3 @@ }

],
"id": 1724,
"id": 2225,
"initialValue": {

@@ -562,7 +562,7 @@ "argumentTypes": null,

"argumentTypes": null,
"id": 1722,
"id": 2223,
"name": "newAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1714,
"referencedDeclaration": 2215,
"src": "463:10:5",

@@ -582,14 +582,14 @@ "typeDescriptions": {

],
"id": 1721,
"id": 2222,
"name": "Migrations",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1733,
"referencedDeclaration": 2234,
"src": "452:10:5",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_Migrations_$1733_$",
"typeIdentifier": "t_type$_t_contract$_Migrations_$2234_$",
"typeString": "type(contract Migrations)"
}
},
"id": 1723,
"id": 2224,
"isConstant": false,

@@ -604,3 +604,3 @@ "isLValue": false,

"typeDescriptions": {
"typeIdentifier": "t_contract$_Migrations_$1733",
"typeIdentifier": "t_contract$_Migrations_$2234",
"typeString": "contract Migrations"

@@ -618,7 +618,7 @@ }

"argumentTypes": null,
"id": 1728,
"id": 2229,
"name": "lastCompletedMigration",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1682,
"referencedDeclaration": 2183,
"src": "506:22:5",

@@ -640,14 +640,14 @@ "typeDescriptions": {

"argumentTypes": null,
"id": 1725,
"id": 2226,
"name": "upgraded",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1720,
"referencedDeclaration": 2221,
"src": "484:8:5",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Migrations_$1733",
"typeIdentifier": "t_contract$_Migrations_$2234",
"typeString": "contract Migrations"
}
},
"id": 1727,
"id": 2228,
"isConstant": false,

@@ -659,3 +659,3 @@ "isLValue": false,

"nodeType": "MemberAccess",
"referencedDeclaration": 1712,
"referencedDeclaration": 2213,
"src": "484:21:5",

@@ -667,3 +667,3 @@ "typeDescriptions": {

},
"id": 1729,
"id": 2230,
"isConstant": false,

@@ -682,3 +682,3 @@ "isLValue": false,

},
"id": 1730,
"id": 2231,
"nodeType": "ExpressionStatement",

@@ -690,3 +690,3 @@ "src": "484:45:5"

"documentation": null,
"id": 1732,
"id": 2233,
"implemented": true,

@@ -697,10 +697,10 @@ "kind": "function",

"arguments": null,
"id": 1717,
"id": 2218,
"modifierName": {
"argumentTypes": null,
"id": 1716,
"id": 2217,
"name": "restricted",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1691,
"referencedDeclaration": 2192,
"src": "409:10:5",

@@ -719,3 +719,3 @@ "typeDescriptions": {

"parameters": {
"id": 1715,
"id": 2216,
"nodeType": "ParameterList",

@@ -725,6 +725,6 @@ "parameters": [

"constant": false,
"id": 1714,
"id": 2215,
"name": "newAddress",
"nodeType": "VariableDeclaration",
"scope": 1732,
"scope": 2233,
"src": "382:18:5",

@@ -738,3 +738,3 @@ "stateVariable": false,

"typeName": {
"id": 1713,
"id": 2214,
"name": "address",

@@ -756,3 +756,3 @@ "nodeType": "ElementaryTypeName",

"returnParameters": {
"id": 1718,
"id": 2219,
"nodeType": "ParameterList",

@@ -762,3 +762,3 @@ "parameters": [],

},
"scope": 1733,
"scope": 2234,
"src": "365:171:5",

@@ -770,3 +770,3 @@ "stateMutability": "nonpayable",

],
"scope": 1734,
"scope": 2235,
"src": "26:512:5"

@@ -778,13 +778,13 @@ }

"legacyAST": {
"absolutePath": "/home/alan/src/github.com/gnosis/hg-contracts/contracts/Migrations.sol",
"absolutePath": "/home/alan/src/github.com/gnosis/conditional-tokens-contracts/contracts/Migrations.sol",
"exportedSymbols": {
"Migrations": [
1733
2234
]
},
"id": 1734,
"id": 2235,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1678,
"id": 2179,
"literals": [

@@ -805,5 +805,5 @@ "solidity",

"fullyImplemented": true,
"id": 1733,
"id": 2234,
"linearizedBaseContracts": [
1733
2234
],

@@ -815,6 +815,6 @@ "name": "Migrations",

"constant": false,
"id": 1680,
"id": 2181,
"name": "owner",
"nodeType": "VariableDeclaration",
"scope": 1733,
"scope": 2234,
"src": "52:20:5",

@@ -828,3 +828,3 @@ "stateVariable": true,

"typeName": {
"id": 1679,
"id": 2180,
"name": "address",

@@ -844,6 +844,6 @@ "nodeType": "ElementaryTypeName",

"constant": false,
"id": 1682,
"id": 2183,
"name": "lastCompletedMigration",
"nodeType": "VariableDeclaration",
"scope": 1733,
"scope": 2234,
"src": "78:34:5",

@@ -857,3 +857,3 @@ "stateVariable": true,

"typeName": {
"id": 1681,
"id": 2182,
"name": "uint",

@@ -872,3 +872,3 @@ "nodeType": "ElementaryTypeName",

"body": {
"id": 1690,
"id": 2191,
"nodeType": "Block",

@@ -884,3 +884,3 @@ "src": "141:43:5",

},
"id": 1687,
"id": 2188,
"isConstant": false,

@@ -894,7 +894,7 @@ "isLValue": false,

"argumentTypes": null,
"id": 1684,
"id": 2185,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2031,
"referencedDeclaration": 2532,
"src": "155:3:5",

@@ -906,3 +906,3 @@ "typeDescriptions": {

},
"id": 1685,
"id": 2186,
"isConstant": false,

@@ -925,7 +925,7 @@ "isLValue": false,

"argumentTypes": null,
"id": 1686,
"id": 2187,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1680,
"referencedDeclaration": 2181,
"src": "169:5:5",

@@ -944,7 +944,7 @@ "typeDescriptions": {

"falseBody": null,
"id": 1689,
"id": 2190,
"nodeType": "IfStatement",
"src": "151:26:5",
"trueBody": {
"id": 1688,
"id": 2189,
"nodeType": "PlaceholderStatement",

@@ -957,7 +957,7 @@ "src": "176:1:5"

"documentation": null,
"id": 1691,
"id": 2192,
"name": "restricted",
"nodeType": "ModifierDefinition",
"parameters": {
"id": 1683,
"id": 2184,
"nodeType": "ParameterList",

@@ -972,3 +972,3 @@ "parameters": [],

"body": {
"id": 1699,
"id": 2200,
"nodeType": "Block",

@@ -980,3 +980,3 @@ "src": "211:35:5",

"argumentTypes": null,
"id": 1697,
"id": 2198,
"isConstant": false,

@@ -988,7 +988,7 @@ "isLValue": false,

"argumentTypes": null,
"id": 1694,
"id": 2195,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1680,
"referencedDeclaration": 2181,
"src": "221:5:5",

@@ -1006,7 +1006,7 @@ "typeDescriptions": {

"argumentTypes": null,
"id": 1695,
"id": 2196,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2031,
"referencedDeclaration": 2532,
"src": "229:3:5",

@@ -1018,3 +1018,3 @@ "typeDescriptions": {

},
"id": 1696,
"id": 2197,
"isConstant": false,

@@ -1039,3 +1039,3 @@ "isLValue": false,

},
"id": 1698,
"id": 2199,
"nodeType": "ExpressionStatement",

@@ -1047,3 +1047,3 @@ "src": "221:18:5"

"documentation": null,
"id": 1700,
"id": 2201,
"implemented": true,

@@ -1055,3 +1055,3 @@ "kind": "constructor",

"parameters": {
"id": 1692,
"id": 2193,
"nodeType": "ParameterList",

@@ -1062,3 +1062,3 @@ "parameters": [],

"returnParameters": {
"id": 1693,
"id": 2194,
"nodeType": "ParameterList",

@@ -1068,3 +1068,3 @@ "parameters": [],

},
"scope": 1733,
"scope": 2234,
"src": "190:56:5",

@@ -1077,3 +1077,3 @@ "stateMutability": "nonpayable",

"body": {
"id": 1711,
"id": 2212,
"nodeType": "Block",

@@ -1085,3 +1085,3 @@ "src": "308:51:5",

"argumentTypes": null,
"id": 1709,
"id": 2210,
"isConstant": false,

@@ -1093,7 +1093,7 @@ "isLValue": false,

"argumentTypes": null,
"id": 1707,
"id": 2208,
"name": "lastCompletedMigration",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1682,
"referencedDeclaration": 2183,
"src": "318:22:5",

@@ -1109,7 +1109,7 @@ "typeDescriptions": {

"argumentTypes": null,
"id": 1708,
"id": 2209,
"name": "completed",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1702,
"referencedDeclaration": 2203,
"src": "343:9:5",

@@ -1127,3 +1127,3 @@ "typeDescriptions": {

},
"id": 1710,
"id": 2211,
"nodeType": "ExpressionStatement",

@@ -1135,3 +1135,3 @@ "src": "318:34:5"

"documentation": null,
"id": 1712,
"id": 2213,
"implemented": true,

@@ -1142,10 +1142,10 @@ "kind": "function",

"arguments": null,
"id": 1705,
"id": 2206,
"modifierName": {
"argumentTypes": null,
"id": 1704,
"id": 2205,
"name": "restricted",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1691,
"referencedDeclaration": 2192,
"src": "297:10:5",

@@ -1164,3 +1164,3 @@ "typeDescriptions": {

"parameters": {
"id": 1703,
"id": 2204,
"nodeType": "ParameterList",

@@ -1170,6 +1170,6 @@ "parameters": [

"constant": false,
"id": 1702,
"id": 2203,
"name": "completed",
"nodeType": "VariableDeclaration",
"scope": 1712,
"scope": 2213,
"src": "274:14:5",

@@ -1183,3 +1183,3 @@ "stateVariable": false,

"typeName": {
"id": 1701,
"id": 2202,
"name": "uint",

@@ -1200,3 +1200,3 @@ "nodeType": "ElementaryTypeName",

"returnParameters": {
"id": 1706,
"id": 2207,
"nodeType": "ParameterList",

@@ -1206,3 +1206,3 @@ "parameters": [],

},
"scope": 1733,
"scope": 2234,
"src": "252:107:5",

@@ -1215,3 +1215,3 @@ "stateMutability": "nonpayable",

"body": {
"id": 1731,
"id": 2232,
"nodeType": "Block",

@@ -1222,3 +1222,3 @@ "src": "420:116:5",

"assignments": [
1720
2221
],

@@ -1228,6 +1228,6 @@ "declarations": [

"constant": false,
"id": 1720,
"id": 2221,
"name": "upgraded",
"nodeType": "VariableDeclaration",
"scope": 1731,
"scope": 2232,
"src": "430:19:5",

@@ -1237,3 +1237,3 @@ "stateVariable": false,

"typeDescriptions": {
"typeIdentifier": "t_contract$_Migrations_$1733",
"typeIdentifier": "t_contract$_Migrations_$2234",
"typeString": "contract Migrations"

@@ -1243,9 +1243,9 @@ },

"contractScope": null,
"id": 1719,
"id": 2220,
"name": "Migrations",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 1733,
"referencedDeclaration": 2234,
"src": "430:10:5",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Migrations_$1733",
"typeIdentifier": "t_contract$_Migrations_$2234",
"typeString": "contract Migrations"

@@ -1258,3 +1258,3 @@ }

],
"id": 1724,
"id": 2225,
"initialValue": {

@@ -1265,7 +1265,7 @@ "argumentTypes": null,

"argumentTypes": null,
"id": 1722,
"id": 2223,
"name": "newAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1714,
"referencedDeclaration": 2215,
"src": "463:10:5",

@@ -1285,14 +1285,14 @@ "typeDescriptions": {

],
"id": 1721,
"id": 2222,
"name": "Migrations",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1733,
"referencedDeclaration": 2234,
"src": "452:10:5",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_Migrations_$1733_$",
"typeIdentifier": "t_type$_t_contract$_Migrations_$2234_$",
"typeString": "type(contract Migrations)"
}
},
"id": 1723,
"id": 2224,
"isConstant": false,

@@ -1307,3 +1307,3 @@ "isLValue": false,

"typeDescriptions": {
"typeIdentifier": "t_contract$_Migrations_$1733",
"typeIdentifier": "t_contract$_Migrations_$2234",
"typeString": "contract Migrations"

@@ -1321,7 +1321,7 @@ }

"argumentTypes": null,
"id": 1728,
"id": 2229,
"name": "lastCompletedMigration",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1682,
"referencedDeclaration": 2183,
"src": "506:22:5",

@@ -1343,14 +1343,14 @@ "typeDescriptions": {

"argumentTypes": null,
"id": 1725,
"id": 2226,
"name": "upgraded",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1720,
"referencedDeclaration": 2221,
"src": "484:8:5",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Migrations_$1733",
"typeIdentifier": "t_contract$_Migrations_$2234",
"typeString": "contract Migrations"
}
},
"id": 1727,
"id": 2228,
"isConstant": false,

@@ -1362,3 +1362,3 @@ "isLValue": false,

"nodeType": "MemberAccess",
"referencedDeclaration": 1712,
"referencedDeclaration": 2213,
"src": "484:21:5",

@@ -1370,3 +1370,3 @@ "typeDescriptions": {

},
"id": 1729,
"id": 2230,
"isConstant": false,

@@ -1385,3 +1385,3 @@ "isLValue": false,

},
"id": 1730,
"id": 2231,
"nodeType": "ExpressionStatement",

@@ -1393,3 +1393,3 @@ "src": "484:45:5"

"documentation": null,
"id": 1732,
"id": 2233,
"implemented": true,

@@ -1400,10 +1400,10 @@ "kind": "function",

"arguments": null,
"id": 1717,
"id": 2218,
"modifierName": {
"argumentTypes": null,
"id": 1716,
"id": 2217,
"name": "restricted",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1691,
"referencedDeclaration": 2192,
"src": "409:10:5",

@@ -1422,3 +1422,3 @@ "typeDescriptions": {

"parameters": {
"id": 1715,
"id": 2216,
"nodeType": "ParameterList",

@@ -1428,6 +1428,6 @@ "parameters": [

"constant": false,
"id": 1714,
"id": 2215,
"name": "newAddress",
"nodeType": "VariableDeclaration",
"scope": 1732,
"scope": 2233,
"src": "382:18:5",

@@ -1441,3 +1441,3 @@ "stateVariable": false,

"typeName": {
"id": 1713,
"id": 2214,
"name": "address",

@@ -1459,3 +1459,3 @@ "nodeType": "ElementaryTypeName",

"returnParameters": {
"id": 1718,
"id": 2219,
"nodeType": "ParameterList",

@@ -1465,3 +1465,3 @@ "parameters": [],

},
"scope": 1733,
"scope": 2234,
"src": "365:171:5",

@@ -1473,3 +1473,3 @@ "stateMutability": "nonpayable",

],
"scope": 1734,
"scope": 2235,
"src": "26:512:5"

@@ -1486,3 +1486,3 @@ }

"schemaVersion": "3.0.11",
"updatedAt": "2019-08-07T20:12:19.688Z",
"updatedAt": "2019-08-28T13:18:59.196Z",
"devdoc": {

@@ -1489,0 +1489,0 @@ "methods": {}

{
"name": "@gnosis.pm/conditional-tokens-contracts",
"version": "0.4.1",
"version": "0.5.0",
"description": "Collection of smart contracts for the Gnosis prediction market platform",

@@ -5,0 +5,0 @@ "scripts": {

const ethSigUtil = require("eth-sig-util");
const { expectEvent, expectRevert } = require("openzeppelin-test-helpers");
const { toBN, soliditySha3, randomHex } = web3.utils;
const { BN, toBN, soliditySha3, randomHex } = web3.utils;

@@ -22,19 +22,108 @@ const ConditionalTokens = artifacts.require("ConditionalTokens");

const altBN128P = toBN(
"21888242871839275222246405745257275088696311157297823662689037894645226208583"
);
const altBN128PRed = BN.red(altBN128P);
const altBN128B = toBN(3).toRed(altBN128PRed);
const onePRed = toBN(1).toRed(altBN128PRed);
const twoPRed = toBN(2).toRed(altBN128PRed);
const fourPRed = toBN(4).toRed(altBN128PRed);
const oddToggle = toBN(1).ushln(254);
function getCollectionId(conditionId, indexSet) {
return soliditySha3(
const initHash = soliditySha3(
{ t: "bytes32", v: conditionId },
{ t: "uint", v: indexSet }
);
const odd = "89abcdef".includes(initHash[2]);
const x = toBN(initHash).toRed(altBN128PRed);
let y, yy;
do {
x.redIAdd(onePRed);
yy = x.redSqr();
yy.redIMul(x);
yy = yy.mod(altBN128P);
yy.redIAdd(altBN128B);
y = yy.redSqrt();
} while (!y.redSqr().eq(yy));
const ecHash = x.fromRed();
if (odd) ecHash.ixor(oddToggle);
return `0x${ecHash.toString(16, 64)}`;
}
// function combineCollectionIds(collectionIds) {
// return (
// "0x" +
// collectionIds
// .reduce((acc, collectionId) => acc.add(toBN(collectionId)), toBN(0))
// .maskn(256)
// .toString(16, 64)
// );
// }
function combineCollectionIds(collectionIds) {
const points = collectionIds.map(id => {
let x = toBN(id);
const odd = x.and(oddToggle).eq(oddToggle);
if (odd) x.ixor(oddToggle);
x = x.toRed(altBN128PRed);
let y, yy;
yy = x.redSqr();
yy.redIMul(x);
yy = yy.mod(altBN128P); // this might be a BN.js bug workaround
yy.redIAdd(altBN128B);
y = yy.redSqrt();
if (!y.redSqr().eq(yy)) throw new Error(`got invalid collection ID ${id}`);
if (odd !== y.isOdd()) y = y.redNeg();
return [x, y];
});
const [X, Y, Z] = points.reduce(([X1, Y1, Z1], [x2, y2]) => {
// https://www.hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#addition-madd-2007-bl
if (Z1 == null) {
Z1 = onePRed;
}
// source 2007 Bernstein--Lange
// assume Z2=1
// compute Z1Z1 = Z1^2
const Z1Z1 = Z1.redSqr();
// compute U2 = X2 Z1Z1
const U2 = x2.redMul(Z1Z1);
// compute S2 = Y2 Z1 Z1Z1
const S2 = y2.redMul(Z1).redMul(Z1Z1);
// compute H = U2-X1
const H = U2.redSub(X1);
// compute HH = H^2
const HH = H.redSqr();
// compute I = 4 HH
const I = HH.redMul(fourPRed);
// compute J = H I
const J = H.redMul(I);
// compute r = 2 (S2-Y1)
const r = twoPRed.redMul(S2.redSub(Y1));
// compute V = X1 I
const V = X1.redMul(I);
// compute X3 = r^2-J-2 V
const X3 = r
.redSqr()
.redSub(J)
.redSub(twoPRed.redMul(V));
// compute Y3 = r (V-X3)-2 Y1 J
const Y3 = r.redMul(V.redSub(X3)).redSub(twoPRed.redMul(Y1).redMul(J));
// compute Z3 = (Z1+H)^2-Z1Z1-HH
const Z3 = Z1.redAdd(H)
.redSqr()
.redSub(Z1Z1)
.redSub(HH);
return [X3, Y3, Z3];
});
const invZ = Z.redInvm();
const invZZ = invZ.redSqr();
const invZZZ = invZZ.redMul(invZ);
const x = X.redMul(invZZ);
const y = Y.redMul(invZZZ);
const ecHash = x.fromRed();
if (y.isOdd()) ecHash.ixor(oddToggle);
return `0x${ecHash.toString(16, 64)}`;
}
function getPositionId(collateralToken, collateralTokenID, collectionId) {

@@ -549,9 +638,7 @@ if (collectionId == null)

context("with many conditions prepared", async function() {
const conditions = [
{
oracle,
questionId: randomHex(32),
outcomeSlotCount: toBN(4)
}
];
const conditions = Array.from({ length: 3 }, () => ({
oracle,
questionId: randomHex(32),
outcomeSlotCount: toBN(4)
}));

@@ -610,2 +697,84 @@ conditions.forEach(condition => {

context(
"when trader splits to a deeper position with another condition",
function() {
const conditionId2 = conditions[1].id;
const partition2 = [0b0001, 0b0010, 0b1100];
const deepSplitAmount = toBN(4e18);
const parentCollectionId = getCollectionId(
conditionId,
positionIndexSet
);
beforeEach(async function() {
({ tx: this.deepSplitTx } = await doSplit.call(
this,
conditionId2,
partition2,
deepSplitAmount,
parentCollectionId
));
});
it("combines collection IDs", async function() {
for (const indexSet of partition2) {
(await this.conditionalTokens.getCollectionId(
parentCollectionId,
conditionId2,
indexSet
)).should.be.equal(
combineCollectionIds([
parentCollectionId,
getCollectionId(conditionId2, indexSet)
])
);
}
});
it("emits PositionSplit event", async function() {
await expectEvent.inTransaction(
this.deepSplitTx,
ConditionalTokens,
"PositionSplit",
Object.assign(
{
stakeholder: trader.address,
parentCollectionId,
conditionId: conditionId2,
// partition: partition2,
amount: deepSplitAmount
},
getExpectedEventCollateralProperties.call(this)
)
);
});
it("burns value in the parent position", async function() {
(await this.conditionalTokens.balanceOf(
trader.address,
getPositionForCollection.call(this, parentCollectionId)
)).should.be.bignumber.equal(
collateralTokenCount.sub(deepSplitAmount)
);
});
it("mints values in the child positions", async function() {
for (const indexSet of partition2) {
const positionId = getPositionForCollection.call(
this,
combineCollectionIds([
parentCollectionId,
getCollectionId(conditionId2, indexSet)
])
);
(await this.conditionalTokens.balanceOf(
trader.address,
positionId
)).should.be.bignumber.equal(deepSplitAmount);
}
});
}
);
context("with valid report", function() {

@@ -712,3 +881,3 @@ beforeEach(async function() {

},
async doSplit(conditionId, partition, amount) {
async doSplit(conditionId, partition, amount, parentCollectionId) {
return await trader.execCall(

@@ -718,3 +887,3 @@ this.conditionalTokens,

this.collateralToken.address,
NULL_BYTES32,
parentCollectionId || NULL_BYTES32,
conditionId,

@@ -725,3 +894,3 @@ partition,

},
async doMerge(conditionId, partition, amount) {
async doMerge(conditionId, partition, amount, parentCollectionId) {
return await trader.execCall(

@@ -731,3 +900,3 @@ this.conditionalTokens,

this.collateralToken.address,
NULL_BYTES32,
parentCollectionId || NULL_BYTES32,
conditionId,

@@ -738,3 +907,3 @@ partition,

},
async doRedeem(conditionId, indexSets) {
async doRedeem(conditionId, indexSets, parentCollectionId) {
return await trader.execCall(

@@ -744,3 +913,3 @@ this.conditionalTokens,

this.collateralToken.address,
NULL_BYTES32,
parentCollectionId || NULL_BYTES32,
conditionId,

@@ -747,0 +916,0 @@ indexSets

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc